titan
titan copied to clipboard
A RocksDB plugin for key-value separation, inspired by WiscKey.
When doing a long scan with 1000 kvs on master, find it wastes too much CPU time on blob cache mutex and affect scan performance a lot.  But for...
When blob zstd dictionary compression is enabled, all the values will be buffered and replayed after the compression dictionary is finalized. So if there are multiple concurrent flushes and compactions,...
## Description Currently we query blob cache in `BlobFileReader`. It is done after getting file metadata (`BlobStorage::FindFile`) and getting the file reader from `BlobFileCache`, both of which require mutex lock....
When calling `DestroyColumnFamilyHandle` we may remove related blob storage directly. But if there are multiples column family handles, Titan removes related blob storage on the first time to call `DestroyColumnFamilyHandle`,...
By `SetOptions`, we should able to change following configs dynamically - [ ] disable-gc - [ ] min-blob-size - [ ] min-gc-batch-size - [ ] max-gc-batch-size - [ ] discardable-ratio...
 Have tried to downgrade Titan to vanilla RocksDB, found there are some blob files still with 0 discardable ratio so that they can't be cleaned by GC. Whereas after...
Found by https://asktug.com/t/topic/37263 But the log is missing, Titan can not restart due to blob file has been deleted twice
we can see that a `bg_error_` will be set when `db_->blob_file_set_->LogAndApply(edit)` return some error at [db_impl.cpp:87](https://asktug.com/t/topic/36112). and the corresponding `has_bg_error_` [will be set to true](https://github.com/tikv/titan/blob/master/src/db_impl.cc#L1385) as well to indicate that...
Current GC implementation assume WAL is always enabled for both user writes and GC writes. However, if user disable WAL, it could lead to data inconsistency after GC. Example: 1....
In this PR https://github.com/facebook/rocksdb/pull/6342, it fixes the issue that OnFlushCompleted and OnCompactionCompleted are called out of order which is the root cause of what #172 fixes. After it is merged...