Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-876 [created] f1edf0da1


#ignite-876: Update off-heap in off-heap tiered mode in innerSet.


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

Branch: refs/heads/ignite-876
Commit: f1edf0da148d548e927a2ab8d5f24aa64e53a16d
Parents: dc1317d
Author: ivasilinets <ivasilin...@gridgain.com>
Authored: Thu May 7 16:04:39 2015 +0300
Committer: ivasilinets <ivasilin...@gridgain.com>
Committed: Thu May 7 16:04:39 2015 +0300

----------------------------------------------------------------------
 .../internal/processors/cache/GridCacheMapEntry.java     | 11 +++++++++++
 1 file changed, 11 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f1edf0da/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 71858d1..b4649eb 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
@@ -1035,8 +1035,19 @@ public abstract class GridCacheMapEntry implements 
GridCacheEntryEx {
                     deletedUnlocked(false);
             }
 
+            boolean hadValPtr = valPtr != 0;
+
+            long oldValPtr = valPtr;
+
             update(val, expireTime, ttl, newVer);
 
+            if (hadValPtr && cctx.offheapTiered()) {
+                if (val != null)
+                    cctx.unsafeMemory().putOffHeap(oldValPtr, 
val.valueBytes(cctx.cacheObjectContext()), val.type());
+                else
+                    cctx.swap().removeOffheap(key);
+            }
+
             drReplicate(drType, val, newVer);
 
             recordNodeId(affNodeId, topVer);

Reply via email to