IGNITE-4915: Removed IgniteCache.randomEntry() method.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/0a2dd92f Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/0a2dd92f Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/0a2dd92f Branch: refs/heads/ignite-4986 Commit: 0a2dd92f87e99da43d0fc6efd0c0f6c2e994be0e Parents: 7d90c06 Author: tledkov-gridgain <[email protected]> Authored: Fri Apr 14 15:38:19 2017 +0300 Committer: devozerov <[email protected]> Committed: Fri Apr 14 15:38:19 2017 +0300 ---------------------------------------------------------------------- .../java/org/apache/ignite/IgniteCache.java | 13 -- .../org/apache/ignite/cache/CacheEntry.java | 1 - .../processors/cache/GridCacheAdapter.java | 20 --- .../processors/cache/IgniteCacheProxy.java | 21 --- .../distributed/near/GridNearCacheAdapter.java | 6 - .../cache/GridCacheConcurrentMapTest.java | 138 ------------------- .../GridCachePreloadingEvictionsSelfTest.java | 3 +- ...acheEntrySetIterationPreloadingSelfTest.java | 6 +- .../CacheVersionedEntryAbstractTest.java | 11 -- .../multijvm/IgniteCacheProcessProxy.java | 5 - 10 files changed, 5 insertions(+), 219 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/0a2dd92f/modules/core/src/main/java/org/apache/ignite/IgniteCache.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteCache.java b/modules/core/src/main/java/org/apache/ignite/IgniteCache.java index 42ece62..97bb6b0 100644 --- a/modules/core/src/main/java/org/apache/ignite/IgniteCache.java +++ b/modules/core/src/main/java/org/apache/ignite/IgniteCache.java @@ -106,19 +106,6 @@ public interface IgniteCache<K, V> extends javax.cache.Cache<K, V>, IgniteAsyncS @Override public <C extends Configuration<K, V>> C getConfiguration(Class<C> clazz); /** - * Gets a random entry out of cache. In the worst cache scenario this method - * has complexity of <pre>O(S * N/64)</pre> where {@code N} is the size of internal hash - * table and {@code S} is the number of hash table buckets to sample, which is {@code 5} - * by default. However, if the table is pretty dense, with density factor of {@code N/64}, - * which is true for near fully populated caches, this method will generally perform significantly - * faster with complexity of O(S) where {@code S = 5}. - * - * @return Random entry, or {@code null} if cache is empty. - */ - @Deprecated - public Entry<K, V> randomEntry(); - - /** * Returns cache with the specified expired policy set. This policy will be used for each operation * invoked on the returned cache. * <p> http://git-wip-us.apache.org/repos/asf/ignite/blob/0a2dd92f/modules/core/src/main/java/org/apache/ignite/cache/CacheEntry.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/cache/CacheEntry.java b/modules/core/src/main/java/org/apache/ignite/cache/CacheEntry.java index 19585a3..6284f5b 100644 --- a/modules/core/src/main/java/org/apache/ignite/cache/CacheEntry.java +++ b/modules/core/src/main/java/org/apache/ignite/cache/CacheEntry.java @@ -33,7 +33,6 @@ import org.apache.ignite.IgniteCache; * <li>{@link javax.cache.Cache#invoke(Object, EntryProcessor, Object...)}</li> * <li>{@link javax.cache.Cache#invokeAll(Set, EntryProcessor, Object...)}</li> * <li>invoke and invokeAll methods of {@link IgniteCache}</li> - * <li>{@link IgniteCache#randomEntry()}</li> * </ul> * <p> * To get an instance of {@code CacheEntry} directly use {@link IgniteCache#getEntry(Object)} or http://git-wip-us.apache.org/repos/asf/ignite/blob/0a2dd92f/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 d791b7c..b9fa6c9 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 @@ -3695,26 +3695,6 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V return fut; } - /** - * @return Random cache entry. - */ - @Deprecated - @Nullable public Cache.Entry<K, V> randomEntry() { - GridCloseableIterator<Cache.Entry<K, V>> it; - - try { - it = ctx.offheap().entriesIterator(true, true, ctx.affinity().affinityTopologyVersion(), ctx.keepBinary()); - } - catch (IgniteCheckedException e) { - throw CU.convertToCacheException(e); - } - - if (it.hasNext()) - return it.next(); - - return null; - } - /** {@inheritDoc} */ @Override public int size(CachePeekMode[] peekModes) throws IgniteCheckedException { if (isLocal()) http://git-wip-us.apache.org/repos/asf/ignite/blob/0a2dd92f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java index cd53e41..14edcac 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java @@ -61,7 +61,6 @@ import org.apache.ignite.cache.query.TextQuery; import org.apache.ignite.cluster.ClusterGroup; import org.apache.ignite.configuration.CacheConfiguration; import org.apache.ignite.internal.AsyncSupportAdapter; -import org.apache.ignite.internal.GridKernalContext; import org.apache.ignite.internal.IgniteEx; import org.apache.ignite.internal.IgniteInternalFuture; import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; @@ -289,26 +288,6 @@ public class IgniteCacheProxy<K, V> extends AsyncSupportAdapter<IgniteCache<K, V } /** {@inheritDoc} */ - @SuppressWarnings("deprecation") - @Nullable @Override public Cache.Entry<K, V> randomEntry() { - GridKernalContext kctx = ctx.kernalContext(); - - if (kctx.isDaemon() || kctx.clientNode()) - throw new UnsupportedOperationException("Not applicable for daemon or client node."); - - GridCacheGateway<K, V> gate = this.gate; - - CacheOperationContext prev = onEnter(gate, opCtx); - - try { - return ctx.cache().randomEntry(); - } - finally { - onLeave(gate, prev); - } - } - - /** {@inheritDoc} */ @Override public IgniteCache<K, V> withExpiryPolicy(ExpiryPolicy plc) { GridCacheGateway<K, V> gate = this.gate; http://git-wip-us.apache.org/repos/asf/ignite/blob/0a2dd92f/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 0d62985..f4ba043 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 @@ -39,7 +39,6 @@ import org.apache.ignite.internal.processors.cache.CacheEntryPredicate; import org.apache.ignite.internal.processors.cache.CacheEntryPredicateAdapter; import org.apache.ignite.internal.processors.cache.CacheObject; import org.apache.ignite.internal.processors.cache.GridCacheClearAllRunnable; -import org.apache.ignite.internal.processors.cache.GridCacheConcurrentMapImpl; import org.apache.ignite.internal.processors.cache.GridCacheContext; import org.apache.ignite.internal.processors.cache.GridCacheEntryEx; import org.apache.ignite.internal.processors.cache.GridCacheEntryRemovedException; @@ -384,11 +383,6 @@ public abstract class GridNearCacheAdapter<K, V> extends GridDistributedCacheAda } /** {@inheritDoc} */ - @Nullable @Override public Cache.Entry<K, V> randomEntry() { - return ctx.affinityNode() && ctx.isNear() ? dht().randomEntry() : super.randomEntry(); - } - - /** {@inheritDoc} */ @Override public long offHeapEntriesCount() { return dht().offHeapEntriesCount(); } http://git-wip-us.apache.org/repos/asf/ignite/blob/0a2dd92f/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentMapTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentMapTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentMapTest.java deleted file mode 100644 index fd649da..0000000 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheConcurrentMapTest.java +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ignite.internal.processors.cache; - -import java.util.Random; -import java.util.concurrent.Callable; -import java.util.concurrent.atomic.AtomicBoolean; -import javax.cache.Cache; -import org.apache.ignite.IgniteCache; -import org.apache.ignite.configuration.CacheConfiguration; -import org.apache.ignite.configuration.IgniteConfiguration; -import org.apache.ignite.internal.IgniteInternalFuture; -import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest; -import org.jetbrains.annotations.Nullable; - -import static org.apache.ignite.cache.CacheMode.LOCAL; -import static org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_SYNC; - -/** - * Grid cache concurrent hash map self test. - */ -public class GridCacheConcurrentMapTest extends GridCommonAbstractTest { - /** Random. */ - private static final Random RAND = new Random(); - - /** {@inheritDoc} */ - @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception { - IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName); - - CacheConfiguration cc = defaultCacheConfiguration(); - - cc.setCacheMode(LOCAL); - cc.setWriteSynchronizationMode(FULL_SYNC); - - cfg.setCacheConfiguration(cc); - - return cfg; - } - - /** {@inheritDoc} */ - @Override protected void beforeTestsStarted() throws Exception { - startGrid(0); - } - - /** {@inheritDoc} */ - @Override protected void afterTestsStopped() throws Exception { - stopAllGrids(); - } - - /** {@inheritDoc} */ - @Override protected void afterTest() throws Exception { - grid(0).cache(null).removeAll(); - } - - /** - * @throws Exception If failed. - */ - public void testRandomEntry() throws Exception { - IgniteCache<String, String> cache = grid(0).cache(null); - - for (int i = 0; i < 500; i++) - cache.put("key" + i, "val" + i); - - for (int i = 0; i < 20; i++) { - Cache.Entry<String, String> entry = cache.randomEntry(); - - assert entry != null; - - info("Random entry key: " + entry.getKey()); - } - } - - /** - * @throws Exception If failed. - */ - public void testRandomEntryMultiThreaded() throws Exception { - final IgniteCache<String, String> cache = grid(0).cache(null); - - final AtomicBoolean done = new AtomicBoolean(); - - IgniteInternalFuture<?> fut1 = multithreadedAsync( - new Callable<Object>() { - @Nullable @Override public Object call() throws Exception { - while (!done.get()) { - int i = RAND.nextInt(500); - - boolean rmv = RAND.nextBoolean(); - - if (rmv) - cache.remove("key" + i); - else - cache.put("key" + i, "val" + i); - } - - return null; - } - }, - 3 - ); - - IgniteInternalFuture<?> fut2 = multithreadedAsync( - new Callable<Object>() { - @Nullable @Override public Object call() throws Exception { - while (!done.get()) { - Cache.Entry<String, String> entry = cache.randomEntry(); - - info("Random entry key: " + (entry != null ? entry.getKey() : "N/A")); - } - - return null; - } - }, - 1 - ); - - Thread.sleep( 60 * 1000); - - done.set(true); - - fut1.get(); - fut2.get(); - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/0a2dd92f/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCachePreloadingEvictionsSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCachePreloadingEvictionsSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCachePreloadingEvictionsSelfTest.java index 82d9b41..02023ff 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCachePreloadingEvictionsSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCachePreloadingEvictionsSelfTest.java @@ -29,6 +29,7 @@ import org.apache.ignite.cache.CachePeekMode; import org.apache.ignite.configuration.CacheConfiguration; import org.apache.ignite.configuration.IgniteConfiguration; import org.apache.ignite.events.Event; +import org.apache.ignite.internal.IgniteEx; import org.apache.ignite.internal.IgniteInternalFuture; import org.apache.ignite.internal.IgniteInterruptedCheckedException; import org.apache.ignite.internal.IgniteKernal; @@ -209,7 +210,7 @@ public class GridCachePreloadingEvictionsSelfTest extends GridCommonAbstractTest * @return Random entry from cache. */ @Nullable private Cache.Entry<Integer, Object> randomEntry(Ignite g) { - return g.<Integer, Object>cache(null).randomEntry(); + return g.<Integer, Object>cache(null).iterator().next(); } /** http://git-wip-us.apache.org/repos/asf/ignite/blob/0a2dd92f/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheEntrySetIterationPreloadingSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheEntrySetIterationPreloadingSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheEntrySetIterationPreloadingSelfTest.java index 85a9fde..53d3a7a 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheEntrySetIterationPreloadingSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheEntrySetIterationPreloadingSelfTest.java @@ -72,10 +72,10 @@ public class GridCacheEntrySetIterationPreloadingSelfTest extends GridCacheAbstr for (int i = 0; i < entryCnt; i++) cache.put(String.valueOf(i), i); - Collection<Cache.Entry<String, Integer>> entries = new ArrayList<>(10_000); + Collection<Cache.Entry<String, Integer>> entries = new ArrayList<>(entryCnt); - for (int i = 0; i < 10_000; i++) - entries.add(cache.randomEntry()); + for (Cache.Entry<String, Integer> entry : cache) + entries.add(entry); startGrid(1); startGrid(2); http://git-wip-us.apache.org/repos/asf/ignite/blob/0a2dd92f/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/version/CacheVersionedEntryAbstractTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/version/CacheVersionedEntryAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/version/CacheVersionedEntryAbstractTest.java index e93e52e..38297a4 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/version/CacheVersionedEntryAbstractTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/version/CacheVersionedEntryAbstractTest.java @@ -26,7 +26,6 @@ import javax.cache.processor.EntryProcessorException; import javax.cache.processor.MutableEntry; import org.apache.ignite.IgniteCache; import org.apache.ignite.cache.CacheEntry; -import org.apache.ignite.cache.CachePeekMode; import org.apache.ignite.internal.processors.cache.GridCacheAbstractSelfTest; /** @@ -109,16 +108,6 @@ public abstract class CacheVersionedEntryAbstractTest extends GridCacheAbstractS /** * @throws Exception If failed. */ - public void testRandomEntry() throws Exception { - IgniteCache<Integer, String> cache = grid(0).cache(null); - - for (int i = 0; i < 5; i++) - checkVersionedEntry(cache.randomEntry().unwrap(CacheEntry.class)); - } - - /** - * @throws Exception If failed. - */ public void testLocalPeek() throws Exception { IgniteCache<Integer, String> cache = grid(0).cache(null); http://git-wip-us.apache.org/repos/asf/ignite/blob/0a2dd92f/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteCacheProcessProxy.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteCacheProcessProxy.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteCacheProcessProxy.java index 29ccc29..e37b572 100644 --- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteCacheProcessProxy.java +++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteCacheProcessProxy.java @@ -117,11 +117,6 @@ public class IgniteCacheProcessProxy<K, V> implements IgniteCache<K, V> { } /** {@inheritDoc} */ - @Override public Entry<K, V> randomEntry() { - throw new UnsupportedOperationException("Method should be supported."); - } - - /** {@inheritDoc} */ @Override public IgniteCache<K, V> withExpiryPolicy(ExpiryPolicy plc) { return new IgniteCacheProcessProxy<>(cacheName, isAsync, plc, igniteProxy); }
