You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2017/01/18 15:27:43 UTC

[7/9] ignite git commit: Merge remote-tracking branch 'remotes/origin/ignite-3477' into ignite-db-x-opt

http://git-wip-us.apache.org/repos/asf/ignite/blob/ae511af3/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java
index 102a696,3c5b158..95d68c2
--- a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java
@@@ -64,7 -65,7 +65,8 @@@ import org.apache.ignite.internal.proce
  import org.apache.ignite.internal.processors.task.GridTaskProcessor;
  import org.apache.ignite.internal.processors.timeout.GridTimeoutProcessor;
  import org.apache.ignite.internal.util.IgniteExceptionRegistry;
+ import org.apache.ignite.internal.util.StripedExecutor;
 +import org.apache.ignite.internal.util.InternalStatistics;
  import org.apache.ignite.internal.util.tostring.GridToStringExclude;
  import org.apache.ignite.plugin.PluginNotFoundException;
  import org.apache.ignite.plugin.PluginProvider;

http://git-wip-us.apache.org/repos/asf/ignite/blob/ae511af3/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java
index 29cff66,fae9d9a..c938c74
--- a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java
@@@ -81,7 -82,7 +82,8 @@@ import org.apache.ignite.internal.proce
  import org.apache.ignite.internal.processors.task.GridTaskProcessor;
  import org.apache.ignite.internal.processors.timeout.GridTimeoutProcessor;
  import org.apache.ignite.internal.util.IgniteExceptionRegistry;
+ import org.apache.ignite.internal.util.StripedExecutor;
 +import org.apache.ignite.internal.util.InternalStatistics;
  import org.apache.ignite.internal.util.spring.IgniteSpringHelper;
  import org.apache.ignite.internal.util.tostring.GridToStringExclude;
  import org.apache.ignite.internal.util.tostring.GridToStringInclude;

http://git-wip-us.apache.org/repos/asf/ignite/blob/ae511af3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentMapImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/ae511af3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
index e42d42b,3b128de..6acf794
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
@@@ -81,8 -81,8 +81,9 @@@ import org.apache.ignite.internal.proce
  import org.apache.ignite.internal.processors.cacheobject.IgniteCacheObjectProcessor;
  import org.apache.ignite.internal.processors.closure.GridClosureProcessor;
  import org.apache.ignite.internal.processors.plugin.CachePluginManager;
+ import org.apache.ignite.internal.processors.query.GridQueryProcessor;
  import org.apache.ignite.internal.processors.timeout.GridTimeoutProcessor;
 +import org.apache.ignite.internal.util.CacheStatistics;
  import org.apache.ignite.internal.util.F0;
  import org.apache.ignite.internal.util.lang.GridFunc;
  import org.apache.ignite.internal.util.tostring.GridToStringExclude;

http://git-wip-us.apache.org/repos/asf/ignite/blob/ae511af3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/ae511af3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index 3db8a74,57b0d84..ab01575
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@@ -1352,10 -1414,8 +1415,10 @@@ public class GridCacheProcessor extend
  
          storeMgr.initialize(cfgStore, sesHolders);
  
