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
[controller] Do not delete true backup version during Repush #945
Conversation
...ontroller/src/main/java/com/linkedin/venice/controller/StoreBackupVersionCleanupService.java
Outdated
Show resolved
Hide resolved
internal/venice-common/src/main/java/com/linkedin/venice/meta/ReadOnlyStore.java
Outdated
Show resolved
Hide resolved
internal/venice-common/src/main/java/com/linkedin/venice/meta/VersionImpl.java
Outdated
Show resolved
Hide resolved
...ontroller/src/main/java/com/linkedin/venice/controller/StoreBackupVersionCleanupService.java
Outdated
Show resolved
Hide resolved
...ontroller/src/main/java/com/linkedin/venice/controller/StoreBackupVersionCleanupService.java
Outdated
Show resolved
Hide resolved
...oller/src/test/java/com/linkedin/venice/controller/TestStoreBackupVersionCleanupService.java
Outdated
Show resolved
Hide resolved
...oller/src/test/java/com/linkedin/venice/controller/TestStoreBackupVersionCleanupService.java
Outdated
Show resolved
Hide resolved
internal/venice-common/src/main/java/com/linkedin/venice/meta/Version.java
Outdated
Show resolved
Hide resolved
internal/venice-common/src/main/java/com/linkedin/venice/meta/ReadOnlyStore.java
Outdated
Show resolved
Hide resolved
internal/venice-common/src/main/java/com/linkedin/venice/meta/VersionImpl.java
Outdated
Show resolved
Hide resolved
...ontroller/src/main/java/com/linkedin/venice/controller/StoreBackupVersionCleanupService.java
Outdated
Show resolved
Hide resolved
...ontroller/src/main/java/com/linkedin/venice/controller/StoreBackupVersionCleanupService.java
Outdated
Show resolved
Hide resolved
services/venice-controller/src/main/java/com/linkedin/venice/controller/VeniceHelixAdmin.java
Outdated
Show resolved
Hide resolved
...oller/src/test/java/com/linkedin/venice/controller/TestStoreBackupVersionCleanupService.java
Outdated
Show resolved
Hide resolved
...ces/venice-controller/src/main/java/com/linkedin/venice/controller/server/CreateVersion.java
Outdated
Show resolved
Hide resolved
...ces/venice-controller/src/main/java/com/linkedin/venice/pushmonitor/AbstractPushMonitor.java
Show resolved
Hide resolved
...ontroller/src/main/java/com/linkedin/venice/controller/StoreBackupVersionCleanupService.java
Outdated
Show resolved
Hide resolved
...ontroller/src/main/java/com/linkedin/venice/controller/StoreBackupVersionCleanupService.java
Show resolved
Hide resolved
...ontroller/src/main/java/com/linkedin/venice/controller/StoreBackupVersionCleanupService.java
Outdated
Show resolved
Hide resolved
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.
Thanks for the fix!
@smaji, after my rebase integrated this PR, I found three naked gets introduced by this change. I fixed them so that the code compiles, but we may wish to handle them differently than what I did. Can you please take a look at this commit and LMK if you have any concerns with the way I handled these naked gets? Thanks. |
Do not delete true backup version during Repush
During repush Venice deletes the actual backup version instead of current version.
For example some store has versions: v9, v10. When a repush starts it creates v11 and it deletes v9 assuming it is a backup version, where as repush actually copies data from v10 to v11.
Now later if use wants to rollback to backup version they can only rollback to v10 which is exactly same as v11 as v9 was deleted.
This PR fixes that. It relies on
StoreBackupVersionCleanupService
to delete the backup version v10 asynchronously. Currently it checkscontroller.backup.version.metadata.fetch.cleanup.enabled
to do a safer delete of previous current version which validates there are no reads to v10 version.How was this PR tested?
CI
Does this PR introduce any user-facing changes?
The change in backup version definition for repush, the backup version is the current version before push instead of version before that.