cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Benedict (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-3578) Multithreaded commitlog
Date Wed, 06 Nov 2013 20:06:18 GMT


Benedict commented on CASSANDRA-3578:

I left Vijay's solution mostly unchanged here (bar a minor fix) - sync() writes the end position
to the start of the commit log before each buffer.force(). The END_OF_SEGMENT_MARKER is still
read for backwards compatibility; MessagingService.VERSION is used to determine if we should
read the start marker, although I'm not familiar enough with this property to know if this
is suitable for deciding this. We might want to consider versioning the commit logs themselves,
although we could do that easily with the name pattern.

> 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