• yiwu-arbug's avatar
    Prevent CF being dropped while GC is running (#72) · 8768067e
    yiwu-arbug authored
    Summary:
    If `DropColumnFamilies` is called while GC is running, GC can fail because the CF is gone. The GC job will then set background error which halts Titan as a whole. To prevent it, we let `DropColumnFamilies` wait till there no running GC before proceed, and let GC job wait for pending drop CF requests before start running. Fixes #71.
    
    Also fix `DropColumnFamilies` mark obsolete file as obsolete again, which will cause assert failure.
    
    Test Plan:
    Run titandb_stress and the above issues don't reproduce.
    8768067e
Name
Last commit
Last update
..
base_db_listener.cc Loading commit data...
base_db_listener.h Loading commit data...
blob_file_builder.cc Loading commit data...
blob_file_builder.h Loading commit data...
blob_file_cache.cc Loading commit data...
blob_file_cache.h Loading commit data...
blob_file_iterator.cc Loading commit data...
blob_file_iterator.h Loading commit data...
blob_file_iterator_test.cc Loading commit data...
blob_file_manager.h Loading commit data...
blob_file_reader.cc Loading commit data...
blob_file_reader.h Loading commit data...
blob_file_set.cc Loading commit data...
blob_file_set.h Loading commit data...
blob_file_size_collector.cc Loading commit data...
blob_file_size_collector.h Loading commit data...
blob_file_size_collector_test.cc Loading commit data...
blob_file_test.cc Loading commit data...
blob_format.cc Loading commit data...
blob_format.h Loading commit data...
blob_format_test.cc Loading commit data...
blob_gc.cc Loading commit data...
blob_gc.h Loading commit data...
blob_gc_job.cc Loading commit data...
blob_gc_job.h Loading commit data...
blob_gc_job_test.cc Loading commit data...
blob_gc_picker.cc Loading commit data...
blob_gc_picker.h Loading commit data...
blob_gc_picker_test.cc Loading commit data...
blob_storage.cc Loading commit data...
blob_storage.h Loading commit data...
db.cc Loading commit data...
db_impl.cc Loading commit data...
db_impl.h Loading commit data...
db_impl_files.cc Loading commit data...
db_impl_gc.cc Loading commit data...
db_iter.h Loading commit data...
edit_collector.h Loading commit data...
options.cc Loading commit data...
table_builder.cc Loading commit data...
table_builder.h Loading commit data...
table_builder_test.cc Loading commit data...
table_factory.cc Loading commit data...
table_factory.h Loading commit data...
testutil.h Loading commit data...
thread_safety_test.cc Loading commit data...
titan_db_test.cc Loading commit data...
titan_fault_injection_test_env.h Loading commit data...
titan_options_test.cc Loading commit data...
titan_stats.cc Loading commit data...
titan_stats.h Loading commit data...
util.cc Loading commit data...
util.h Loading commit data...
util_test.cc Loading commit data...
version_edit.cc Loading commit data...
version_edit.h Loading commit data...
version_test.cc Loading commit data...