Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

To fix the issue: show_techsupport & saidump errors during testbed testing by replacing redis-rdb-tool with rdb-cli #19268

Merged
merged 3 commits into from
Nov 7, 2024

Conversation

JunhongMao
Copy link
Contributor

@JunhongMao JunhongMao commented Jun 11, 2024

Why I did it

Fix issue: sonic-net/sonic-sairedis#1387
The latest redis-rdb-tools-0.1.15 doesn't support Redis 7.0. Redis 7.0 was released in 2020 and adopted by SONiC's latest version.
So, this issue turned out.
https://github.com/sripathikrishnan/redis-rdb-tools

I.e., the rdb-tools is far behind the Redis 7.0. The librdb can perfectly fix this issue. Please see quote from https://github.com/redis/librdb.

Motivation behind this project
There is a genuine need by the Redis community for a versatile RDB file parser that can export data, perform data analysis, or merely extract raw data from RDB and RESTORE it against a live Redis server. However, available parsers have shortcomings in some aspects such as lack of long-term support, lagging far behind the latest Redis release, and usually not being optimized for memory, performance, or high-traffic streaming for production environments. Additionally, most of them are not written in C, which limits the reuse of Redis components and the potential to contribute back to Redis repo. To address these issues, it is worthwhile to develop a new parser with a modern architecture, that maybe can also challenge the current integrated RDB parser of Redis and even replace it in the future.

So, the below PRS are to replace rdbtools with librdb's tool rdb-cli.
#19268
sonic-net/sonic-sairedis#1391

The above PRs are based on the below PRs.
sonic-net/sonic-sairedis#1288
sonic-net/sonic-sairedis#1298
#16466
sonic-net/sonic-utilities#2972

How I did it

To use the Redis-db SAVE option to save the snapshot of DB each time and recover later, instead of looping through each entry in the table and saving it.

(1) Updated sonic-buildimage repo's platform/broadcom/docker-syncd-brcm-dnx/Dockerfile.j2, 
 install rdb-cli into the syncd containter.
(2) Updated sonic-sairedis repo's script file: files/scripts/saidump.sh, replace rdbtools with rdb-cli.
(3) Updated sonic-sairedis repo's saidump/saidump.cpp, to process the rdb-cli's ouput json file.

How to verify it

Method 1:
On T2 setup with more than 96K routes, execute CLI command -- generate_dump
No error should be shown

Method 2:
Go into syncd0 container.
admin@ixre-egl-board30:~$ docker exec -it syncd0 bash
Run below command, get saidump's sha1sum value.
root@ixre-egl-board30:/# saidump | sha1sum
1893097ecaeae72383432a54bfe4b285d05b23e5 -
Run below command, get saidump.sh's sha1sum value.
root@ixre-egl-board30:/# saidump.sh | sha1sum
1893097ecaeae72383432a54bfe4b285d05b23e5 -
The two sha1sum values should be the same and no error should be shown.
Method 3:
To run the testbed show_techsupport test case.

Which release branch to backport (provide reason below if selected)

  • 201811
  • 201911
  • 202006
  • 202012
  • 202106
  • 202111
  • 202205
  • 202211
  • 202305

Tested branch (Please provide the tested image version)

@JunhongMao
Copy link
Contributor Author

@mlok-nokia @kcudnik, please help to review, thanks.

@JunhongMao
Copy link
Contributor Author

JunhongMao commented Jul 15, 2024

@qiluo-msft, could you please review and approve this PR? Thanks.

@JunhongMao
Copy link
Contributor Author

@qiluo-msft, could you please review and approve this PR? Thanks.

@qiluo-msft qiluo-msft requested a review from kcudnik July 30, 2024 18:24
@rlhui
Copy link
Contributor

rlhui commented Aug 14, 2024

@qiluo-msft reminder to review/approve.

@JunhongMao
Copy link
Contributor Author

Hello, @qiluo-msft reminder to review/approve.

@JunhongMao
Copy link
Contributor Author

JunhongMao commented Sep 16, 2024

Hello, @qiluo-msft. Please help to review and approve. It's been a long time since this PR was created.

@JunhongMao
Copy link
Contributor Author

@qiluo-msft @lguohan. Please help to review and approve. Thanks.

@abdosi
Copy link
Contributor

abdosi commented Oct 9, 2024

@saiarcot895

