Details
-
Improvement
-
Resolution: Fixed
-
Minor
-
None
Description
Currently the following functions are executed in front-end threads:
- DurabilityMonitor::addSyncWrite
- DurabilityMonitor::seqnoAckReceived
Both functions:
- update the internal tracking
- commit satisfied SyncWrites
Both operations a relatively slow for being executed in a front-end thread, so we expect a relevant (negative) impact on throughput.
The idea is to do just the strictly necessary in front-end thread (e.g., register that a Seqno-Ack has been received), and defer all the rest to a BG execution (e.g., update iterators and commit).
Attachments
For Gerrit Dashboard: MB-33092 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
113141,11 | MB-35458 [SR]: Move SyncWrite completion to bg DurabilityCompletionTask | master | kv_engine | Status: MERGED | +2 | +1 |
113747,1 | MB-35458 [SR]: Move SyncWrite completion to bg DurabilityCompletionTask | master | kv_engine | Status: ABANDONED | 0 | 0 |
113749,5 | MB-35458 [SR]: Move SyncWrite completion to bg DurabilityCompletionTask | master | kv_engine | Status: MERGED | +2 | +1 |