• 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
blob_file_set.cc 9.47 KB