abdosi pushed a commit to sonic-net/sonic-sairedis that referenced this pull request Oct 9, 2024
…sting by replacing redis-rdb-tool with rdb-cli (#1391)

Why I did it
Fix issue: #1387
The latest redis-rdb-tools-0.1.15 doesn't support Redis 7.0. Redis 7.0 was released in 2020 and adopted by SONiC's latest version. So, this issue turned out.

https://github.com/sripathikrishnan/redis-rdb-tools

I.e., the rdb-tools is far behind the Redis 7.0. The librdb can perfectly fix this issue. Please see quote from https://github.com/redis/librdb.

Motivation behind this project
There is a genuine need by the Redis community for a versatile RDB file parser that can export data, perform data analysis, or merely extract raw data from RDB and RESTORE it against a live Redis server. However, available parsers have shortcomings in some aspects such as lack of long-term support, lagging far behind the latest Redis release, and usually not being optimized for memory, performance, or high-traffic streaming for production environments. Additionally, most of them are not written in C, which limits the reuse of Redis components and the potential to contribute back to Redis repo. To address these issues, it is worthwhile to develop a new parser with a modern architecture, that maybe can also challenge the current integrated RDB parser of Redis and even replace it in the future.

So, the below PRS are to replace rdbtools with librdb's tool rdb-cli.
sonic-net/sonic-buildimage#19268
#1391
@deepak-singhal0408
Copy link
Contributor

MSFT ADO: 29975556

@JunhongMao
Copy link
Contributor Author

/azpw run Azure.sonic-buildimage

@mssonicbld
Copy link
Collaborator

/AzurePipelines run Azure.sonic-buildimage

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@JunhongMao
Copy link
Contributor Author

/azpw run Azure.sonic-buildimage

@mssonicbld
Copy link
Collaborator

/AzurePipelines run Azure.sonic-buildimage

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@mlok-nokia
Copy link
Contributor

@deepak-singhal0408 Please help to merge this PR since its related PR has been merged already. Please also mark it is needed for 202405. Thanks

@deepak-singhal0408
Copy link
Contributor

@arlakshm @abdosi could you help with the merge? Thanks,

@abdosi
Copy link
Contributor

abdosi commented Oct 30, 2024

@qiluo-msft : can you please merge this

@mlok-nokia
Copy link
Contributor

@lguohan @xumia @qiluo-msft Please help to merge this PR since related PR has been merge already

@anamehra
Copy link
Contributor

anamehra commented Nov 4, 2024

Hi @rlhui ,@abdosi , for your viz. This impacts some test cases on 202405 on T2. Thanks

@rlhui rlhui merged commit 9685498 into sonic-net:master Nov 7, 2024
21 of 22 checks passed
mssonicbld pushed a commit to mssonicbld/sonic-buildimage that referenced this pull request Nov 7, 2024
…sting by replacing redis-rdb-tool with rdb-cli (sonic-net#19268)

* To fix the issue: show_techsupport & saidump errors during testbed testing
sonic-net/sonic-sairedis#1387

To use the Redis-db SAVE option to save the snapshot of DB each time and recover later, instead of looping through each entry in the table and saving it.

(1) Updated sonic-buildimage repo's platform/broadcom/docker-syncd-brcm-dnx/Dockerfile.j2, 
 install rdb-cli into the syncd containter.
(2) Updated sonic-sairedis repo's script file: files/scripts/saidump.sh, replace rdbtools with rdb-cli.
(3) Updated sonic-sairedis repo's saidump/saidump.cpp, to process the rdb-cli's ouput json file.
@mssonicbld
Copy link
Collaborator

Cherry-pick PR to 202405: #20728

mssonicbld pushed a commit that referenced this pull request Nov 8, 2024
…sting by replacing redis-rdb-tool with rdb-cli (#19268)

* To fix the issue: show_techsupport & saidump errors during testbed testing
sonic-net/sonic-sairedis#1387

To use the Redis-db SAVE option to save the snapshot of DB each time and recover later, instead of looping through each entry in the table and saving it.

(1) Updated sonic-buildimage repo's platform/broadcom/docker-syncd-brcm-dnx/Dockerfile.j2, 
 install rdb-cli into the syncd containter.
(2) Updated sonic-sairedis repo's script file: files/scripts/saidump.sh, replace rdbtools with rdb-cli.
(3) Updated sonic-sairedis repo's saidump/saidump.cpp, to process the rdb-cli's ouput json file.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.