-
Type:
Improvement
-
Status: Closed
-
Priority:
Major - P3
-
Resolution: Fixed
-
Affects Version/s: None
-
Component/s: None
-
Labels:
-
Epic Link:
-
Sprint:Storage 2018-01-29, Storage 2018-02-12
-
Backport Requested:v3.6
In investigating SERVER-31694, I've seen a number of pmp stacks that indicate that the rwlocks protecting the timestamp queues can be a source of contention. Every transaction must take the mutex for writing twice, once when setting a timestamp on a transaction to insert it into the queue and once on commit/rollback to remove the txn from the queue.
Consider ways to reduce the times a user thread needs to hold that lock. Perhaps on commit/rollback the user thread clears or sets flags and an internal worker thread walks the list and removes transactions from the list so that a commit does not need to acquire that write lock.