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

ZhaoYang commented on CASSANDRA-14292:
--------------------------------------

CASSANDRA-14194 was solving race condition with multiple mutations. This ticket 
is to solve performance for single mutation.

In 3.0 branch with 13987, each mutation will have to wait for full 
batch-sync-window(2ms) for commitlog to sync.

> Batch commitlog performance regression in 3.0.16
> ------------------------------------------------
>
>                 Key: CASSANDRA-14292
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14292
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: ZhaoYang
>            Assignee: ZhaoYang
>            Priority: Major
>             Fix For: 3.0.x
>
>
> Prior to CASSANDRA-13987, in batch commitlog mode, commitlog will be synced 
> to disk right after mutation comes.
>  * haveWork semaphore is released in BatchCommitLogService.maybeWaitForSync
>  * AbstractCommitlogService will continue and sync to disk
> After C-13987, it makes a branch for chain maker flush more frequently in 
> periodic mode. To make sure in batch mode CL still flushes immediately, it 
> added {{syncRequested}} flag.
>  Unfortunately, in 3.0 branch, this flag is not being set to true when 
> mutation is waiting.
> So in AbstractCommitlogService, it will not execute the CL sync branch until 
> it reaches sync window(2ms)..
> {code:java|title=AbstractCommitLogService.java}
> if (lastSyncedAt + syncIntervalMillis <= pollStarted || shutdown || 
> syncRequested)
> {
>     // in this branch, we want to flush the commit log to disk
>     syncRequested = false;
>     commitLog.sync(shutdown, true);
>     lastSyncedAt = pollStarted;
>     syncComplete.signalAll();
> }
> else
> {
>     // in this branch, just update the commit log sync headers
>     commitLog.sync(false, false);
> }
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to