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)