Repository: ignite
Updated Branches:
  refs/heads/ignite-3477 7db65ddd1 -> f8c775339


ignite-gg-8.0.2.ea2 igfs test fix

(cherry picked from commit 9b40d0e)


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

Branch: refs/heads/ignite-3477
Commit: b721d73dfe4bc5c64a9de0d93119c482a7020d79
Parents: cb60e38
Author: Dmitriy Govorukhin <dgovoruk...@gridgain.com>
Authored: Tue Jan 17 20:44:15 2017 +0300
Committer: Dmitriy Govorukhin <dgovoruk...@gridgain.com>
Committed: Tue Jan 17 20:50:57 2017 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheMapEntry.java     | 31 -------------
 .../processors/cache/GridCacheProcessor.java    |  9 ++--
 .../cache/IgniteCacheOffheapManagerImpl.java    | 48 ++++++++++++++++++++
 .../query/h2/opt/GridH2TreeIndex.java           |  2 +-
 4 files changed, 55 insertions(+), 35 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/b721d73d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
index 9f01888..ee39ed9 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
@@ -205,40 +205,9 @@ public abstract class GridCacheMapEntry extends 
GridMetadataAwareAdapter impleme
     protected void value(@Nullable CacheObject val) {
         assert Thread.holdsLock(this);
 
-        // In case we deal with IGFS cache, count updated data
-        if (cctx.cache().isIgfsDataCache() &&
-            cctx.kernalContext().igfsHelper().isIgfsBlockKey(keyValue(false))) 
{
-            int newSize = valueLength0(val, null);
-            int oldSize = valueLength0(this.val, null);
-
-            int delta = newSize - oldSize;
-
-            if (delta != 0 && !cctx.isNear())
-                cctx.cache().onIgfsDataSizeChanged(delta);
-        }
-
         this.val = val;
     }
 
-    /**
-     * Isolated method to get length of IGFS block.
-     *
-     * @param val Value.
-     * @param valBytes Value bytes.
-     * @return Length of value.
-     */
-    private int valueLength0(@Nullable CacheObject val, @Nullable 
IgniteBiTuple<byte[], Byte> valBytes) {
-        byte[] bytes = val != null ? 
(byte[])val.value(cctx.cacheObjectContext(), false) : null;
-
-        if (bytes != null)
-            return bytes.length;
-
-        if (valBytes == null)
-            return 0;
-
-        return valBytes.get1().length - (((valBytes.get2() == 
CacheObject.TYPE_BYTE_ARR) ? 0 : 6));
-    }
-
     /** {@inheritDoc} */
     @Override public int memorySize() throws IgniteCheckedException {
         byte[] kb;

http://git-wip-us.apache.org/repos/asf/ignite/blob/b721d73d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --git 
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
index be22aed..57b0d84 100644
--- 
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
@@ -2037,9 +2037,12 @@ public class GridCacheProcessor extends 
GridProcessorAdapter {
 
                 if (desc == null)
                     continue;
-                // requestId must be null because on different node will be 
different byte [] and we get duplicate discovery data
-                // see TcpDiscoveryNodeAddedMessage#addDiscoveryData 
'Arrays.equals(curData, discoDataEntry.getValue())'
-                DynamicCacheChangeRequest req = new 
DynamicCacheChangeRequest(null, cache.name(), null);
+
+                // RequestId must be null because on different node will be 
different byte [] and
+                // we get duplicate discovery data, for more details see
+                // TcpDiscoveryNodeAddedMessage#addDiscoveryData.
+                DynamicCacheChangeRequest req = new DynamicCacheChangeRequest(
+                    null, cache.name(), null);
 
                 req.startCacheConfiguration(desc.cacheConfiguration());
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/b721d73d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java
----------------------------------------------------------------------
diff --git 
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
index 76450fb..6aea247 100644
--- 
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
@@ -921,6 +921,8 @@ public class IgniteCacheOffheapManagerImpl extends 
GridCacheManagerAdapter imple
 
                 if (pendingEntries != null && expireTime != 0)
                     pendingEntries.put(new PendingRow(expireTime, 
dataRow.link()));
+
+                updateIgfsMetrics(key, (old != null ? old.value() : null), 
val);
             }
             finally {
                 busyLock.leaveBusy();
@@ -961,6 +963,8 @@ public class IgniteCacheOffheapManagerImpl extends 
GridCacheManagerAdapter imple
 
                 if (dataRow != null)
                     rowStore.removeRow(dataRow.link());
+
+                updateIgfsMetrics(key, (dataRow != null ? dataRow.value() : 
null), null);
             }
             finally {
                 busyLock.leaveBusy();
@@ -1029,6 +1033,50 @@ public class IgniteCacheOffheapManagerImpl extends 
GridCacheManagerAdapter imple
             storageSize.set(size);
             cntr.set(updCntr);
         }
+
+        /**
+         * @param key Key.
+         * @param oldVal Old value.
+         * @param newVal New value.
+         */
+        private void updateIgfsMetrics(
+            KeyCacheObject key,
+            CacheObject oldVal,
+            CacheObject newVal
+            ) throws IgniteCheckedException {
+            // In case we deal with IGFS cache, count updated data
+            if (cctx.cache().isIgfsDataCache() &&
+                !cctx.isNear() &&
+                cctx.kernalContext()
+                    .igfsHelper()
+                    .isIgfsBlockKey(key.value(cctx.cacheObjectContext(), 
false))) {
+                int oldSize = valueLength(oldVal);
+                int newSize = valueLength(newVal);
+
+                int delta = newSize - oldSize;
+
+                if (delta != 0)
+                    cctx.cache().onIgfsDataSizeChanged(delta);
+            }
+        }
+
+        /**
+         * Isolated method to get length of IGFS block.
+         *
+         * @param val Value.
+         * @return Length of value.
+         */
+        private int valueLength(@Nullable CacheObject val) {
+            if (val == null)
+                return 0;
+
+            byte[] bytes = val.value(cctx.cacheObjectContext(), false);
+
+            if (bytes != null)
+                return bytes.length;
+            else
+                return 0;
+        }
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/b721d73d/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TreeIndex.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TreeIndex.java
 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TreeIndex.java
index 0f93f52..729309a 100644
--- 
a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TreeIndex.java
+++ 
b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2TreeIndex.java
@@ -521,7 +521,7 @@ public class GridH2TreeIndex extends GridH2IndexBase 
implements Comparator<GridS
             else if (lower == null)
                 rows = tree.headMap(upper).values();
             else
-                rows = tree.subMap(lower, true, upper, true).values();
+                rows = tree.subMap(lower, false, upper, false).values();
 
             return new GridCursorIteratorWrapper<>(rows.iterator());
         }

Reply via email to