Prevent CF being dropped while GC is running (#72)
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.
Showing
Please
register
or
sign in
to comment