You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Vijay (JIRA)" <ji...@apache.org> on 2013/10/18 05:03:42 UTC

[jira] [Commented] (CASSANDRA-3578) Multithreaded commitlog

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

Vijay commented on CASSANDRA-3578:
----------------------------------

Pushed my changes to https://github.com/Vijay2win/cassandra/commits/3578

* The above takes a different approach, we update commit log as a part of the mutation thread and no more threads to deal with serialization. CAS operation to reserve a block of bytes in the MMapped segment (Similar to slab allocator) and activate segments.
* Sync is managed in the separate thread still.
* Doesn't have a end of segment on each mutation, we just have header which will hold the end.

We could clean up little more if it looks good.
Performance test shows a slight improvements... May be once we remove other bottlenecks the improvements (also have to test on spinning drives) will be more visible.



> Multithreaded commitlog
> -----------------------
>
>                 Key: CASSANDRA-3578
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3578
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Vijay
>            Priority: Minor
>              Labels: performance
>         Attachments: 0001-CASSANDRA-3578.patch, parallel_commit_log_2.patch
>
>
> Brian Aker pointed out a while ago that allowing multiple threads to modify the commitlog simultaneously (reserving space for each with a CAS first, the way we do in the SlabAllocator.Region.allocate) can improve performance, since you're not bottlenecking on a single thread to do all the copying and CRC computation.
> Now that we use mmap'd CommitLog segments (CASSANDRA-3411) this becomes doable.
> (moved from CASSANDRA-622, which was getting a bit muddled.)



--
This message was sent by Atlassian JIRA
(v6.1#6144)