rocksdb/test_util
anand76 0ed93552f4 Implement obsolete file deletion (GC) in follower (#12657)
Summary:
This PR implements deletion of obsolete files in a follower RocksDB instance. The follower tails the leader's MANIFEST and creates links to newly added SST files. These links need to be deleted once those files become obsolete in order to reclaim space. There are three cases to be considered -
1. New files added and links created, but the Version could not be installed due to some missing files. Those links need to be preserved so a subsequent catch up attempt can succeed. We insert the next file number in the `VersionSet` to `pending_outputs_` to prevent their deletion.
2. Files deleted from the previous successfully installed `Version`. These are deleted as usual in `PurgeObsoleteFiles`.
3. New files added by a `VersionEdit` and deleted by a subsequent `VersionEdit`, both processed in the same catchup attempt. Links will be created for the new files when verifying a candidate `Version`. Those need to be deleted explicitly as they're never added to `VersionStorageInfo`, and thus not deleted by `PurgeObsoleteFiles`.

Test plan -
New unit tests in `db_follower_test`.

Pull Request resolved: https://github.com/facebook/rocksdb/pull/12657

Reviewed By: jowlyzhang

Differential Revision: D57462697

Pulled By: anand1976

fbshipit-source-id: 898f15570638dd4930f839ffd31c560f9cb73916
2024-05-17 19:13:33 -07:00
..
mock_time_env.cc Prefer static_cast in place of most reinterpret_cast (#12308) 2024-02-07 10:44:11 -08:00
mock_time_env.h Remove 'virtual' when implied by 'override' (#12319) 2024-01-31 13:14:42 -08:00
secondary_cache_test_util.cc Run internal cpp modernizer on RocksDB repo (#12398) 2024-03-04 10:08:32 -08:00
secondary_cache_test_util.h Placeholder for AutoHyperClockCache, more (#11692) 2023-08-11 16:27:38 -07:00
sync_point.cc clang format files under test_util/ (#10855) 2022-10-24 20:32:25 -07:00
sync_point.h Document SyncPoint::LoadDependency (#11477) 2023-05-24 16:49:17 -07:00
sync_point_impl.cc clang format files under test_util/ (#10855) 2022-10-24 20:32:25 -07:00
sync_point_impl.h clang format files under test_util/ (#10855) 2022-10-24 20:32:25 -07:00
testharness.cc Run internal cpp modernizer on RocksDB repo (#12398) 2024-03-04 10:08:32 -08:00
testharness.h Changes and enhancements to compression stats, thresholds (#11388) 2023-04-21 21:57:40 -07:00
testutil.cc Implement obsolete file deletion (GC) in follower (#12657) 2024-05-17 19:13:33 -07:00
testutil.h Implement obsolete file deletion (GC) in follower (#12657) 2024-05-17 19:13:33 -07:00
testutil_test.cc More Makefile Cleanup (#7097) 2020-07-09 14:35:17 -07:00
transaction_test_util.cc Remove RocksDB LITE (#11147) 2023-01-27 13:14:19 -08:00
transaction_test_util.h Remove RocksDB LITE (#11147) 2023-01-27 13:14:19 -08:00