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)