Revision 0ce0edbe120f0ec5c17b3cf7d54a09b1f911e8db authored by Yanqin Jin on 21 November 2019, 00:32:17 UTC, committed by Facebook Github Bot on 21 November 2019, 00:36:29 UTC
Summary: Use db mutex to protect the execution of Version::GetColumnFamilyMetaData() called in DBImpl::GetColumnFamilyMetaData(). Without mutex, GetColumnFamilyMetaData() races with MarkFilesBeingCompacted() for access to FileMetaData::being_compacted. Other than mutex, there are several more alternatives. - Make FileMetaData::being_compacted an atomic variable. This will make FileMetaData non-copy-able. - Separate being_compacted from FileMetaData. This requires re-organizing data structures that are already used in many places. Test Plan (dev server): ``` make check ``` Pull Request resolved: https://github.com/facebook/rocksdb/pull/6056 Differential Revision: D18620488 Pulled By: riversand963 fbshipit-source-id: 87f89660b5d5e2ab4ef7962b7b2a7d00e346aa3b
1 parent c0983d0
File | Mode | Size |
---|---|---|
backupable | ||
blob_db | ||
cassandra | ||
checkpoint | ||
compaction_filters | ||
convenience | ||
leveldb_options | ||
memory | ||
merge_operators | ||
option_change_migration | ||
options | ||
persistent_cache | ||
simulator_cache | ||
table_properties_collectors | ||
trace | ||
transactions | ||
ttl | ||
write_batch_with_index | ||
debug.cc | -rw-r--r-- | 2.6 KB |
env_librados.cc | -rw-r--r-- | 36.3 KB |
env_librados.md | -rw-r--r-- | 4.6 KB |
env_librados_test.cc | -rw-r--r-- | 34.6 KB |
env_mirror.cc | -rw-r--r-- | 7.9 KB |
env_mirror_test.cc | -rw-r--r-- | 7.1 KB |
env_timed.cc | -rw-r--r-- | 5.1 KB |
env_timed_test.cc | -rw-r--r-- | 1.2 KB |
merge_operators.h | -rw-r--r-- | 2.0 KB |
object_registry.cc | -rw-r--r-- | 2.8 KB |
object_registry_test.cc | -rw-r--r-- | 5.8 KB |
util_merge_operators_test.cc | -rw-r--r-- | 3.3 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...