cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jonathan Ellis (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-3578) Multithreaded commitlog
Date Sat, 26 Oct 2013 05:22:32 GMT


Jonathan Ellis commented on CASSANDRA-3578:

bq. 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. 

I like it.

bq. Doesn't have a end of segment on each mutation, we just have header which will hold the

Meaning the cfLastWrite business, right?  I must be missing where this gets persisted back
to disk, but in any case, I'm not a fan; we got rid of the old per-segment header in part
because seeking back and forth between the header and the tail where the appends happen was
bad for performance.

mfiguiere had a good summary of the options for dealing with end-of-segment above.  Note that
with any of these, I think allocate needs to write the length to the segment before returning.
 That way if I have two threads writing mutations X and Y, if Y's is written before a crash
and X's is not, at least the length will be there that allows replay to skip the [unfinished]
write of X and replay Y.

> Multithreaded commitlog
> -----------------------
>                 Key: CASSANDRA-3578
>                 URL:
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Vijay
>            Priority: Minor
>              Labels: performance
>         Attachments: 0001-CASSANDRA-3578.patch,, Current-CL.png,
Multi-Threded-CL.png, 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

View raw message