[SERVER-54985] Move BucketCatalog committer assignment to commit time Created: 05/Mar/21  Updated: 17/Mar/21  Resolved: 17/Mar/21

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: Dan Larkin-York Assignee: Dan Larkin-York
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by SERVER-54473 Reduce number of promise/future pairs... Closed
Gantt Dependency
has to be done before SERVER-55216 Re-enable jstests/concurrency/fsm_wor... Closed
Sprint: Execution Team 2021-03-22
Participants:

 Description   

Currently the decision of which writer commits a bucket is made when an individual writer makes the first uncommitted insert to a bucket. In cases with large batches and many writers, this can be highly problematic. A single writer W1 may have committer status on multiple buckets, e.g. B1 and B2. Many writers may be waiting on B2 while W1 is busy committing B1. One of these writers, say W2, could be committing B2, increasing throughput.

Shifting the committer assignment to commit time rather than insert time should allow us to minimize wait time.

At the same time, we will also simplify the state management a bit. Instead of keeping a promise per measurement insert, we will maintain likely a single state variable (promise or condition variable, etc.) at a time, or maybe a few, but definitely fewer than we currently maintain.



 Comments   
Comment by Githook User [ 17/Mar/21 ]

Author:

{'name': 'Dan Larkin-York', 'email': 'dan.larkin-york@mongodb.com', 'username': 'dhly-etc'}

Message: SERVER-54985 Move BucketCatalog committer assignment to commit time
Branch: master
https://github.com/mongodb/mongo/commit/63e2e365f322810bd0679c9fae4ce8b0dda26ea1

Generated at Thu Feb 08 05:35:07 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.