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

Ariel Weisberg edited comment on CASSANDRA-10202 at 6/20/16 8:23 PM:
---------------------------------------------------------------------

Why can't we use mutual exclusion the entire time? The only lock free access we 
really need is to allocate from the current active segment right? After that 
can we use double checked locking to deal with swapping in a new segment?

I am not against implementing our own, but I think we should set the testing 
bar somewhere that makes it look like it does what it is supposed to do under 
concurrent access. Maybe 
[jcstress|http://openjdk.java.net/projects/code-tools/jcstress/] can help with 
testing this kind of thing.

I am also not a fan of doing the work to implement an intrusive linked list, 
but not in a generic reusable way. What I don't want to see is a proliferation 
of custom implementations that are inlined into single use areas. It would be 
fine if it didn't implement the entire List API to start.


was (Author: aweisberg):
Why can't we use mutual exclusion the entire time? The only lock free access we 
really need is to allocate from the current active segment right? After that 
can we use double checked locking to deal with swapping in a new segment?

> simplify CommitLogSegmentManager
> --------------------------------
>
>                 Key: CASSANDRA-10202
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10202
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Local Write-Read Paths
>            Reporter: Jonathan Ellis
>            Assignee: Branimir Lambov
>            Priority: Minor
>
> Now that we only keep one active segment around we can simplify this from the 
> old recycling design.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to