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