Hi, all. I saw this description from here: https://docs.mongodb.com/manual/faq/concurrency/
Locks are fair, with reads and writes being queued in order. However, to optimize throughput, when one request is granted, all other compatible requests will be granted at the same time, potentially releasing them before a conflicting request. For example, consider a case in which an X lock was just released, and in which the conflict queue contains the following items:
IS → IS → X → X → S → IS
In strict first-in, first-out (FIFO) ordering, only the first two IS modes would be granted. Instead MongoDB will actually grant all IS and S modes, and once they all drain, it will grant X, even if new IS or S requests have been queued in the meantime. As a grant will always move all other requests ahead in the queue, no starvation of any request is possible
and cannot understand. Does it mean when fetching the first lock from queue, all compatible locks with it in the queue can be granted simultaneously ?
Reordering conflicting lock request makes sense ?