nizhikov commented on a change in pull request #9001:
URL: https://github.com/apache/ignite/pull/9001#discussion_r613558055
##########
File path:
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileWriteAheadLogManager.java
##########
@@ -1325,6 +1325,14 @@ private FileWriteHandle rollOver(FileWriteHandle cur,
@Nullable WALRecord rec) t
private FileWriteHandle restoreWriteHandle(@Nullable WALPointer
lastReadPtr) throws StorageException {
long absIdx = lastReadPtr == null ? 0 : lastReadPtr.index();
+ FileDescriptor[] walArchiveFiles = walArchiveFiles();
+
+ if (archiver != null &&
+ !F.isEmpty(walArchiveFiles) &&
+ absIdx <= walArchiveFiles[walArchiveFiles.length - 1].idx) {
+ absIdx = walArchiveFiles[walArchiveFiles.length - 1].idx + 1;
Review comment:
The root issue is the following: Right now Ignite continues to write to
rollovered segment on restart.
There is no way to distinguish between the already rollovered and "current"
segment on node failover.
Your proposal doesn't fix the root issue - we still can fall into a scenario
when the segment rollovered and archived but the marker record not written in
the next segment.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]