Repository: ignite Updated Branches: refs/heads/master 252eedccc -> f57b67767
IGNITE-5915 - Added warning for WAL NONE mode Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/f57b6776 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/f57b6776 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/f57b6776 Branch: refs/heads/master Commit: f57b6776775308753a1fa579c0e7599df241be61 Parents: 252eedc Author: Alexey Goncharuk <[email protected]> Authored: Mon Oct 2 15:05:42 2017 +0300 Committer: Alexey Goncharuk <[email protected]> Committed: Mon Oct 2 15:06:12 2017 +0300 ---------------------------------------------------------------------- .../java/org/apache/ignite/configuration/WALMode.java | 14 ++++++++++---- .../persistence/wal/FileWriteAheadLogManager.java | 5 ++++- 2 files changed, 14 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/f57b6776/modules/core/src/main/java/org/apache/ignite/configuration/WALMode.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/WALMode.java b/modules/core/src/main/java/org/apache/ignite/configuration/WALMode.java index 9d4520e..bea0cba 100644 --- a/modules/core/src/main/java/org/apache/ignite/configuration/WALMode.java +++ b/modules/core/src/main/java/org/apache/ignite/configuration/WALMode.java @@ -17,6 +17,7 @@ package org.apache.ignite.configuration; +import org.apache.ignite.Ignite; import org.jetbrains.annotations.Nullable; /** @@ -24,22 +25,27 @@ import org.jetbrains.annotations.Nullable; */ public enum WALMode { /** - * Default mode: full-sync disk writes. These writes survive power loss scenarios. + * Default mode: full-sync disk writes. These writes survive power loss scenarios. When a control is returned + * from the trnasaction commit operation, the changes are guaranteed to be forced on disk according to the + * transaction write synchronization mode. */ DEFAULT, /** - * Log only mode: flushes application buffers. These writes survive process crash. + * Log only mode: flushes application buffers. These writes survive process crash. When a control is returned + * from the transaction commit operation, the changes are guaranteed to be forced to the OS buffer cache. */ LOG_ONLY, /** - * Background mode. Does not force application buffer flush. Data may be lost in case of process crash. + * Background mode. Does not force application buffer flush. Last updates may be lost in case of a process crash. */ BACKGROUND, /** - * WAL disabled. + * WAL is disabled. Data is guaranteed to be persisted on disk only in case of graceful cluster shutdown using + * {@link Ignite#active(boolean)} method. If an Ignite node is forefully terminated in NONE mode, it is likely + * that data stored on disk is corrupted and work directory will need to be cleared for a successfull node restart. */ NONE; http://git-wip-us.apache.org/repos/asf/ignite/blob/f57b6776/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/FileWriteAheadLogManager.java ---------------------------------------------------------------------- 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 76edcea..c8715aa 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 @@ -294,10 +294,13 @@ public class FileWriteAheadLogManager extends GridCacheSharedManagerAdapter impl archiver = new FileArchiver(tup == null ? -1 : tup.get2()); - if (mode != WALMode.DEFAULT) { + if (mode != WALMode.NONE) { if (log.isInfoEnabled()) log.info("Started write-ahead log manager [mode=" + mode + ']'); } + else + U.quietAndWarn(log, "Started write-ahead log manager in NONE mode, persisted data may be lost in " + + "a case of unexpected node failure. Make sure to deactivate the cluster before shutdown."); } }
