Skip to content

Commit

Permalink
ignite-gg-11276 - produce less garbage
Browse files Browse the repository at this point in the history
  • Loading branch information
svladykin committed Aug 5, 2016
1 parent 6257bce commit 8994e8d
Show file tree
Hide file tree
Showing 7 changed files with 190 additions and 151 deletions.
Expand Up @@ -39,6 +39,7 @@
import org.apache.ignite.internal.pagemem.wal.record.DataEntry; import org.apache.ignite.internal.pagemem.wal.record.DataEntry;
import org.apache.ignite.internal.pagemem.wal.record.DataRecord; import org.apache.ignite.internal.pagemem.wal.record.DataRecord;
import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
import org.apache.ignite.internal.processors.cache.database.CacheDataRow;
import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry; import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheEntry;
import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLocalPartition; import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLocalPartition;
import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicUpdateFuture; import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicUpdateFuture;
Expand Down Expand Up @@ -399,14 +400,14 @@ protected GridDhtLocalPartition localPartition() {
checkObsolete(); checkObsolete();


if (isStartVersion() && ((flags & IS_UNSWAPPED_MASK) == 0)) { if (isStartVersion() && ((flags & IS_UNSWAPPED_MASK) == 0)) {
IgniteBiTuple<CacheObject, GridCacheVersion> read = cctx.offheap().read(this); CacheDataRow read = cctx.offheap().read(this);


flags |= IS_UNSWAPPED_MASK; flags |= IS_UNSWAPPED_MASK;


if (read != null) { if (read != null) {
CacheObject val = read.get1(); CacheObject val = read.value();


update(val, 0, 0, read.get2(), false); update(val, 0, 0, read.version(), false);


return val; return val;
} }
Expand Down Expand Up @@ -3572,10 +3573,10 @@ private CacheObject saveOldValueUnlocked(boolean qryOnly) throws IgniteCheckedEx
CacheObject val = this.val; CacheObject val = this.val;


if (val == null && isStartVersion()) { if (val == null && isStartVersion()) {
IgniteBiTuple<CacheObject, GridCacheVersion> t = detached() || isNear() ? null : cctx.offheap().read(this); CacheDataRow row = detached() || isNear() ? null : cctx.offheap().read(this);


if (t != null) if (row != null)
val = t.get1(); val = row.value();
} }


return val; return val;
Expand Down
Expand Up @@ -29,7 +29,6 @@
import org.apache.ignite.internal.util.lang.GridCloseableIterator; import org.apache.ignite.internal.util.lang.GridCloseableIterator;
import org.apache.ignite.internal.util.lang.GridCursor; import org.apache.ignite.internal.util.lang.GridCursor;
import org.apache.ignite.internal.util.lang.GridIterator; import org.apache.ignite.internal.util.lang.GridIterator;
import org.apache.ignite.lang.IgniteBiTuple;


/** /**
* *
Expand Down Expand Up @@ -72,7 +71,7 @@ public interface IgniteCacheOffheapManager extends GridCacheManager {
* @return Value tuple, if available. * @return Value tuple, if available.
* @throws IgniteCheckedException If failed. * @throws IgniteCheckedException If failed.
*/ */
public IgniteBiTuple<CacheObject, GridCacheVersion> read(GridCacheMapEntry entry) throws IgniteCheckedException; public CacheDataRow read(GridCacheMapEntry entry) throws IgniteCheckedException;


/** /**
* @param p Partition. * @param p Partition.
Expand Down Expand Up @@ -225,7 +224,7 @@ public void remove(KeyCacheObject key,
* @return Value/version tuple. * @return Value/version tuple.
* @throws IgniteCheckedException If failed. * @throws IgniteCheckedException If failed.
*/ */
public IgniteBiTuple<CacheObject, GridCacheVersion> find(KeyCacheObject key) throws IgniteCheckedException; public CacheDataRow find(KeyCacheObject key) throws IgniteCheckedException;


/** /**
* @return Data cursor. * @return Data cursor.
Expand Down
Expand Up @@ -56,9 +56,7 @@
import org.apache.ignite.internal.util.lang.GridCursor; import org.apache.ignite.internal.util.lang.GridCursor;
import org.apache.ignite.internal.util.lang.GridIterator; import org.apache.ignite.internal.util.lang.GridIterator;
import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteBiTuple;
import org.apache.ignite.lang.IgniteClosure; import org.apache.ignite.lang.IgniteClosure;
import org.apache.ignite.lang.IgnitePredicate; import org.apache.ignite.lang.IgnitePredicate;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
Expand Down Expand Up @@ -327,21 +325,13 @@ private Iterator<CacheDataStore> cacheData(boolean primary, boolean backup, Affi


/** {@inheritDoc} */ /** {@inheritDoc} */
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Override @Nullable public IgniteBiTuple<CacheObject, GridCacheVersion> read(GridCacheMapEntry entry) @Override @Nullable public CacheDataRow read(GridCacheMapEntry entry)
throws IgniteCheckedException { throws IgniteCheckedException {
try { KeyCacheObject key = entry.key();
KeyCacheObject key = entry.key();


assert cctx.isLocal() || entry.localPartition() != null : entry; assert cctx.isLocal() || entry.localPartition() != null : entry;


return dataStore(entry.localPartition()).find(key); return dataStore(entry.localPartition()).find(key);
}
catch (IgniteCheckedException e) {
throw e;
}
catch (Exception e) {
throw new IgniteCheckedException("Failed to read entry: " + entry.key(), e);
}
} }


/** {@inheritDoc} */ /** {@inheritDoc} */
Expand Down Expand Up @@ -718,11 +708,9 @@ private CacheDataStoreImpl(
} }


/** {@inheritDoc} */ /** {@inheritDoc} */
@Override public IgniteBiTuple<CacheObject, GridCacheVersion> find(KeyCacheObject key) @Override public CacheDataRow find(KeyCacheObject key)
throws IgniteCheckedException { throws IgniteCheckedException {
DataRow dataRow = dataTree.findOne(new KeySearchRow(key.hashCode(), key, 0)); return dataTree.findOne(new KeySearchRow(key.hashCode(), key, 0));

return dataRow != null ? F.t(dataRow.value(), dataRow.version()) : null;
} }


/** {@inheritDoc} */ /** {@inheritDoc} */
Expand Down Expand Up @@ -769,7 +757,7 @@ protected final void initData(boolean keyOnly) {
assert link() != 0; assert link() != 0;


try { try {
assemble(cctx, keyOnly); initFromLink(cctx, keyOnly);
} }
catch (IgniteCheckedException e) { catch (IgniteCheckedException e) {
throw new IgniteException(e.getMessage(), e); throw new IgniteException(e.getMessage(), e);
Expand All @@ -784,11 +772,6 @@ public KeyCacheObject key() {


return key; return key;
} }

/** {@inheritDoc} */
public String toString() {
return S.toString(KeySearchRow.class, this);
}
} }


/** /**
Expand Down Expand Up @@ -835,11 +818,6 @@ private class DataRow extends KeySearchRow {
@Override public void link(long link) { @Override public void link(long link) {
this.link = link; this.link = link;
} }

/** {@inheritDoc} */
public String toString() {
return S.toString(DataRow.class, this);
}
} }


/** /**
Expand Down

0 comments on commit 8994e8d

Please sign in to comment.