Details
-
Improvement
-
Resolution: Fixed
-
Major
-
6.5.0
-
KV Sprint 2020-Oct
Description
Allow compaction to be partially concurrent with Flushing, by allowing the Flusher to continue to run while compacting the previous file. When compaction gets to the the end of the snapshot of the file when it opened, then block the Flusher and check if any more mutations have been written to the (old) couchstore file, if so copy just that (hopefully small) number over to the new file.
This allows the bulk (99+%) of the compaction to occur without blocking the flusher, minimising the period when exclusive access is required.
Attachments
Issue Links
- has to be done after
-
MB-41747 Couchstore: Memcached crashed in Warmup::loadKVPairsforShard(unsigned short) () from /opt/couchbase/bin/../lib/libep.so
- Closed
-
MB-40415 "_local/vbstate" may get out of sync if a crash happens right after compaction
- Closed
- relates to
-
MB-38426 Reduce SyncWrite latency
- Closed