sapling/eden/fs/store
Adam Simpkins 07902b6a3c improve the "gc" implementation for RocksDB
Summary:
Change the `eden gc` implementation to use RocksDB's `DeleteFilesInRange()`
function, as well as its new-ish `DeleteRange()` method.

This makes the garbage collection much faster, and also require much less free
disk space than previously.

`DeleteFilesInRange()` asks RocksDB to simply delete all SST files from disk
if they only contain keys in the specified range.  Since the range we specify
should include all keys in the DB this should simply drop all SST files for
this column family.

We also call `DeleteRange()` after this, just in case.  This API is relatively
recent, and writes a single tombstone saying that the specified range has been
deleted.

Reviewed By: wez

Differential Revision: D14910345

fbshipit-source-id: c76bdc1c8e07cb2def66673ea892e7f455c9dc7a
2019-04-15 12:33:09 -07:00
..
git eden: cmake fixup include directories and deps 2019-03-28 20:57:17 -07:00
hg Encapsulate EdenStats 2019-04-14 20:45:16 -07:00
mononoke use ServiceAddress in curl implementation 2019-04-12 11:22:25 -07:00
test Fix deadlock when restarting during RocksDbLocalStore::get() 2019-03-12 19:29:35 -07:00
BackingStore.h remove fallback for correcting empty files 2018-10-22 20:27:26 -07:00
BlobAccess.cpp add a BlobAccess API for stateless blob reading 2018-11-26 10:46:51 -08:00
BlobAccess.h add a BlobAccess API for stateless blob reading 2018-11-26 10:46:51 -08:00
BlobCache.cpp only evict when interest handle is dropped if blob wasn't reloaded 2018-12-10 19:30:28 -08:00
BlobCache.h only evict when interest handle is dropped if blob wasn't reloaded 2018-12-10 19:30:28 -08:00
BlobMetadata.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
CMakeLists.txt Use MononokeCurlBackingStore in HgBackingStore 2019-03-11 14:34:09 -07:00
Diff.cpp Future<T>::then Future<T>::then() -> Future<T>::thenValue or thenTry. 2018-09-14 17:10:57 -07:00
Diff.h add a function for diffing source control commits 2018-03-20 16:47:12 -07:00
EmptyBackingStore.cpp run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
EmptyBackingStore.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
IObjectStore.h clang-format 2018-10-02 10:07:38 -07:00
LocalStore.cpp add kEmptySha1 hash constant 2018-11-28 16:16:16 -08:00
LocalStore.h Delete unused forward declaration 2019-04-08 11:20:55 -07:00
MemoryLocalStore.cpp pass ReloadableConfig through to LocalStore 2018-11-09 11:22:03 -08:00
MemoryLocalStore.h pass ReloadableConfig through to LocalStore 2018-11-09 11:22:03 -08:00
ObjectStore.cpp folly::Optional -> std::optional 2018-10-23 17:05:11 -07:00
ObjectStore.h add an in-memory LRU for blob metadata 2018-10-22 20:27:27 -07:00
RocksDbLocalStore.cpp improve the "gc" implementation for RocksDB 2019-04-15 12:33:09 -07:00
RocksDbLocalStore.h explicitly flush all column families when opening the RocksDB 2019-03-18 11:36:42 -07:00
SerializedBlobMetadata.cpp move SerializedBlobMetadata into its own file 2018-10-31 11:50:39 -07:00
SerializedBlobMetadata.h move SerializedBlobMetadata into its own file 2018-10-31 11:50:39 -07:00
SqliteLocalStore.cpp pass ReloadableConfig through to LocalStore 2018-11-09 11:22:03 -08:00
SqliteLocalStore.h pass ReloadableConfig through to LocalStore 2018-11-09 11:22:03 -08:00
StoreResult.cpp Enabled additional compiler warnings in Eden. 2018-06-01 11:39:01 -07:00
StoreResult.h Enabled additional compiler warnings in Eden. 2018-06-01 11:39:01 -07:00