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: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to