You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
db: delete obsolete files before scheduling flushes, compactions
During Open, scan the directory listing for obsolete files before scheduling a
memtable flush or compaction. Previously, contrary to its documentation,
DB.scanObsoleteFiles could run in parallel to compactions. Subtly,
scanObsoleteFiles would block, waiting for compactions to queisce before
proceeding. This ensured that once it proceeded it had a consistent view of the
set of live files. This structure was subtle, less-deterministic and blocked
Open from proceeding until compactions quiesced.
This commit moves the scanning of the directory listing before the scheduling
of flushes or compactions, and adds an assertion that no flushes or compactions
are running during scanObsoleteFiles.
Fix#5420.
0 commit comments