You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ag...@apache.org on 2019/12/30 15:57:34 UTC
[ignite] branch master updated: IGNITE-12486 Index calculation in
FileWriteAheadLogManager#rollOver fixed.
This is an automated email from the ASF dual-hosted git repository.
agura pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push:
new 8d7363d IGNITE-12486 Index calculation in FileWriteAheadLogManager#rollOver fixed.
8d7363d is described below
commit 8d7363da3c03993c8a50884788595674a65d6e7f
Author: ibessonov <be...@gmail.com>
AuthorDate: Mon Dec 30 18:57:05 2019 +0300
IGNITE-12486 Index calculation in FileWriteAheadLogManager#rollOver fixed.
Signed-off-by: Andrey Gura <ag...@apache.org>
---
.../processors/cache/persistence/wal/AbstractWalRecordsIterator.java | 5 ++++-
.../processors/cache/persistence/wal/FileWriteAheadLogManager.java | 2 +-
.../cache/persistence/wal/filehandle/FileWriteHandleImpl.java | 2 +-
.../cache/persistence/wal/filehandle/FsyncFileWriteHandle.java | 2 +-
.../processors/cache/persistence/db/wal/WalCompactionTest.java | 2 +-
5 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/AbstractWalRecordsIterator.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/AbstractWalRecordsIterator.java
index 0392d7e..ce9b992 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/AbstractWalRecordsIterator.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/AbstractWalRecordsIterator.java
@@ -275,7 +275,10 @@ public abstract class AbstractWalRecordsIterator
if (e instanceof WalSegmentTailReachedException) {
throw new WalSegmentTailReachedException(
"WAL segment tail reached. [idx=" + hnd.idx() +
- ", isWorkDir=" + hnd.workDir() + ", serVer=" + hnd.ser() + "]", e);
+ ", isWorkDir=" + hnd.workDir() + ", serVer=" + hnd.ser() +
+ ", actualFilePtr=" + actualFilePtr + ']',
+ e
+ );
}
if (!(e instanceof SegmentEofException) && !(e instanceof EOFException)) {
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileWriteAheadLogManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileWriteAheadLogManager.java
index c22ed28..a09de37 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileWriteAheadLogManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileWriteAheadLogManager.java
@@ -1252,7 +1252,7 @@ public class FileWriteAheadLogManager extends GridCacheSharedManagerAdapter impl
metrics.onWallRollOver();
if (switchSegmentRecordOffset != null) {
- int idx = (int)((cur.getSegmentId() + 1) % dsCfg.getWalSegments());
+ int idx = (int)(cur.getSegmentId() % dsCfg.getWalSegments());
switchSegmentRecordOffset.set(idx, hnd.getSwitchSegmentRecordOffset());
}
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/filehandle/FileWriteHandleImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/filehandle/FileWriteHandleImpl.java
index 5b9f597..c0763a7 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/filehandle/FileWriteHandleImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/filehandle/FileWriteHandleImpl.java
@@ -489,7 +489,7 @@ class FileWriteHandleImpl extends AbstractFileHandle implements FileWriteHandle
int switchSegmentRecSize = backwardSerializer.size(segmentRecord);
- if (rollOver && written < (maxWalSegmentSize - switchSegmentRecSize)) {
+ if (rollOver && written + switchSegmentRecSize < maxWalSegmentSize) {
segmentRecord.size(switchSegmentRecSize);
WALPointer segRecPtr = addRecord(segmentRecord);
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/filehandle/FsyncFileWriteHandle.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/filehandle/FsyncFileWriteHandle.java
index b1c7585..d8f9ea5 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/filehandle/FsyncFileWriteHandle.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/filehandle/FsyncFileWriteHandle.java
@@ -640,7 +640,7 @@ class FsyncFileWriteHandle extends AbstractFileHandle implements FileWriteHandle
int switchSegmentRecSize = backwardSerializer.size(segmentRecord);
- if (rollOver && written < (maxSegmentSize - switchSegmentRecSize)) {
+ if (rollOver && written + switchSegmentRecSize < maxSegmentSize) {
final ByteBuffer buf = ByteBuffer.allocate(switchSegmentRecSize);
segmentRecord.position(new FileWALPointer(getSegmentId(), (int)written, switchSegmentRecSize));
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalCompactionTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalCompactionTest.java
index a8f6014..1018f9e 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalCompactionTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalCompactionTest.java
@@ -291,7 +291,7 @@ public class WalCompactionTest extends GridCommonAbstractTest {
IgniteConfiguration icfg = getConfiguration(getTestIgniteInstanceName(0));
icfg.getDataStorageConfiguration().setWalSegmentSize(300_000_000);
- icfg.getDataStorageConfiguration().setWalSegments(1);
+ icfg.getDataStorageConfiguration().setWalSegments(2);
IgniteEx ig = (IgniteEx)startGrid(getTestIgniteInstanceName(0), optimize(icfg), null);