You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@rocketmq.apache.org by "Roman Shtykh (JIRA)" <ji...@apache.org> on 2016/12/28 09:25:58 UTC

[jira] [Updated] (ROCKETMQ-23) MappedFileQueue#flush should return true when flushing is successful

     [ https://issues.apache.org/jira/browse/ROCKETMQ-23?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Roman Shtykh updated ROCKETMQ-23:
---------------------------------
    Description: 
In the current implementation, MappedFileQueue#flush returns {{false}} when flushing is successful.
This is not intuitive and error prone.

For instance, in {{CommitLog#run line:915-918}}
{code}
for (int i = 0; i < RETRY_TIMES_OVER && !result; i++) {
   result = CommitLog.this.mappedFileQueue.flush(0);
   // ...
}
{code}
I believe retries has to be done when flushing is not successful. But with the code above, it can try to flush only once on CommitLog termination and not continue retrying.

The same is for {{DefaultMessageStore#doFlush line:1551}}

Or is this not retry on failure, but the number of times flushing has to be done? Then, {{RETRY_TIMES_OVER}} should be renamed to something like {{FLUSH_NUM}}.

  was:
In the current implementation, MappedFileQueue#flush returns {{false}} when flushing is successful.
This is not intuitive and error prone.

For instance, in {{CommitLog#run line:915-918}}
{code}
for (int i = 0; i < RETRY_TIMES_OVER && !result; i++) {
   result = CommitLog.this.mappedFileQueue.flush(0);
   // ...
}
{code}
I believe retries has to be done when flushing is not successful. But with the code above, it can try to flush only once on CommitLog termination and not continue retrying.

Or is this not retry on failure, but the number of times flushing has to be done? Then, {{RETRY_TIMES_OVER}} should be renamed to something like {{FLUSH_NUM}}.

The same is for {{DefaultMessageStore#doFlush line:1551}}


> MappedFileQueue#flush should return true when flushing is successful
> --------------------------------------------------------------------
>
>                 Key: ROCKETMQ-23
>                 URL: https://issues.apache.org/jira/browse/ROCKETMQ-23
>             Project: Apache RocketMQ
>          Issue Type: Bug
>          Components: rocketmq-store
>    Affects Versions: 4.0.0-incubating
>            Reporter: Roman Shtykh
>            Assignee: Roman Shtykh
>
> In the current implementation, MappedFileQueue#flush returns {{false}} when flushing is successful.
> This is not intuitive and error prone.
> For instance, in {{CommitLog#run line:915-918}}
> {code}
> for (int i = 0; i < RETRY_TIMES_OVER && !result; i++) {
>    result = CommitLog.this.mappedFileQueue.flush(0);
>    // ...
> }
> {code}
> I believe retries has to be done when flushing is not successful. But with the code above, it can try to flush only once on CommitLog termination and not continue retrying.
> The same is for {{DefaultMessageStore#doFlush line:1551}}
> Or is this not retry on failure, but the number of times flushing has to be done? Then, {{RETRY_TIMES_OVER}} should be renamed to something like {{FLUSH_NUM}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)