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

Benedict commented on CASSANDRA-3578:
-------------------------------------

If we do neither (2) or my previous approach of linearizing the writes and only 
marking complete up until the furthest contiguously written point then, at the 
very least, our batch executor could ACK a commit that may be unreadable on 
replay because earlier log messages haven't been written (without their sizes 
being synced we can't read the later messages). Don't need a poweroff scenario, 
just a kill would do. 

For Periodic sync we probably don't care so much, although there's no guarantee 
how long a thread could have been paused for. Should be micros, but we could 
theoretically have multiple flushes unreadable due to a stalled / failed log 
write.

> 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, ComitlogStress.java, 
> 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
(v6.1#6144)

Reply via email to