[ https://issues.apache.org/jira/browse/CASSANDRA-5549?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13874168#comment-13874168 ]
Benedict commented on CASSANDRA-5549: ------------------------------------- bq. WaitQueue has changed enough that git no longer recognizes the new one as sharing history with the old one. Can you summarize? Sure: - It includes the aforementioned improvements with NBQ (including now being non-blocking, except in the case of signaller/waiter trampling on each other occasionally in pthread world). - It abstracts the Signal, so that we can have other implementations: wait for all, wait for any, for example. - It supports timing the amount of time spent waiting. I have toyed with splitting this out into another ticket, but I did it whilst I was going, as I thought having the amount of time spent waiting on Memtable (or CL) flush would be a helpful metric. That said, perhaps we could try splitting this whole thing into a few smaller tickets, make it more manageable for you to review. I kind of suspect the main body won't diminish a lot though, which is why I didn't in the first place. But every little probably helps :-) > Remove Table.switchLock > ----------------------- > > Key: CASSANDRA-5549 > URL: https://issues.apache.org/jira/browse/CASSANDRA-5549 > Project: Cassandra > Issue Type: Bug > Reporter: Jonathan Ellis > Assignee: Benedict > Labels: performance > Fix For: 2.1 > > Attachments: 5549-removed-switchlock.png, 5549-sunnyvale.png > > > As discussed in CASSANDRA-5422, Table.switchLock is a bottleneck on the write > path. ReentrantReadWriteLock is not lightweight, even if there is no > contention per se between readers and writers of the lock (in Cassandra, > memtable updates and switches). -- This message was sent by Atlassian JIRA (v6.1.5#6160)