rocksdb/utilities/blob_db
DorianZheng 27090ae8f6 Fix DBImpl::GetColumnFamilyHandleUnlocked race condition (#4391)
Summary:
- Fix DBImpl API race condition

The timeline of execution flow is as follow:
```
timeline              user_thread1                      user_thread2
t1   |     cfh = GetColumnFamilyHandleUnlocked(0)
t2   |     id1 = cfh->GetID()
t3   |                                                GetColumnFamilyHandleUnlocked(1)
t4   |     id2 = cfh->GetID()
     V
```
The original implementation return a pointer to a stateful variable, so that the return `ColumnFamilyHandle` will be changed when another thread calls `GetColumnFamilyHandleUnlocked` with different `column family id`

- Expose ColumnFamily ID to compaction event listener

- Fix the return status of `DBImpl::GetLatestSequenceForKey`
Pull Request resolved: https://github.com/facebook/rocksdb/pull/4391

Differential Revision: D10221243

Pulled By: yiwu-arbug

fbshipit-source-id: dec60ee9ff0c8261a2f2413a8506ec1063991993
2018-10-08 14:24:16 -07:00
..
blob_compaction_filter.cc Blob DB: Improve FIFO eviction 2018-03-06 11:57:42 -08:00
blob_compaction_filter.h Blob DB: Improve FIFO eviction 2018-03-06 11:57:42 -08:00
blob_db.cc BlobDB: Cleanup TTLExtractor interface (#4229) 2018-08-06 11:58:05 -07:00
blob_db.h BlobDB: Can return expiration together with Get() (#4227) 2018-08-06 17:43:14 -07:00
blob_db_impl.cc Fix DBImpl::GetColumnFamilyHandleUnlocked race condition (#4391) 2018-10-08 14:24:16 -07:00
blob_db_impl.h BlobDB: handle IO error on read (#4410) 2018-09-20 16:58:45 -07:00
blob_db_impl_filesnapshot.cc Support pragma once in all header files and cleanup some warnings (#4339) 2018-09-05 18:13:31 -07:00
blob_db_iterator.h Change and clarify the relationship between Valid(), status() and Seek*() for all iterators. Also fix some bugs 2018-05-17 02:56:56 -07:00
blob_db_listener.h Blob DB: Improve FIFO eviction 2018-03-06 11:57:42 -08:00
blob_db_test.cc BlobDB: handle IO error on read (#4410) 2018-09-20 16:58:45 -07:00
blob_dump_tool.cc Revert "Digest ZSTD compression dictionary once per SST file (#4251)" (#4347) 2018-09-06 09:58:34 -07:00
blob_dump_tool.h Blob DB: blob_dump to show uncompressed values 2018-04-05 11:12:16 -07:00
blob_file.cc BlobDB: handle IO error on read (#4410) 2018-09-20 16:58:45 -07:00
blob_file.h BlobDB: handle IO error on read (#4410) 2018-09-20 16:58:45 -07:00
blob_index.h Blob DB: Inline small values in base DB 2017-10-26 12:30:54 -07:00
blob_log_format.cc BlobDB: Remove the need to get sequence number per write 2017-12-15 13:27:30 -08:00
blob_log_format.h BlobDB: Remove the need to get sequence number per write 2017-12-15 13:27:30 -08:00
blob_log_reader.cc Support pragma once in all header files and cleanup some warnings (#4339) 2018-09-05 18:13:31 -07:00
blob_log_reader.h Blob DB: enable readahead for garbage collection (#3648) 2018-06-23 23:12:00 -07:00
blob_log_writer.cc BlobDB: refactor DB open logic 2017-12-11 12:12:38 -08:00
blob_log_writer.h BlobDB: refactor DB open logic 2017-12-11 12:12:38 -08:00