Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Later
-
4.0.0-incubating
-
None
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
for (int i = 0; i < RETRY_TIMES_OVER && !result; i++) { result = CommitLog.this.mappedFileQueue.flush(0); // ... }
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.
Attachments
Issue Links
- links to