Benedict Elliott Smith created CASSANDRA-15367:
--------------------------------------------------
Summary: Memtable memory allocations may deadlock
Key: CASSANDRA-15367
URL: https://issues.apache.org/jira/browse/CASSANDRA-15367
Project: Cassandra
Issue Type: Bug
Components: Local/Commit Log, Local/Memtable
Reporter: Benedict Elliott Smith
Assignee: Benedict Elliott Smith
* Under heavy contention, we guard modifications to a partition with a mutex,
for the lifetime of the memtable.
* Memtables block for the completion of all {{OpOrder.Group}} started before
their flush began
* Memtables permit operations from this cohort to fall-through to the following
Memtable, in order to guarantee a precise commitLogUpperBound
* Memtable memory limits may be lifted for operations in the first cohort,
since they block flush (and hence block future memory allocation)
With very unfortunate scheduling
* A contended partition may rapidly escalate to a mutex
* The system may reach memory limits that prevent allocations for the new
Memtable’s cohort (C2)
* An operation from C2 may hold the mutex when this occurs
* Operations from a prior Memtable’s cohort (C1), for a contended partition,
may fall-through to the next Memtable
* The operations from C1 may execute after the above is encountered by those
from C2
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]