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);