-         boolean affNode = CU.affinityNode(ctx.discovery().localNode(), cfg.getNodeFilter());
+         boolean affNode = cfg.getCacheMode() == LOCAL || CU.affinityNode(ctx.discovery().localNode(), cfg.getNodeFilter());
  
 +        CacheStatistics stats = ctx.stats().cache();
 +
          GridCacheContext<?, ?> cacheCtx = new GridCacheContext(
              ctx,
              sharedCtx,

http://git-wip-us.apache.org/repos/asf/ignite/blob/ae511af3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
index 2343bb9,63a5072..ca35b5d
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
@@@ -54,7 -59,7 +60,8 @@@ import org.apache.ignite.internal.util.
  import org.apache.ignite.internal.util.GridAtomicLong;
  import org.apache.ignite.internal.util.GridCloseableIteratorAdapter;
  import org.apache.ignite.internal.util.GridEmptyCloseableIterator;
 +import org.apache.ignite.internal.util.PutStatistic;
+ import org.apache.ignite.internal.util.GridSpinBusyLock;
  import org.apache.ignite.internal.util.lang.GridCloseableIterator;
  import org.apache.ignite.internal.util.lang.GridCursor;
  import org.apache.ignite.internal.util.lang.GridIterator;
@@@ -68,11 -73,8 +75,13 @@@ import org.jetbrains.annotations.Nullab
  
  import static org.apache.ignite.internal.pagemem.PageIdAllocator.FLAG_IDX;
  import static org.apache.ignite.internal.pagemem.PageIdAllocator.INDEX_PARTITION;
 +import static org.apache.ignite.internal.util.PutStatistic.Ops.FIND_ONE;
 +import static org.apache.ignite.internal.util.PutStatistic.Ops.IDX_UPDATE;
 +import static org.apache.ignite.internal.util.PutStatistic.Ops.STORE_ADD;
 +import static org.apache.ignite.internal.util.PutStatistic.Ops.STORE_RMV;
 +import static org.apache.ignite.internal.util.PutStatistic.Ops.TREE_PUT;
+ import static org.apache.ignite.internal.pagemem.PageIdUtils.itemId;
+ import static org.apache.ignite.internal.pagemem.PageIdUtils.pageId;
  
  /**
   *
@@@ -842,64 -892,47 +899,59 @@@ public class IgniteCacheOffheapManagerI
              key.valueBytes(cctx.cacheObjectContext());
              val.valueBytes(cctx.cacheObjectContext());
  
-             if (true) {
-                 cctx.stats().opStart(TREE_PUT);
- 
-                 data.put(key, dataRow);
+             if (!busyLock.enterBusy())
+                 throw new NodeStoppingException("Operation has been cancelled (node is stopping).");
  
-                 cctx.stats().opEnd(TREE_PUT);
+             try {
+                 rowStore.addRow(dataRow);
  
-                 return;
-             }
+                 assert dataRow.link() != 0 : dataRow;
  
-             rowStore.addRow(dataRow);
++                cctx.stats().opStart(TREE_PUT);
 +
-             assert dataRow.link() != 0 : dataRow;
+                 CacheDataRow old = dataTree.put(dataRow);
  
-             cctx.stats().opStart(TREE_PUT);
+                 if (old == null)
+                     storageSize.incrementAndGet();
  
-             DataRow old = dataTree.put(dataRow);
++                cctx.stats().opEnd(TREE_PUT);
 +
-             cctx.stats().opEnd(TREE_PUT);
+                 if (indexingEnabled) {
++                    cctx.stats().opStart(IDX_UPDATE);
 +
-             if (old == null)
-                 storageSize.incrementAndGet();
+                     GridCacheQueryManager qryMgr = cctx.queries();
  
-             if (indexingEnabled) {
-                 cctx.stats().opStart(IDX_UPDATE);
+                     assert qryMgr.enabled();
  
-                 GridCacheQueryManager qryMgr = cctx.queries();
+                     if (old != null)
+                         qryMgr.store(key, p, old.value(), old.version(), val, ver, expireTime, dataRow.link());
+                     else
+                         qryMgr.store(key, p, null, null, val, ver, expireTime, dataRow.link());
 +
-                 assert qryMgr.enabled();
++                    cctx.stats().opEnd(IDX_UPDATE);
+                 }
  
-                 if (old != null)
-                     qryMgr.store(key, p, old.value(), old.version(), val, ver, expireTime, dataRow.link());
-                 else
-                     qryMgr.store(key, p, null, null, val, ver, expireTime, dataRow.link());
+                 if (old != null) {
+                     assert old.link() != 0 : old;
  
-                 cctx.stats().opEnd(IDX_UPDATE);
-             }
+                     if (pendingEntries != null && old.expireTime() != 0)
+                         pendingEntries.remove(new PendingRow(old.expireTime(), old.link()));
  
-             if (old != null) {
-                 assert old.link() != 0 : old;
++                    CacheStatistics.opStart(PutStatistic.Ops.STORE_RMV);
 +
-                 if (pendingEntries != null && old.expireTime() != 0) {
-                     if (true)
-                         throw new IgniteCheckedException("Error");
+                     rowStore.removeRow(old.link());
 +
-                     pendingEntries.remove(new PendingRow(old.expireTime(), old.link()));
++                    CacheStatistics.opEnd(PutStatistic.Ops.STORE_RMV);
                  }
  
-                 CacheStatistics.opStart(PutStatistic.Ops.STORE_RMV);
- 
-                 rowStore.removeRow(old.link());
- 
-                 CacheStatistics.opEnd(PutStatistic.Ops.STORE_RMV);
+                 if (pendingEntries != null && expireTime != 0)
+                     pendingEntries.put(new PendingRow(expireTime, dataRow.link()));
  
+                 updateIgfsMetrics(key, (old != null ? old.value() : null), val);
+             }
+             finally {
+                 busyLock.leaveBusy();
              }
- 
-             if (pendingEntries != null && expireTime != 0)
-                 pendingEntries.put(new PendingRow(expireTime, dataRow.link()));
          }
  
          /** {@inheritDoc} */
@@@ -937,15 -980,7 +999,14 @@@
          /** {@inheritDoc} */
          @Override public CacheDataRow find(KeyCacheObject key)
              throws IgniteCheckedException {
 -            return dataTree.findOne(new SearchRow(key));
 +            cctx.stats().opStart(FIND_ONE);
 +
 +            try {
-                 return data.get(key);
-                 //return dataTree.findOne(new KeySearchRow(key.hashCode(), key, 0));
++                return dataTree.findOne(new SearchRow(key));
 +            }
 +            finally {
 +                cctx.stats().opEnd(FIND_ONE);
 +            }
          }
  
          /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/ae511af3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/ae511af3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/ae511af3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/CacheDataRowAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/ae511af3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/freelist/FreeListImpl.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/freelist/FreeListImpl.java
index 43c6a46,6c1b21b..f0abe74
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/freelist/FreeListImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/freelist/FreeListImpl.java
@@@ -83,25 -82,17 +84,25 @@@ public class FreeListImpl extends Pages
  
                  assert oldFreeSpace > 0 : oldFreeSpace;
  
 +                CacheStatistics.opStart(PutStatistic.Ops.STORE_ADD);
 +
                  // If the full row does not fit into this page write only a fragment.
-                 written = (written == 0 && oldFreeSpace >= rowSize) ? addRow(page, buf, io, row, rowSize):
-                     addRowFragment(page, buf, io, row, written, rowSize);
+                 written = (written == 0 && oldFreeSpace >= rowSize) ? addRow(page, pageAddr, io, row, rowSize):
+                     addRowFragment(page, pageAddr, io, row, written, rowSize);
  
 +                CacheStatistics.opEnd(PutStatistic.Ops.STORE_ADD);
 +
                  // Reread free space after update.
-                 int newFreeSpace = io.getFreeSpace(buf);
+                 int newFreeSpace = io.getFreeSpace(pageAddr);
  
                  if (newFreeSpace > MIN_PAGE_FREE_SPACE) {
 +                    CacheStatistics.opStart(PutStatistic.Ops.STORE_ADD_FREE_LIST_PUT);
 +
                      int bucket = bucket(newFreeSpace, false);
  
-                     put(null, page, buf, bucket);
+                     put(null, page, pageAddr, bucket);
 +
 +                    CacheStatistics.opEnd(PutStatistic.Ops.STORE_ADD_FREE_LIST_PUT);
                  }
  
                  // Avoid boxing with garbage generation for usual case.
@@@ -222,13 -208,9 +221,13 @@@
                      int oldBucket = bucket(oldFreeSpace, false);
  
                      if (oldBucket != newBucket) {
 +                        CacheStatistics.opStart(PutStatistic.Ops.STORE_RMV_FREE_LIST_PUT);
 +
                          // It is possible that page was concurrently taken for put, in this case put will handle bucket change.
-                         if (removeDataPage(page, buf, io, oldBucket))
-                             put(null, page, buf, newBucket);
+                         if (removeDataPage(page, pageAddr, io, oldBucket))
+                             put(null, page, pageAddr, newBucket);
 +
 +                        CacheStatistics.opEnd(PutStatistic.Ops.STORE_RMV_FREE_LIST_PUT);
                      }
                  }
                  else

http://git-wip-us.apache.org/repos/asf/ignite/blob/ae511af3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/io/DataPageIO.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/ae511af3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/ae511af3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
index ea3bd43,1f421c9..9be12f7
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicSingleUpdateFuture.java
@@@ -384,9 -377,11 +377,11 @@@ public class GridNearAtomicSingleUpdate
  
      /** {@inheritDoc} */
      @Override protected void mapOnTopology() {
 -        cache.topology().readLock();
 +        //cache.topology().readLock();
  
-         AffinityTopologyVersion topVer = null;
+         AffinityTopologyVersion topVer;
+ 
+         GridCacheVersion futVer;
  
          try {
              if (cache.topology().stopping()) {
@@@ -430,10 -427,11 +427,11 @@@
              }
          }
          finally {
 -            cache.topology().readUnlock();
 +            //cache.topology().readUnlock();
          }
  
-         map(topVer);
+         if (futVer != null)
+             map(topVer, futVer);
      }
  
      /** {@inheritDoc} */