[ 
https://issues.apache.org/jira/browse/CASSANDRA-5549?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13874191#comment-13874191
 ] 

Benedict commented on CASSANDRA-5549:
-------------------------------------

bq. When does CLQ block? Are you thinking of LBQ?

It's double locked, so lock to read, lock to write. Also double-lock to 
Iterator remove. So by NonBlockingQueue, I mean WaitFreeQueue, not 
NoBlockingMethodQueue :-)

bq. So if we can call NBQ an optimization

If it weren't for WaitQueue I'd say it were just an optimisation, but it's 
likely to cause real wasted cycles. I've seen it happening, it's not a 
theoretical risk, the only question is how big the problem would be given the 
use case of WaitQueue.... and the answer is, I'm not sure. There's a reasonable 
chance it will only trigger wasted cycles infrequently, in which case we can 
address it later. 

CASSANDRA-6557 really needs it to fix the bug I spotted, though, so we'll have 
to put it in before release anyway. Not sure that buys you much respite!


> 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)

Reply via email to