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:24:58 UTC

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

Roman Shtykh created ROCKETMQ-23:
------------------------------------

             Summary: 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.

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}}



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