You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Benedict (JIRA)" <ji...@apache.org> on 2015/11/06 19:11:11 UTC

[jira] [Comment Edited] (CASSANDRA-10202) simplify CommitLogSegmentManager

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

Benedict edited comment on CASSANDRA-10202 at 11/6/15 6:10 PM:
---------------------------------------------------------------

Overall it cleans up a number of things. I've pushed a version [here|https://github.com/belliottsmith/cassandra/tree/10202] which modifies the underlying semantics a little to, IMO, _conceptually_ simplify things further. It does so by combining all three "parts" of the segment management into a single list - the current segment simply always being the last or penultimate segment in the list. This also permits a return to lock-free segment swapping. It does introduce extra code since we now have a linked-list to maintain, so it's not absolutely a simplification, so it is debatable if it is an improvement.

>From my recollection, there was a bug with {{discard}} having the potential to be called twice if two flushes overlapped, which has been fixed. I can't recall if there were any other issues, but if there were, I fixed them in this branch also. 

I've not had time to self-review my changes, but I'm going on holiday for a while so figured I would post it in advance of that.


was (Author: benedict):
Overall it cleans up a number of things. I've pushed a version [here|https://github.com/belliottsmith/cassandra/tree/10202] which modifies the underlying semantics a little to, IMO, _conceptually_ simplify things a little. It does so by combining all three "parts" of the segment management into a single list - the current segment simply always being the last or penultimate segment in the list. This also permits a return to lock-free segment swapping. It does introduce extra code since we now have a linked-list to maintain, so it's not absolutely a simplification, so it is debatable if it is an improvement.

>From my recollection, there was a bug with {{discard}} having the potential to be called twice if two flushes overlapped, which has been fixed. I can't recall if there were any other issues, but if there were, I fixed them in this branch also. 

I've not had time to self-review my changes, but I'm going on holiday for a while so figured I would post it in advance of that.

> simplify CommitLogSegmentManager
> --------------------------------
>
>                 Key: CASSANDRA-10202
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10202
>             Project: Cassandra
>          Issue Type: Improvement
>            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)