Details
-
Improvement
-
Status: Closed
-
Major - P3
-
Resolution: Fixed
-
None
-
None
-
Storage 2018-01-29, Storage 2018-02-12
-
v3.6
Description
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.