Repository: ignite Updated Branches: refs/heads/ignite-5075 9662712fc -> f0da180b4
ignite-5075 Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/f0da180b Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/f0da180b Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/f0da180b Branch: refs/heads/ignite-5075 Commit: f0da180b4a8009389e3ec8aa5d541abc2d2c1eda Parents: 9662712 Author: sboikov <[email protected]> Authored: Mon May 15 14:26:41 2017 +0300 Committer: sboikov <[email protected]> Committed: Mon May 15 14:26:41 2017 +0300 ---------------------------------------------------------------------- .../processors/cache/GridCacheAdapter.java | 15 +------ .../cache/GridCacheConcurrentMap.java | 2 +- .../cache/GridCacheConcurrentMapImpl.java | 44 ++++++++++++++------ .../cache/GridCacheLocalConcurrentMap.java | 18 ++++---- .../GridDistributedCacheAdapter.java | 5 +-- .../distributed/dht/GridDhtCacheAdapter.java | 2 - .../distributed/dht/GridDhtLocalPartition.java | 3 +- .../distributed/near/GridNearCacheAdapter.java | 13 +++++- .../processors/cache/local/GridLocalCache.java | 11 ++++- 9 files changed, 66 insertions(+), 47 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/f0da180b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java index 8652224..8e8e015 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java @@ -302,15 +302,6 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V */ @SuppressWarnings("OverriddenMethodCallDuringObjectConstruction") protected GridCacheAdapter(GridCacheContext<K, V> ctx) { - this(ctx, DFLT_START_CACHE_SIZE); - } - - /** - * @param ctx Cache context. - * @param startSize Start size. - */ - @SuppressWarnings("OverriddenMethodCallDuringObjectConstruction") - protected GridCacheAdapter(GridCacheContext<K, V> ctx, int startSize) { this(ctx, null); } @@ -559,11 +550,7 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V * * @throws IgniteCheckedException If start failed. */ - public void start() throws IgniteCheckedException { - // TODO: IGNITE-5075: make start abstract? - if (map == null) - map = new GridCacheLocalConcurrentMap(entryFactory(), DFLT_START_CACHE_SIZE); - } + public abstract void start() throws IgniteCheckedException; /** * Startup info. http://git-wip-us.apache.org/repos/asf/ignite/blob/f0da180b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentMap.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentMap.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentMap.java index 090e985..fb3757f 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentMap.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentMap.java @@ -27,7 +27,7 @@ import org.jetbrains.annotations.Nullable; public interface GridCacheConcurrentMap { /** * Returns the entry associated with the specified key in the - * HashMap. Returns null if the HashMap contains no mapping + * HashMap. Returns null if the HashMap contains no mapping * for this key. * * @param key Key. http://git-wip-us.apache.org/repos/asf/ignite/blob/f0da180b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentMapImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentMapImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentMapImpl.java index 43d5342..3885b75 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentMapImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentMapImpl.java @@ -43,6 +43,9 @@ public abstract class GridCacheConcurrentMapImpl implements GridCacheConcurrentM /** Default concurrency level. */ private static final int DFLT_CONCUR_LEVEL = Runtime.getRuntime().availableProcessors() * 2; + /** */ + private final CacheGroupInfrastructure grp; + /** Internal map. */ private final ConcurrentMap<KeyCacheObject, GridCacheMapEntry> map; @@ -54,14 +57,14 @@ public abstract class GridCacheConcurrentMapImpl implements GridCacheConcurrentM * capacity. * * @param factory Entry factory. - * @param initialCapacity the initial capacity. The implementation + * @param initCap the initial capacity. The implementation * performs internal sizing to accommodate this many elements. * @throws IllegalArgumentException if the initial capacity is * negative. */ - public GridCacheConcurrentMapImpl(GridCacheMapEntryFactory factory, int initialCapacity) { - this(factory, initialCapacity, DFLT_LOAD_FACTOR, DFLT_CONCUR_LEVEL); + public GridCacheConcurrentMapImpl(CacheGroupInfrastructure grp, GridCacheMapEntryFactory factory, int initCap) { + this(grp, factory, initCap, DFLT_LOAD_FACTOR, DFLT_CONCUR_LEVEL); } /** @@ -69,7 +72,7 @@ public abstract class GridCacheConcurrentMapImpl implements GridCacheConcurrentM * capacity, load factor and concurrency level. * * @param factory Entry factory. - * @param initialCapacity the initial capacity. The implementation + * @param initCap the initial capacity. The implementation * performs internal sizing to accommodate this many elements. * @param loadFactor the load factor threshold, used to control resizing. * Resizing may be performed when the average number of elements per @@ -81,15 +84,17 @@ public abstract class GridCacheConcurrentMapImpl implements GridCacheConcurrentM * negative or the load factor or concurrencyLevel are * non-positive. */ - public GridCacheConcurrentMapImpl( + private GridCacheConcurrentMapImpl( + CacheGroupInfrastructure grp, GridCacheMapEntryFactory factory, - int initialCapacity, + int initCap, float loadFactor, int concurrencyLevel ) { + this.grp = grp; this.factory = factory; - map = new ConcurrentHashMap8<>(initialCapacity, loadFactor, concurrencyLevel); + map = new ConcurrentHashMap8<>(initCap, loadFactor, concurrencyLevel); } /** {@inheritDoc} */ @@ -264,15 +269,28 @@ public abstract class GridCacheConcurrentMapImpl implements GridCacheConcurrentM /** {@inheritDoc} */ @Override public boolean removeEntry(final GridCacheEntryEx entry) { - boolean removed = map.remove(entry.key(), entry); + boolean rmv = map.remove(entry.key(), entry); - if (removed) { + if (rmv) { GridCacheContext ctx = entry.context(); - if (ctx.events().isRecordable(EVT_CACHE_ENTRY_DESTROYED)) + if (ctx.events().isRecordable(EVT_CACHE_ENTRY_DESTROYED)) { // Event notification. - ctx.events().addEvent(entry.partition(), entry.key(), ctx.localNodeId(), (IgniteUuid)null, null, - EVT_CACHE_ENTRY_DESTROYED, null, false, null, false, null, null, null, false); + ctx.events().addEvent(entry.partition(), + entry.key(), + ctx.localNodeId(), + (IgniteUuid)null, + null, + EVT_CACHE_ENTRY_DESTROYED, + null, + false, + null, + false, + null, + null, + null, + false); + } synchronized (entry) { if (!entry.deleted()) @@ -280,7 +298,7 @@ public abstract class GridCacheConcurrentMapImpl implements GridCacheConcurrentM } } - return removed; + return rmv; } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/f0da180b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheLocalConcurrentMap.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheLocalConcurrentMap.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheLocalConcurrentMap.java index 50488bd..007df38 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheLocalConcurrentMap.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheLocalConcurrentMap.java @@ -27,15 +27,15 @@ public class GridCacheLocalConcurrentMap extends GridCacheConcurrentMapImpl { /** */ private final AtomicInteger pubSize = new AtomicInteger(); - public GridCacheLocalConcurrentMap(GridCacheMapEntryFactory factory, int initialCapacity) { - super(factory, initialCapacity); - } - - public GridCacheLocalConcurrentMap(GridCacheMapEntryFactory factory, - int initialCapacity, - float loadFactor, - int concurrencyLevel) { - super(factory, initialCapacity, loadFactor, concurrencyLevel); + /** + * @param grp Cache group. + * @param factory Entry factory. + * @param initCap Initial capacity. + */ + public GridCacheLocalConcurrentMap(CacheGroupInfrastructure grp, + GridCacheMapEntryFactory factory, + int initCap) { + super(grp, factory, initCap); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/f0da180b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheAdapter.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheAdapter.java index 5a72fb8..ce11b85 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheAdapter.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheAdapter.java @@ -79,10 +79,9 @@ public abstract class GridDistributedCacheAdapter<K, V> extends GridCacheAdapter /** * @param ctx Cache registry. - * @param startSize Start size. */ - protected GridDistributedCacheAdapter(GridCacheContext<K, V> ctx, int startSize) { - super(ctx, startSize); + protected GridDistributedCacheAdapter(GridCacheContext<K, V> ctx) { + super(ctx); } /** http://git-wip-us.apache.org/repos/asf/ignite/blob/f0da180b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java index 84b0156..d7b3b5d 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java @@ -169,8 +169,6 @@ public abstract class GridDhtCacheAdapter<K, V> extends GridDistributedCacheAdap /** {@inheritDoc} */ @Override public void start() throws IgniteCheckedException { - super.start(); - ctx.io().addHandler(false, ctx.cacheId(), GridCacheTtlUpdateRequest.class, new CI2<UUID, GridCacheTtlUpdateRequest>() { @Override public void apply(UUID nodeId, GridCacheTtlUpdateRequest req) { processTtlUpdateRequest(req); http://git-wip-us.apache.org/repos/asf/ignite/blob/f0da180b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLocalPartition.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLocalPartition.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLocalPartition.java index a4537a1..8a76245 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLocalPartition.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLocalPartition.java @@ -49,7 +49,6 @@ import org.apache.ignite.internal.processors.cache.database.CacheDataRow; import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPreloader; import org.apache.ignite.internal.processors.cache.extras.GridCacheObsoleteEntryExtras; import org.apache.ignite.internal.processors.cache.version.GridCacheVersion; -import org.apache.ignite.internal.processors.query.QueryUtils; import org.apache.ignite.internal.util.future.GridFutureAdapter; import org.apache.ignite.internal.util.lang.GridIterator; import org.apache.ignite.internal.util.tostring.GridToStringExclude; @@ -149,7 +148,7 @@ public class GridDhtLocalPartition extends GridCacheConcurrentMapImpl implements CacheGroupInfrastructure grp, int id, GridCacheMapEntryFactory entryFactory) { - super(entryFactory, Math.max(10, GridCacheAdapter.DFLT_START_CACHE_SIZE / grp.affinity().partitions())); + super(grp, entryFactory, Math.max(10, GridCacheAdapter.DFLT_START_CACHE_SIZE / grp.affinity().partitions())); this.id = id; this.ctx = ctx; http://git-wip-us.apache.org/repos/asf/ignite/blob/f0da180b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheAdapter.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheAdapter.java index 34b06f0..c165539 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheAdapter.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearCacheAdapter.java @@ -86,7 +86,17 @@ public abstract class GridNearCacheAdapter<K, V> extends GridDistributedCacheAda * @param ctx Context. */ protected GridNearCacheAdapter(GridCacheContext<K, V> ctx) { - super(ctx, ctx.config().getNearConfiguration().getNearStartSize()); + super(ctx); + } + + /** {@inheritDoc} */ + @Override public void start() throws IgniteCheckedException { + if (map == null) { + map = new GridCacheLocalConcurrentMap( + ctx.group(), + entryFactory(), + ctx.config().getNearConfiguration().getNearStartSize()); + } } /** {@inheritDoc} */ @@ -117,6 +127,7 @@ public abstract class GridNearCacheAdapter<K, V> extends GridDistributedCacheAda /** {@inheritDoc} */ @Override public void onReconnected() { map = new GridCacheLocalConcurrentMap( + ctx.group(), entryFactory(), ctx.config().getNearConfiguration().getNearStartSize()); } http://git-wip-us.apache.org/repos/asf/ignite/blob/f0da180b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/GridLocalCache.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/GridLocalCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/GridLocalCache.java index 1329993..a6adef4 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/GridLocalCache.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/GridLocalCache.java @@ -30,6 +30,7 @@ import org.apache.ignite.internal.processors.cache.GridCacheAdapter; import org.apache.ignite.internal.processors.cache.GridCacheContext; import org.apache.ignite.internal.processors.cache.GridCacheEntryEx; import org.apache.ignite.internal.processors.cache.GridCacheEntryRemovedException; +import org.apache.ignite.internal.processors.cache.GridCacheLocalConcurrentMap; import org.apache.ignite.internal.processors.cache.GridCacheMapEntry; import org.apache.ignite.internal.processors.cache.GridCacheMapEntryFactory; import org.apache.ignite.internal.processors.cache.GridCacheMvccCandidate; @@ -65,12 +66,18 @@ public class GridLocalCache<K, V> extends GridCacheAdapter<K, V> { * @param ctx Cache registry. */ public GridLocalCache(GridCacheContext<K, V> ctx) { - super(ctx, DFLT_START_CACHE_SIZE); + super(ctx); preldr = new GridCachePreloaderAdapter(ctx.group()); } /** {@inheritDoc} */ + @Override public void start() throws IgniteCheckedException { + if (map == null) + map = new GridCacheLocalConcurrentMap(ctx.group(), entryFactory(), DFLT_START_CACHE_SIZE); + } + + /** {@inheritDoc} */ @Override public boolean isLocal() { return true; } @@ -97,7 +104,7 @@ public class GridLocalCache<K, V> extends GridCacheAdapter<K, V> { * @param key Key of entry. * @return Cache entry. */ - @Nullable GridLocalCacheEntry peekExx(KeyCacheObject key) { + @Nullable private GridLocalCacheEntry peekExx(KeyCacheObject key) { return (GridLocalCacheEntry)peekEx(key); }
