ignite git commit: IGNITE-9720 Make sure lazy list does not break checkpoint lock invariant

2018-11-30 Thread agoncharuk
Repository: ignite
Updated Branches:
  refs/heads/ignite-9720 a092939ee -> a26f32760


IGNITE-9720 Make sure lazy list does not break checkpoint lock invariant


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/a26f3276
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/a26f3276
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/a26f3276

Branch: refs/heads/ignite-9720
Commit: a26f327602214f05ce669cab9d2e7dd083d6d1e4
Parents: a092939
Author: Alexey Goncharuk 
Authored: Fri Nov 30 15:41:27 2018 +0300
Committer: Alexey Goncharuk 
Committed: Fri Nov 30 15:41:27 2018 +0300

--
 .../processors/cache/persistence/GridCacheOffheapManager.java  | 2 ++
 1 file changed, 2 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/a26f3276/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
index ed67bcf..8ce864a 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
@@ -1525,6 +1525,8 @@ public class GridCacheOffheapManager extends 
IgniteCacheOffheapManagerImpl imple
 
 freeList = new LazyCacheFreeList() {
 @Override protected CacheFreeList 
createDelegate() throws IgniteCheckedException {
+assert 
grp.shared().database().checkpointLockIsHeldByThread();
+
 return new PartitionCacheFreeList(grp, partId, 
reuseRoot);
 }
 };



ignite git commit: IGNITE-9720 WA for test hang

2018-11-29 Thread agoncharuk
Repository: ignite
Updated Branches:
  refs/heads/ignite-9720 fb639a0ba -> a092939ee


IGNITE-9720 WA for test hang


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/a092939e
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/a092939e
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/a092939e

Branch: refs/heads/ignite-9720
Commit: a092939ee158a3e8e8b6f9e1e42018c7ae305836
Parents: fb639a0
Author: Alexey Goncharuk 
Authored: Thu Nov 29 19:44:18 2018 +0300
Committer: Alexey Goncharuk 
Committed: Thu Nov 29 19:44:18 2018 +0300

--
 .../continuous/CacheContinuousQueryFailoverAbstractSelfTest.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/a092939e/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryFailoverAbstractSelfTest.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryFailoverAbstractSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryFailoverAbstractSelfTest.java
