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 2017/08/22 17:58:29 UTC
[1/2] ignite git commit: IGNITE-6154 also fixed check for WAL record
Repository: ignite
Updated Branches:
refs/heads/master f39cae9f9 -> fa42218e5
IGNITE-6154 also fixed check for WAL record
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/fa42218e
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/fa42218e
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/fa42218e
Branch: refs/heads/master
Commit: fa42218e52d07f8869ed7da6874525b2722f3fcf
Parents: 474ecb8
Author: Ivan Rakov <iv...@gmail.com>
Authored: Tue Aug 22 17:03:42 2017 +0300
Committer: Andrey Gura <ag...@apache.org>
Committed: Tue Aug 22 20:49:07 2017 +0300
----------------------------------------------------------------------
.../cache/persistence/GridCacheDatabaseSharedManager.java | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/fa42218e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
index 0f0fb88..9f2e4a0 100755
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
@@ -2129,6 +2129,8 @@ public class GridCacheDatabaseSharedManager extends IgniteCacheDatabaseSharedMan
tracker.onLockWaitStart();
+ boolean hasPages;
+
checkpointLock.writeLock().lock();
try {
@@ -2193,7 +2195,9 @@ public class GridCacheDatabaseSharedManager extends IgniteCacheDatabaseSharedMan
cpPagesTuple = beginAllCheckpoints();
- if (!F.isEmpty(cpPagesTuple.get1())) {
+ hasPages = hasPageForWrite(cpPagesTuple.get1());
+
+ if (hasPages) {
// No page updates for this checkpoint are allowed from now on.
cpPtr = cctx.wal().log(cpRec);
@@ -2209,7 +2213,7 @@ public class GridCacheDatabaseSharedManager extends IgniteCacheDatabaseSharedMan
curr.cpBeginFut.onDone();
- if (hasPageForWrite(cpPagesTuple.get1())) {
+ if (hasPages) {
assert cpPtr != null;
// Sync log outside the checkpoint write lock.
[2/2] ignite git commit: IGNITE-6154 fix incorrect check checkpoint
pages
Posted by ag...@apache.org.
IGNITE-6154 fix incorrect check checkpoint pages
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/474ecb87
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/474ecb87
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/474ecb87
Branch: refs/heads/master
Commit: 474ecb877dfa951a620dc1351b3882cd3e558672
Parents: f39cae9
Author: Dmitriy Govorukhin <dm...@gmail.com>
Authored: Tue Aug 22 16:34:31 2017 +0300
Committer: Andrey Gura <ag...@apache.org>
Committed: Tue Aug 22 20:49:07 2017 +0300
----------------------------------------------------------------------
.../GridCacheDatabaseSharedManager.java | 23 ++++++++++++++++++--
1 file changed, 21 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/474ecb87/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
index 58e28de..0f0fb88 100755
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
@@ -2209,7 +2209,7 @@ public class GridCacheDatabaseSharedManager extends IgniteCacheDatabaseSharedMan
curr.cpBeginFut.onDone();
- if (!F.isEmpty(cpPagesTuple.get1())) {
+ if (hasPageForWrite(cpPagesTuple.get1())) {
assert cpPtr != null;
// Sync log outside the checkpoint write lock.
@@ -2260,6 +2260,24 @@ public class GridCacheDatabaseSharedManager extends IgniteCacheDatabaseSharedMan
}
/**
+ * Check that at least one collection is not empty.
+ *
+ * @param cpPagesCollWrapper Collection of {@link GridMultiCollectionWrapper} checkpoint pages.
+ */
+ private boolean hasPageForWrite(Collection<GridMultiCollectionWrapper<FullPageId>> cpPagesCollWrapper) {
+ boolean hasPages = false;
+
+ for (Collection c : cpPagesCollWrapper)
+ if (!c.isEmpty()) {
+ hasPages = true;
+
+ break;
+ }
+
+ return hasPages;
+ }
+
+ /**
* @return tuple with collections of FullPageIds obtained from each PageMemory and overall number of dirty pages.
*/
private IgniteBiTuple<Collection<GridMultiCollectionWrapper<FullPageId>>, Integer> beginAllCheckpoints() {
@@ -2334,7 +2352,8 @@ public class GridCacheDatabaseSharedManager extends IgniteCacheDatabaseSharedMan
* @param cpPagesTuple Checkpoint pages tuple.
*/
private GridMultiCollectionWrapper<FullPageId> splitAndSortCpPagesIfNeeded(
- IgniteBiTuple<Collection<GridMultiCollectionWrapper<FullPageId>>, Integer> cpPagesTuple) {
+ IgniteBiTuple<Collection<GridMultiCollectionWrapper<FullPageId>>, Integer> cpPagesTuple
+ ) {
List<FullPageId> cpPagesList = new ArrayList<>(cpPagesTuple.get2());
for (GridMultiCollectionWrapper<FullPageId> col : cpPagesTuple.get1()) {