cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ZhaoYang (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-14292) Fix batch commitlog sync regression
Date Thu, 08 Mar 2018 10:26:00 GMT

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

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

Thanks for the review.

> Fix batch commitlog sync regression
> -----------------------------------
>
>                 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: 4.0, 3.0.17, 3.11.3
>
>         Attachments: 14292-3.0-dtest.png, 14292-3.0-unittest.png
>
>
> 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-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org


Mime
View raw message