-
Notifications
You must be signed in to change notification settings - Fork 588
HDDS-11183. Keys from DeletedTable and DeletedDirTable of Active Object Store should be deleted on batch operation while creating a snapshot #6946
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
Conversation
…be deleted on batch operation while creating a snapshot Change-Id: I18b6cba6302cc4690218269e4770ffd62c1a5971
|
Thanks @swamirishi for the patch. The idea makes sense to me. It should have used |
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 patch and good catch @swamirishi
LGTM.
|
https://github.com/apache/ozone/actions/runs/9964095152/job/27532079656 |
|
Thanks @swamirishi for the patch and @smengcl for the review. |
…-delete * HDDS-10239-container-reconciliation: (184 commits) HDDS-10373. Implement framework for capturing Merkle Tree Metrics. (apache#6864) HDDS-11188. Initial setup for new UI layout and enable users to switch to new UI (apache#6953) HDDS-11120. Rich rebalancing status info (apache#6911) HDDS-11187. Fix Event Handling in Recon OMDBUpdatesHandler to Prevent ClassCastException. (apache#6950) HDDS-11213. Bump commons-daemon to 1.4.0 (apache#6971) HDDS-11212. Bump commons-net to 3.11.1 (apache#6973) HDDS-11211. Bump assertj-core to 3.26.3 (apache#6972) HDDS-11210. Bump log4j2 to 2.23.1 (apache#6970) HDDS-11150. Recon Overview page crashes due to failed API Calls (apache#6944) HDDS-11183. Keys from DeletedTable and DeletedDirTable of AOS should be deleted on batch operation while creating a snapshot (apache#6946) HDDS-11198. Fix Typescript configs for Recon (apache#6961) HDDS-11180. Simplify HttpServer2#inferMimeType return statement (apache#6963) HDDS-11194. OM missing audit log for upgrade (apache#6958) HDDS-10389. Implement a search feature for users to locate open keys within the Open Keys Insights section. (apache#6231) HDDS-10561. Dashboard for delete key metrics (apache#6948) HDDS-11192. Increase SPNEGO URL test coverage (apache#6956) HDDS-11179. DBConfigFromFile#readFromFile result of toIOException not thrown (apache#6957) HDDS-11186. First container log missing from bundle (apache#6952) HDDS-10844. Clarify snapshot create error message. (apache#6955) HDDS-11166. Switch to Rocky Linux-based ozone-runner (apache#6942) ...
… AOS should be deleted on batch operation while creating a snapshot (apache#6946) (cherry picked from commit 1996f3a) Change-Id: If2fadc0418f920efc97917dcf30668fcd613f4f9
…be deleted on batch operation while creating a snapshot (apache#6946) (cherry picked from commit 1996f3a)
What changes were proposed in this pull request?
Keys from DeletedTable and DeletedDirTable of AOS should be deleted on batch operation while creating a snapshot and not directly from the table. The transactions have to be flushed to delete the keys. If the transaction is not flushed then the deleted keys wouldn't be present in the next transaction replay leading to having unreferenced blocks in the system.
Scenario:
Snapshot S1 create is fired.
create S1 transaction has not been flushed yet, but it has created the snapshot directory and deleted the entries from the table.
This OM has received a bootstrap request from another OM. The bootstrap command will only copy the OM instance and the snapshots that have been flushed to the AOS. S1 will not be a part of it.
The boostrapped OM will replay unflushed transactions(Create S1 will be a part of it). Now it will create a checkpoint out of the bootstrapped AOS which doesn’t have the delete entries. Now the snapshot instance will also not have the deletedKey entries
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-11183
How was this patch tested?
Existing unit tests and addition of unit tests.