index e7c2261..7cf94e6 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryFailoverAbstractSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryFailoverAbstractSelfTest.java
@@ -1940,7 +1940,7 @@ public abstract class 
CacheContinuousQueryFailoverAbstractSelfTest extends GridC
 IgniteInternalFuture restartFut = GridTestUtils.runAsync(new 
Callable() {
 @Override public Void call() throws Exception {
 try {
-while (!stop.get() && !err) {
+while (!stop.get() && !err && 
!Thread.currentThread().isInterrupted()) {
 final int idx = rnd.nextInt(SRV_NODES);
 
 log.info("Stop node: " + idx);
@@ -2044,7 +2044,7 @@ public abstract class 
CacheContinuousQueryFailoverAbstractSelfTest extends GridC
 
 log.error("Thread id: " + threadId);
 
-while (System.currentTimeMillis() < stopTime && 
!stop.get() && !err) {
+while (System.currentTimeMillis() < stopTime && 
!stop.get() && !err && !Thread.currentThread().isInterrupted()) {
 Integer key = rnd.nextInt(PARTS);
 
 Integer val = valCntr.incrementAndGet();



ignite git commit: IGNITE-9720 Fixed inspections

2018-11-28 Thread agoncharuk
Repository: ignite
Updated Branches:
  refs/heads/ignite-9720 04fdbc1af -> 72705a94d


IGNITE-9720 Fixed inspections


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/72705a94
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/72705a94
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/72705a94

Branch: refs/heads/ignite-9720
Commit: 72705a94dd79b17145f746eb5fb8aad3f286a095
Parents: 04fdbc1
Author: Alexey Goncharuk 
Authored: Wed Nov 28 15:30:07 2018 +0300
Committer: Alexey Goncharuk 
Committed: Wed Nov 28 15:30:07 2018 +0300

--
 .../processors/cache/persistence/freelist/AbstractFreeList.java  | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/72705a94/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/freelist/AbstractFreeList.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/freelist/AbstractFreeList.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/freelist/AbstractFreeList.java
index b446ccb..8487c41 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/freelist/AbstractFreeList.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/freelist/AbstractFreeList.java
@@ -373,7 +373,7 @@ public abstract class AbstractFreeList 
extends PagesList imp
 }
 
 /** {@inheritDoc} */
-public long freeSpace() {
+@Override public long freeSpace() {
 long freeSpace = 0;
 
 for (int b = BUCKETS - 2; b > 0; b--) {
@@ -601,7 +601,7 @@ public abstract class AbstractFreeList 
extends PagesList imp
 /**
  * @return Number of empty data pages in free list.
  */
-public int emptyDataPages() {
+@Override public int emptyDataPages() {
 return bucketsSize[REUSE_BUCKET].intValue();
 }
 



ignite git commit: ignite-9720

2018-10-24 Thread sboikov
Repository: ignite
Updated Branches:
  refs/heads/ignite-9720 2a52875fa -> 8464bd197


ignite-9720


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/8464bd19
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/8464bd19
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/8464bd19

Branch: refs/heads/ignite-9720
Commit: 8464bd1976641bd35ac0de20d01e270d47726012
Parents: 2a52875
Author: sboikov 
Authored: Wed Oct 24 09:17:54 2018 +0300
Committer: sboikov 
Committed: Wed Oct 24 09:17:54 2018 +0300

--
 .../cache/persistence/FreeListLazyInitializationTest.java   | 1 -
 1 file changed, 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/8464bd19/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/FreeListLazyInitializationTest.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/FreeListLazyInitializationTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/FreeListLazyInitializationTest.java
index 45660ad..1cfc17a 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/FreeListLazyInitializationTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/FreeListLazyInitializationTest.java
@@ -17,7 +17,6 @@
 
 package org.apache.ignite.internal.processors.cache.persistence;
 
-import org.apache.ignite.IgniteCache;
 import org.apache.ignite.configuration.BinaryConfiguration;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.DataRegionConfiguration;



ignite git commit: ignite-9720

2018-10-23 Thread sboikov
Repository: ignite
Updated Branches:
  refs/heads/ignite-9720 9c3304676 -> 23d4f7217


ignite-9720


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/23d4f721
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/23d4f721
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/23d4f721

Branch: refs/heads/ignite-9720
Commit: 23d4f72176febac0be9c97ed020d00ffa81461e6
Parents: 9c33046
Author: sboikov 
Authored: Tue Oct 23 15:27:29 2018 +0300
Committer: sboikov 
Committed: Tue Oct 23 15:27:29 2018 +0300

--
 .../FreeListLazyInitializationTest.java | 25 
 1 file changed, 20 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/23d4f721/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/FreeListLazyInitializationTest.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/FreeListLazyInitializationTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/FreeListLazyInitializationTest.java
index 6a17c56..45660ad 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/FreeListLazyInitializationTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/FreeListLazyInitializationTest.java
@@ -17,6 +17,7 @@
 
 package org.apache.ignite.internal.processors.cache.persistence;
 
+import org.apache.ignite.IgniteCache;
 import org.apache.ignite.configuration.BinaryConfiguration;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.DataRegionConfiguration;
@@ -36,6 +37,7 @@ import java.util.List;
 import java.util.Map;
 
 import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
+import static org.apache.ignite.cache.CacheMode.PARTITIONED;
 import static org.apache.ignite.cache.CacheMode.REPLICATED;
 import static org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_SYNC;
 import static org.apache.ignite.testframework.GridTestUtils.getFieldValue;
@@ -65,12 +67,17 @@ public class FreeListLazyInitializationTest extends 
GridCommonAbstractTest {
 
 ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(IP_FINDER);
 
-CacheConfiguration ccfg = new CacheConfiguration(DEFAULT_CACHE_NAME);
-ccfg.setWriteSynchronizationMode(FULL_SYNC);
-ccfg.setAtomicityMode(TRANSACTIONAL);
-ccfg.setCacheMode(REPLICATED);
+CacheConfiguration ccfg1 = new CacheConfiguration(DEFAULT_CACHE_NAME);
+ccfg1.setWriteSynchronizationMode(FULL_SYNC);
+ccfg1.setAtomicityMode(TRANSACTIONAL);
+ccfg1.setCacheMode(REPLICATED);
 
-cfg.setCacheConfiguration(ccfg);
+CacheConfiguration ccfg2 = new CacheConfiguration("cache-2");
+ccfg2.setWriteSynchronizationMode(FULL_SYNC);
+ccfg2.setAtomicityMode(TRANSACTIONAL);
+ccfg2.setCacheMode(PARTITIONED);
+
+cfg.setCacheConfiguration(ccfg1, ccfg2);
 
 return cfg;
 }
@@ -127,6 +134,14 @@ public class FreeListLazyInitializationTest extends 
GridCommonAbstractTest {
 
 checkLazyFreeList(node, parts, false);
 
+// Check second cache and checkpoints do not force unnecessary free 
lists initialization.
+node.cache("cache-2").putAll(map);
+node.cache("cache-2").removeAll(map.keySet());
+
+forceCheckpoint(node);
+
+checkLazyFreeList(node, parts, false);
+
 node.cache(DEFAULT_CACHE_NAME).putAll(map);
 
 checkLazyFreeList(node, parts, true);



ignite git commit: ignite-9720

2018-10-23 Thread sboikov
Repository: ignite
Updated Branches:
  refs/heads/ignite-9720 a6cd973a2 -> 144ca212e


ignite-9720


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/144ca212
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/144ca212
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/144ca212

Branch: refs/heads/ignite-9720
Commit: 144ca212edf6dfcbd93feca5bc4c1244fb4edc5e
Parents: a6cd973
Author: sboikov 
Authored: Tue Oct 23 10:56:08 2018 +0300
Committer: sboikov 
Committed: Tue Oct 23 10:56:08 2018 +0300

--
 .../FreeListLazyInitializationTest.java | 159 +++
 .../ignite/testsuites/IgnitePdsTestSuite4.java  |   3 +
 2 files changed, 162 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/144ca212/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/FreeListLazyInitializationTest.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/FreeListLazyInitializationTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/FreeListLazyInitializationTest.java
new file mode 100644
index 000..e0a4aae
--- /dev/null
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/FreeListLazyInitializationTest.java
@@ -0,0 +1,159 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache.persistence;
+
+import org.apache.ignite.configuration.BinaryConfiguration;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.configuration.DataRegionConfiguration;
+import org.apache.ignite.configuration.DataStorageConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.configuration.WALMode;
+import org.apache.ignite.internal.IgniteEx;
+import org.apache.ignite.internal.processors.cache.GridCacheContext;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtLocalPartition;
+import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
+import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
+import static org.apache.ignite.cache.CacheMode.REPLICATED;
+import static org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_SYNC;
+import static org.apache.ignite.testframework.GridTestUtils.getFieldValue;
+
+/**
+ *
+ */
+public class FreeListLazyInitializationTest extends GridCommonAbstractTest {
+/** */
+private static final TcpDiscoveryIpFinder IP_FINDER = new 
TcpDiscoveryVmIpFinder(true);
+
+/** {@inheritDoc} */
+@Override protected IgniteConfiguration getConfiguration(String gridName) 
throws Exception {
+IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+cfg.setConsistentId(gridName);
+
+DataStorageConfiguration memCfg = new DataStorageConfiguration()
+.setDefaultDataRegionConfiguration(
+new DataRegionConfiguration().setMaxSize(100L * 1024 * 
1024).setPersistenceEnabled(true))
+.setPageSize(1024)
+.setWalMode(WALMode.LOG_ONLY);
+
+cfg.setDataStorageConfiguration(memCfg);
+
+cfg.setBinaryConfiguration(new 
BinaryConfiguration().setCompactFooter(false));
+
+((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(IP_FINDER);
+
+CacheConfiguration ccfg = new CacheConfiguration(DEFAULT_CACHE_NAME);
+ccfg.setWriteSynchronizationMode(FULL_SYNC);
+ccfg.setAtomicityMode(TRANSACTIONAL);
+ccfg.setCacheMode(REPLICATED);
+
+cfg.setCacheConfiguration(ccfg);
+
+return cfg;
+}
+
+   

ignite git commit: ignite-9720

2018-10-22 Thread sboikov
Repository: ignite
Updated Branches:
  refs/heads/ignite-9720 c6b090511 -> 28a76b3bb


ignite-9720


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/28a76b3b
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/28a76b3b
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/28a76b3b

Branch: refs/heads/ignite-9720
Commit: 28a76b3bb60759f5d812e5333c1ab429b88b88e3
Parents: c6b0905
Author: sboikov 
Authored: Mon Oct 22 13:40:33 2018 +0300
Committer: sboikov 
Committed: Mon Oct 22 13:40:33 2018 +0300

--
 .../cache/persistence/GridCacheOffheapManager.java   | 2 +-
 .../processors/cache/persistence/LazyCacheFreeList.java  | 8 
 .../processors/cache/persistence/freelist/FreeList.java  | 1 -
 .../processors/cache/persistence/freelist/PagesList.java | 4 +++-
 4 files changed, 8 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/28a76b3b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
index 22249cd..909b31f 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
@@ -1368,7 +1368,7 @@ public class GridCacheOffheapManager extends 
IgniteCacheOffheapManagerImpl imple
 RootPage reuseRoot = metas.reuseListRoot;
 
 freeList = new LazyCacheFreeList() {
-@Override protected CacheFreeList createDelegate() 
throws IgniteCheckedException {
+@Override protected CacheFreeList 
createDelegate() throws IgniteCheckedException {
 return new PartitionCacheFreeList(grp, partId, 
reuseRoot);
 }
 };

http://git-wip-us.apache.org/repos/asf/ignite/blob/28a76b3b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/LazyCacheFreeList.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/LazyCacheFreeList.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/LazyCacheFreeList.java
index 1cbd841..f077c2e 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/LazyCacheFreeList.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/LazyCacheFreeList.java
@@ -36,7 +36,7 @@ public abstract class LazyCacheFreeList implements 
CacheFreeList {
 AtomicReferenceFieldUpdater.newUpdater(LazyCacheFreeList.class, 
CountDownLatch.class, "initLatch");
 
 /** */
-private volatile CacheFreeList delegate;
+private volatile CacheFreeList delegate;
 
 /** */
 private IgniteCheckedException initErr;
@@ -119,14 +119,14 @@ public abstract class LazyCacheFreeList implements 
CacheFreeList {
  * @return Cache free list.
  * @throws IgniteCheckedException If failed.
  */
-protected abstract CacheFreeList createDelegate() throws 
IgniteCheckedException;
+protected abstract CacheFreeList createDelegate() throws 
IgniteCheckedException;
 
 /**
  * @return Cache free list.
  * @throws IgniteCheckedException If failed to initialize free list.
  */
-private CacheFreeList initDelegateIfNeeded() throws IgniteCheckedException 
{
-CacheFreeList delegate = this.delegate;
+private CacheFreeList initDelegateIfNeeded() throws 
IgniteCheckedException {
+CacheFreeList delegate = this.delegate;
 
 if (delegate != null)
 return delegate;

http://git-wip-us.apache.org/repos/asf/ignite/blob/28a76b3b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/freelist/FreeList.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/freelist/FreeList.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/freelist/FreeList.java
index 29e8400..284ca0a 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/freelist/FreeList.java
+++ 

ignite git commit: ignite-9720

2018-10-22 Thread sboikov
Repository: ignite
Updated Branches:
  refs/heads/ignite-9720 057f4fdc7 -> c6b090511


ignite-9720


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/c6b09051
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/c6b09051
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/c6b09051

Branch: refs/heads/ignite-9720
Commit: c6b0905111563473bcd4aabf53a1e620f62af190
Parents: 057f4fd
Author: sboikov 
Authored: Mon Oct 22 13:33:01 2018 +0300
Committer: sboikov 
Committed: Mon Oct 22 13:33:01 2018 +0300

--
 .../db/wal/WalRecoveryTxLogicalRecordsTest.java  | 11 +--
 1 file changed, 9 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/c6b09051/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalRecoveryTxLogicalRecordsTest.java
--
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalRecoveryTxLogicalRecordsTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalRecoveryTxLogicalRecordsTest.java
index 261167a..a4ab456 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalRecoveryTxLogicalRecordsTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/WalRecoveryTxLogicalRecordsTest.java
@@ -52,10 +52,11 @@ import 
org.apache.ignite.internal.processors.cache.IgniteRebalanceIterator;
 import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.GridDhtLocalPartition;
 import 
org.apache.ignite.internal.processors.cache.distributed.dht.preloader.IgniteDhtDemandedPartitionsMap;
 import org.apache.ignite.internal.processors.cache.persistence.CacheDataRow;
+import org.apache.ignite.internal.processors.cache.persistence.CacheFreeList;
 import 
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager;
+import 
org.apache.ignite.internal.processors.cache.persistence.LazyCacheFreeList;
 import 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager;
 import 
org.apache.ignite.internal.processors.cache.persistence.freelist.AbstractFreeList;
-import 
org.apache.ignite.internal.processors.cache.persistence.freelist.CacheFreeListImpl;
 import 
org.apache.ignite.internal.processors.cache.persistence.freelist.PagesList;
 import 
org.apache.ignite.internal.processors.cache.persistence.tree.reuse.ReuseListImpl;
 import org.apache.ignite.internal.util.typedef.F;
@@ -871,7 +872,13 @@ public class WalRecoveryTxLogicalRecordsTest extends 
GridCommonAbstractTest {
 boolean foundTails = false;
 
 for (GridDhtLocalPartition part : parts) {
-CacheFreeListImpl freeList = 
GridTestUtils.getFieldValue(part.dataStore(), "freeList");
+CacheFreeList freeList = 
GridTestUtils.getFieldValue(part.dataStore(), "freeList");
+
+if (freeList instanceof LazyCacheFreeList) {
+freeList.freeSpace(); // Force initialization.
+
+freeList = GridTestUtils.getFieldValue(freeList, 
LazyCacheFreeList.class, "delegate");
+}
 
 if (freeList == null)
 // Lazy store.



ignite git commit: ignite-9720

2018-10-19 Thread sboikov
Repository: ignite
Updated Branches:
  refs/heads/ignite-9720 [created] 057f4fdc7


ignite-9720


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/057f4fdc
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/057f4fdc
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/057f4fdc

Branch: refs/heads/ignite-9720
Commit: 057f4fdc7ede35779e98b09a7e9c7a7844f3d70e
Parents: 82d2efe
Author: sboikov 
Authored: Fri Oct 19 15:39:22 2018 +0300
Committer: sboikov 
Committed: Fri Oct 19 15:39:22 2018 +0300

--
 .../cache/persistence/CacheFreeList.java|  32 
 .../persistence/GridCacheOffheapManager.java|  64 +--
 .../IgniteCacheDatabaseSharedManager.java   |  26 +--
 .../cache/persistence/LazyCacheFreeList.java| 168 +++
 .../persistence/freelist/AbstractFreeList.java  |   9 +-
 .../cache/persistence/freelist/FreeList.java|  13 ++
 .../cache/persistence/freelist/PagesList.java   |   4 +-
 7 files changed, 276 insertions(+), 40 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/ignite/blob/057f4fdc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/CacheFreeList.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/CacheFreeList.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/CacheFreeList.java
new file mode 100644
index 000..2d79cd6
--- /dev/null
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/CacheFreeList.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache.persistence;
+
+import org.apache.ignite.IgniteCheckedException;
+import 
org.apache.ignite.internal.processors.cache.persistence.freelist.FreeList;
+import 
org.apache.ignite.internal.processors.cache.persistence.tree.reuse.ReuseList;
+
+/**
+ *
+ */
+public interface CacheFreeList extends FreeList, 
ReuseList {
+/**
+ * @throws IgniteCheckedException If failed.
+ */
+public void saveMetadata() throws IgniteCheckedException;
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/057f4fdc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
--
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
index cb682f6..22249cd 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
@@ -65,6 +65,7 @@ import 
org.apache.ignite.internal.processors.cache.distributed.dht.topology.Grid
 import org.apache.ignite.internal.processors.cache.mvcc.MvccSnapshot;
 import org.apache.ignite.internal.processors.cache.mvcc.MvccVersion;
 import 
org.apache.ignite.internal.processors.cache.persistence.freelist.CacheFreeListImpl;
+import 
org.apache.ignite.internal.processors.cache.persistence.freelist.FreeList;
 import 
org.apache.ignite.internal.processors.cache.persistence.migration.UpgradePendingTreeToPerPartitionTask;
 import 
org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryEx;
 import 
org.apache.ignite.internal.processors.cache.persistence.partstate.GroupPartitionId;
@@ -246,7 +247,7 @@ public class GridCacheOffheapManager extends 
IgniteCacheOffheapManagerImpl imple
 RowStore rowStore0 = store.rowStore();
 
 if (rowStore0 != null) {
-CacheFreeListImpl freeList = 
(CacheFreeListImpl)rowStore0.freeList();
+CacheFreeList freeList = (CacheFreeList)rowStore0.freeList();