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 Thu, 28 Nov 2013 13:16:37 GMT


Benedict commented on CASSANDRA-3578:

Thinking a little more on the PCLE guarantees about syncing, I think perhaps a better scheme
is to attempt to sync() twice every "poll interval" (or once every 0.49*interval), and to
only update the heartbeat at the end of a sync(); at the moment I update before and after,
to deal with the fact that the blockInterval and pollInterval are approximately the same (so
we don't simply block every time we start a sync()). This means you could lose upto 2x interval
commits. I addressed this in a previous comment, but didn't deal with it in the code.

It also occurs to me that pollInterval is a really bad name, and it should be called maxSyncInterval
or something.

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