rocksdb/utilities
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
..
backupable Store the return value of Fsync for check 2018-09-14 13:29:56 -07:00
blob_db Fix DBImpl::GetColumnFamilyHandleUnlocked race condition (#4391) 2018-10-08 14:24:16 -07:00
cassandra Per-thread unique test db names (#4135) 2018-07-13 17:27:39 -07:00
checkpoint Sync CURRENT file during checkpoint (#4322) 2018-08-28 12:43:18 -07:00
compaction_filters Comment out unused variables 2018-03-05 13:13:41 -08:00
convenience Change RocksDB License 2017-07-15 16:11:23 -07:00
date_tiered Per-thread unique test db names (#4135) 2018-07-13 17:27:39 -07:00
document Support pragma once in all header files and cleanup some warnings (#4339) 2018-09-05 18:13:31 -07:00
geodb Per-thread unique test db names (#4135) 2018-07-13 17:27:39 -07:00
leveldb_options Change RocksDB License 2017-07-15 16:11:23 -07:00
lua Per-thread unique test db names (#4135) 2018-07-13 17:27:39 -07:00
memory Per-thread unique test db names (#4135) 2018-07-13 17:27:39 -07:00
merge_operators Support pragma once in all header files and cleanup some warnings (#4339) 2018-09-05 18:13:31 -07:00
option_change_migration comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
options Per-thread unique test db names (#4135) 2018-07-13 17:27:39 -07:00
persistent_cache Support pragma once in all header files and cleanup some warnings (#4339) 2018-09-05 18:13:31 -07:00
redis rocksdb: put #pragma once before #ifdef 2018-10-04 17:10:21 -07:00
simulator_cache Add path to WritableFileWriter. (#4039) 2018-08-23 10:12:58 -07:00
spatialdb Support pragma once in all header files and cleanup some warnings (#4339) 2018-09-05 18:13:31 -07:00
table_properties_collectors Allow dynamic modification of window size and deletion trigger (#4403) 2018-09-20 15:15:28 -07:00
trace Add path to WritableFileWriter. (#4039) 2018-08-23 10:12:58 -07:00
transactions Skip concurrency control during recovery of pessimistic txn (#4346) 2018-09-10 16:57:53 -07:00
ttl Per-thread unique test db names (#4135) 2018-07-13 17:27:39 -07:00
write_batch_with_index WriteUnPrepared: Implement unprepared batches for transactions (#4104) 2018-07-24 00:13:18 -07:00
col_buf_decoder.cc Support pragma once in all header files and cleanup some warnings (#4339) 2018-09-05 18:13:31 -07:00
col_buf_decoder.h Comment out unused variables 2018-03-05 13:13:41 -08:00
col_buf_encoder.cc fix shift UBSAN error in col_buf_encoder.cc 2018-02-20 16:44:00 -08:00
col_buf_encoder.h Change RocksDB License 2017-07-15 16:11:23 -07:00
column_aware_encoding_exp.cc fix memory leak in two_level_iterator 2018-04-15 17:26:26 -07:00
column_aware_encoding_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
column_aware_encoding_util.cc Revert "Digest ZSTD compression dictionary once per SST file (#4251)" (#4347) 2018-09-06 09:58:34 -07:00
column_aware_encoding_util.h Move prefix_extractor to MutableCFOptions 2018-05-21 14:43:11 -07:00
debug.cc GetAllKeyVersions() to take an extra argument of max_num_ikeys. (#4271) 2018-08-16 15:57:08 -07:00
env_librados.cc Suppress lint in old files 2018-01-29 12:56:42 -08:00
env_librados.md Add EnvLibrados - RocksDB Env of RADOS (#1222) 2016-07-21 11:16:34 -07:00
env_librados_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
env_mirror.cc Add path to WritableFileWriter. (#4039) 2018-08-23 10:12:58 -07:00
env_mirror_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
env_timed.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
env_timed_test.cc fix memory leak in two_level_iterator 2018-04-15 17:26:26 -07:00
merge_operators.h Support StringAppendOperator(delimiter_char) constructor in java-api 2018-03-08 16:17:47 -08:00
object_registry_test.cc fix memory leak in two_level_iterator 2018-04-15 17:26:26 -07:00
util_merge_operators_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00