Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
db: don't delete files during ingest application
Previously, ingestions would trigger obsolete file deletions during the ingest application step. This has the potential to exacerbate the write "hiccup"/stall induced by sstable ingestion. The sequence numbers assigned to the ingestion are not published until after ingestion application. This prevents any concurrent writes that obtained later sequence numbers from publishing their own sequence numbers. When Options.Experimental.MinDeletionRate is configured, this step to delete obsolete files should have minimal impact. However, when Experimental.MinDeletionRate is not configured, the ingesting goroutine would synchronously perform file deletions, extending the length of the commit stall. Now ingestions don't trigger deletion of obsolete files. The only file deletion that an ingestion operation itself could trigger is deletion of a manifest that was made obsolete during a manifest rotation while committing the version edit. This is very rare, and delaying the deletion until a flush or compaction completes is okay.
- Loading branch information