#ignite-51: GridCacheMapEntry.memorySize
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/121ce6ba Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/121ce6ba Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/121ce6ba Branch: refs/heads/ignite-user-req Commit: 121ce6ba642ab42a152f0e804de7fe9069bdb0e9 Parents: 814fae3 Author: ivasilinets <ivasilin...@gridgain.com> Authored: Thu Mar 5 11:41:32 2015 +0300 Committer: ivasilinets <ivasilin...@gridgain.com> Committed: Thu Mar 5 11:41:32 2015 +0300 ---------------------------------------------------------------------- .../processors/cache/GridCacheMapEntry.java | 59 +++++++------------- 1 file changed, 21 insertions(+), 38 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/121ce6ba/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 0caf1f9..92654e3 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 @@ -76,7 +76,7 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx { * </ul> */ // 7 * 8 /*references*/ + 2 * 8 /*long*/ + 1 * 4 /*int*/ + 1 * 1 /*byte*/ = 77 - private static final int SIZE_OVERHEAD = 77 /*entry*/ + 32 /* version */; + private static final int SIZE_OVERHEAD = 77 /*entry*/ + 32 /* version */ + 4 * 7 /* key + val */; /** Static logger to avoid re-creation. Made static for test purpose. */ protected static final AtomicReference<IgniteLogger> logRef = new AtomicReference<>(); @@ -276,43 +276,26 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx { /** {@inheritDoc} */ @Override public int memorySize() throws IgniteCheckedException { -// TODO IGNITE-51 -// byte[] kb; -// GridCacheValueBytes vb; -// -// CacheObject v; -// -// int extrasSize; -// -// synchronized (this) { -// kb = keyBytes; -// vb = valueBytesUnlocked(); -// -// v = val; -// -// extrasSize = extrasSize(); -// } -// -// if (kb == null || (vb.isNull() && v != null)) { -// if (kb == null) -// kb = CU.marshal(cctx.shared(), key); -// -// if (vb.isNull()) -// vb = (v != null && v instanceof byte[]) ? GridCacheValueBytes.plain(v) : -// GridCacheValueBytes.marshaled(CU.marshal(cctx.shared(), v)); -// -// synchronized (this) { -// if (keyBytes == null) -// keyBytes = kb; -// -// // If value didn't change. -// if (!isOffHeapValuesOnly() && valBytes == null && val == v && cctx.config().isStoreValueBytes()) -// valBytes = vb.isPlain() ? null : vb.get(); -// } -// } -// -// return SIZE_OVERHEAD + extrasSize + kb.length + (vb.isNull() ? 0 : vb.get().length); - return 0; + byte[] kb; + byte[] vb = null; + + int extrasSize; + + synchronized (this) { + key.prepareMarshal(cctx.cacheObjectContext()); + + kb = key.valueBytes(cctx.cacheObjectContext()); + + if (val != null) { + val.prepareMarshal(cctx.cacheObjectContext()); + + vb = val.valueBytes(cctx.cacheObjectContext()); + } + + extrasSize = extrasSize(); + } + + return SIZE_OVERHEAD + extrasSize + kb.length + (vb == null ? 1 : vb.length); } /** {@inheritDoc} */