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