-
Notifications
You must be signed in to change notification settings - Fork 955
bump the RDB version #2422
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
bump the RDB version #2422
Conversation
Signed-off-by: Ran Shidlansik <[email protected]>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## unstable #2422 +/- ##
============================================
+ Coverage 71.51% 71.57% +0.06%
============================================
Files 123 123
Lines 67454 67493 +39
============================================
+ Hits 48239 48308 +69
+ Misses 19215 19185 -30
🚀 New features to boost your workflow:
|
Signed-off-by: Ran Shidlansik <[email protected]>
Signed-off-by: Ran Shidlansik <[email protected]>
Signed-off-by: Ran Shidlansik <[email protected]>
Signed-off-by: Ran Shidlansik <[email protected]>
sarthakaggarwal97
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nice!
Signed-off-by: Ran Shidlansik <[email protected]>
Signed-off-by: Ran Shidlansik <[email protected]>
| (rdbver >= RDB_FOREIGN_VERSION_MIN && rdbver <= RDB_FOREIGN_VERSION_MAX) || | ||
| (rdbver > RDB_FOREIGN_VERSION_MAX && !is_valkey_magic) || | ||
| (rdbver > RDB_VERSION && server.rdb_version_check == RDB_VERSION_CHECK_STRICT)) { | ||
| serverLog(LL_WARNING, "Can't handle RDB format version %d", rdbver); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should probably extend this to include whether or not it's the Redis magic as well?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@madolson to which one of the check conditions do you refer to? The [12-79] or just validate that below 12 we have the redis magic?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@madolson done. want to take a look?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Apparently not :D
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I also meant we should print out whether or not the version is incompatible or it's the Redis Magic.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since we don't reuse the same numbers as with the different magics, it will never be ambiguous (except for hand-hacked RDB files with wrong magic/number).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For us yes, not for end users. Ideally we should print out that this is a Redis RDB and not a valkey RDB.
Signed-off-by: Ran Shidlansik <[email protected]>
|
@valkey-io/core-team just to highlight the implications of this: this basically breaks the 7.2 and 8.0 compatibility. |
|
I think that the only issue is with the failover test. I think that for the CI tests we can run only against 8.1 and enable the relaxed rdb check in this specific test. @zuiderkwast WDYT? |
Ran, yes, because of this, we consider 8.1 a stepping stone. All our customers must upgrade to (a version of our products that contain) 8.1 before they can upgrade further to 9 and later.
Yes. We have discussed a way to let Valkey produce older RDB versions for even better downgrade possibilities. It would involve a config to set the RDB version and it would be up to the user to only use features supported by the chosen RDB version. I still think we should do it. Technically, it's not very difficult... #1108. |
Thank you @zuiderkwast . I am mainly referring to the plan to change the CI as part of THIS pr so that we will start running the cross version compat against 8.1 + configure relaxed RDB check in the failover test |
also make Cross version cluster - failover use relaxed rdb check Signed-off-by: Ran Shidlansik <[email protected]>
|
hhh There is a failure in test @hpatro FYI |
O.K after some fighting, I found the issue is known (#1708) and that is the node-id is passed NULL terminated only from 8.1 to clusterMassageRecievers. because of that the 7.2 module is unable to send the DONG message back to the originator and this is why the test fails for 7.2. So there are some AIs:
|
…ages Signed-off-by: Ran Shidlansik <[email protected]>
| * RDB 11 is the last open-source Redis RDB version, used by Valkey 7.x and 8.x. | ||
| * | ||
| * RDB 12+ are non-open-source Redis formats. | ||
| * RDB 12-79 are reserved for Redis non-compatible RDB formats |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Any particular reason to pick 79?
With Valkey 9.0 we could have picked 90 as our new RDB version :).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was discussed in the last core-meeting and we decided on 80. Personally I think the 80's (although the bad hair thing) were so cool
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
80+ for Valkey magic was picked in #1604. It was arbitrary-ish.
Yeah we could have used 90 for Valkey 9.0 but with this scheme we would run out of RDB versions after Valkey 99.9. If we just bumb it when necessary, we don't run out of RDB numbers as fast.
This is needed due to changes presented in valkey-io#2089 --------- Signed-off-by: Ran Shidlansik <[email protected]>
This is needed due to changes presented in #2089