http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteCacheAbstractBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteCacheAbstractBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteCacheAbstractBenchmark.java index da5cb1d..28aa5a2 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteCacheAbstractBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteCacheAbstractBenchmark.java @@ -19,21 +19,30 @@ package org.apache.ignite.yardstick.cache; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.atomic.AtomicInteger; import org.apache.ignite.IgniteCache; +import org.apache.ignite.IgniteDataStreamer; import org.apache.ignite.cache.affinity.Affinity; import org.apache.ignite.cluster.ClusterNode; import org.apache.ignite.configuration.CacheConfiguration; import org.apache.ignite.internal.util.typedef.T2; import org.apache.ignite.internal.util.typedef.internal.U; +import org.apache.ignite.marshaller.jdk.JdkMarshaller; import org.apache.ignite.yardstick.IgniteAbstractBenchmark; +import org.apache.ignite.yardstick.cache.model.SampleValue; import org.yardstickframework.BenchmarkConfiguration; import org.yardstickframework.BenchmarkUtils; +import static org.yardstickframework.BenchmarkUtils.println; + /** * Abstract class for Ignite benchmarks which use cache. */ @@ -42,21 +51,96 @@ public abstract class IgniteCacheAbstractBenchmark<K, V> extends IgniteAbstractB protected IgniteCache<K, V> cache; /** */ + protected List<IgniteCache> testCaches; + + /** */ private ThreadLocal<ThreadRange> threadRange = new ThreadLocal<>(); /** */ private AtomicInteger threadIdx = new AtomicInteger(); + /** */ + private int caches; + + /** */ + private final AtomicInteger opCacheIdx = new AtomicInteger(); + + /** */ + private final ThreadLocal<IgniteCache<K, V>> opCache = new ThreadLocal<>(); + + /** + * @return Cache for benchmark operation. + */ + protected final IgniteCache<K, V> cacheForOperation() { + return cacheForOperation(false); + } + + /** + * @param perThread If {@code true} then cache is selected once and set in thread local. + * @return Cache for benchmark operation. + */ + protected final IgniteCache<K, V> cacheForOperation(boolean perThread) { + if (caches > 1) { + if (perThread) { + IgniteCache<K, V> cache = opCache.get(); + + if (cache == null) { + cache = testCaches.get(opCacheIdx.getAndIncrement() % caches); + + opCache.set(cache); + + BenchmarkUtils.println(cfg, "Initialized cache for thread [cache=" + cache.getName() + ']'); + } + + return cache; + } + else + return testCaches.get(ThreadLocalRandom.current().nextInt(caches)); + } + + return cache; + } + /** {@inheritDoc} */ @Override public void setUp(BenchmarkConfiguration cfg) throws Exception { super.setUp(cfg); cache = cache(); + CacheConfiguration<?, ?> ccfg = cache.getConfiguration(CacheConfiguration.class); + + String grpName = ccfg.getGroupName(); + BenchmarkUtils.println(cfg, "Benchmark setUp [name=" + getClass().getSimpleName() + ", cacheName="+ cache.getName() + + ", cacheGroup="+ grpName + ", cacheCfg=" + cache.getConfiguration(CacheConfiguration.class) + ']'); + caches = args.cachesCount(); + + if (caches > 1) { + List<CacheConfiguration> toCreate = new ArrayList<>(); + + for (int i = 0; i < caches - 1; i++) { + JdkMarshaller marsh = new JdkMarshaller(); + + CacheConfiguration ccfg0 = marsh.unmarshal(marsh.marshal(ccfg), null); + + ccfg0.setName(cache.getName() + "-" + i); + + toCreate.add(ccfg0); + } + + Collection<IgniteCache> caches = ignite().getOrCreateCaches(toCreate); + + testCaches = new ArrayList<>(caches); + + testCaches.add(cache); + + BenchmarkUtils.println(cfg, "Created additional caches [caches=" + testCaches.size() + + ", grp=" + grpName + ']'); + } + if (args.printPartitionStatistics()) { Map<ClusterNode, T2<List<Integer>, List<Integer>>> parts = new HashMap<>(); @@ -104,6 +188,80 @@ public abstract class IgniteCacheAbstractBenchmark<K, V> extends IgniteAbstractB } /** + * @throws Exception If failed. + */ + protected final void loadCachesData() throws Exception { + List<IgniteCache> caches = testCaches != null ? testCaches : Collections.<IgniteCache>singletonList(cache); + + if (caches.size() > 1) { + ExecutorService executor = Executors.newFixedThreadPool(10); + + try { + List<Future<?>> futs = new ArrayList<>(); + + for (final IgniteCache cache : caches) { + futs.add(executor.submit(new Runnable() { + @Override public void run() { + loadCacheData0(cache.getName()); + } + })); + } + + for (Future<?> fut : futs) + fut.get(); + } + finally { + executor.shutdown(); + } + } + else + loadCacheData(caches.get(0).getName()); + } + + /** + * @param cacheName Cache name. + * @param cnt Number of entries to load. + */ + protected final void loadSampleValues(String cacheName, int cnt) { + try (IgniteDataStreamer<Object, Object> dataLdr = ignite().dataStreamer(cacheName)) { + for (int i = 0; i < cnt; i++) { + dataLdr.addData(i, new SampleValue(i)); + + if (i % 100000 == 0) { + if (Thread.currentThread().isInterrupted()) + break; + + println("Loaded entries [cache=" + cacheName + ", cnt=" + i + ']'); + } + } + } + + println("Load entries done [cache=" + cacheName + ", cnt=" + cnt + ']'); + } + + /** + * @param cacheName Cache name. + */ + private void loadCacheData0(String cacheName) { + println(cfg, "Loading data for cache: " + cacheName); + + long start = System.nanoTime(); + + loadCacheData(cacheName); + + long time = ((System.nanoTime() - start) / 1_000_000); + + println(cfg, "Finished populating data [cache=" + cacheName + ", time=" + time + "ms]"); + } + + /** + * @param cacheName Cache name. + */ + protected void loadCacheData(String cacheName) { + throw new IllegalStateException("Not implemented for " + getClass().getSimpleName()); + } + + /** * @return Range. */ protected final ThreadRange threadRange() {
http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetAllBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetAllBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetAllBenchmark.java index 2f76b7c..f563ec8 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetAllBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetAllBenchmark.java @@ -19,6 +19,7 @@ package org.apache.ignite.yardstick.cache; import java.util.Map; import java.util.Set; +import org.apache.ignite.IgniteCache; import org.apache.ignite.internal.util.typedef.internal.U; /** @@ -35,6 +36,8 @@ public class IgniteGetAllBenchmark extends IgniteGetBenchmark { keys.add(key); } + IgniteCache<Integer, Object> cache = cacheForOperation(); + cache.getAll(keys); return true; http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetAllPutAllTxBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetAllPutAllTxBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetAllPutAllTxBenchmark.java index a8f6d7b..d984e64 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetAllPutAllTxBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetAllPutAllTxBenchmark.java @@ -55,6 +55,8 @@ public class IgniteGetAllPutAllTxBenchmark extends IgniteCacheAbstractBenchmark< vals.put(key, key); } + IgniteCache<Integer, Integer> cache = cacheForOperation(); + cache.getAll(vals.keySet()); cache.putAll(vals); http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetAndPutBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetAndPutBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetAndPutBenchmark.java index 8d15e5e..f943f16 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetAndPutBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetAndPutBenchmark.java @@ -29,6 +29,8 @@ public class IgniteGetAndPutBenchmark extends IgniteCacheAbstractBenchmark<Integ @Override public boolean test(Map<Object, Object> ctx) throws Exception { int key = nextRandom(args.range()); + IgniteCache<Integer, Object> cache = cacheForOperation(); + cache.getAndPut(key, new SampleValue(key)); return true; http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetAndPutTxBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetAndPutTxBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetAndPutTxBenchmark.java index 0a3794c..4a1af43 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetAndPutTxBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetAndPutTxBenchmark.java @@ -49,6 +49,8 @@ public class IgniteGetAndPutTxBenchmark extends IgniteCacheAbstractBenchmark<Int @Override public Void call() throws Exception { int key = nextRandom(args.range()); + IgniteCache<Integer, Object> cache = cacheForOperation(); + cache.getAndPut(key, new SampleValue(key)); return null; http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetBenchmark.java index 6154ba4..96a99ff 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetBenchmark.java @@ -19,19 +19,12 @@ package org.apache.ignite.yardstick.cache; import java.util.Map; import org.apache.ignite.IgniteCache; -import org.apache.ignite.IgniteDataStreamer; -import org.apache.ignite.yardstick.cache.model.SampleValue; import org.yardstickframework.BenchmarkConfiguration; -import static org.yardstickframework.BenchmarkUtils.println; - /** * Ignite benchmark that performs get operations. */ public class IgniteGetBenchmark extends IgniteCacheAbstractBenchmark<Integer, Object> { - /** */ - private static final String CACHE_NAME = "atomic"; - /** {@inheritDoc} */ @Override public void setUp(BenchmarkConfiguration cfg) throws Exception { super.setUp(cfg); @@ -40,32 +33,20 @@ public class IgniteGetBenchmark extends IgniteCacheAbstractBenchmark<Integer, Ob throw new IllegalArgumentException("Preloading amount (\"-pa\", \"--preloadAmount\") " + "must by less then the range (\"-r\", \"--range\")."); - String cacheName = cache().getName(); - - println(cfg, "Loading data for cache: " + cacheName); - - long start = System.nanoTime(); - - try (IgniteDataStreamer<Object, Object> dataLdr = ignite().dataStreamer(cacheName)) { - for (int i = 0; i < args.preloadAmount(); i++) { - dataLdr.addData(i, new SampleValue(i)); - - if (i % 100000 == 0) { - if (Thread.currentThread().isInterrupted()) - break; - - println("Loaded entries: " + i); - } - } - } + loadCachesData(); + } - println(cfg, "Finished populating query data in " + ((System.nanoTime() - start) / 1_000_000) + " ms."); + /** {@inheritDoc} */ + @Override protected void loadCacheData(String cacheName) { + loadSampleValues(cacheName, args.preloadAmount()); } /** {@inheritDoc} */ @Override public boolean test(Map<Object, Object> ctx) throws Exception { int key = nextRandom(args.range()); + IgniteCache<Integer, Object> cache = cacheForOperation(); + cache.get(key); return true; @@ -73,6 +54,6 @@ public class IgniteGetBenchmark extends IgniteCacheAbstractBenchmark<Integer, Ob /** {@inheritDoc} */ @Override protected IgniteCache<Integer, Object> cache() { - return ignite().cache(CACHE_NAME); + return ignite().cache("atomic"); } } http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetEntriesPutAllTxBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetEntriesPutAllTxBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetEntriesPutAllTxBenchmark.java index 501e12d..fd61d5f 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetEntriesPutAllTxBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteGetEntriesPutAllTxBenchmark.java @@ -47,6 +47,8 @@ public class IgniteGetEntriesPutAllTxBenchmark extends IgniteCacheAbstractBenchm doInTransaction(txs, args.txConcurrency(), args.txIsolation(), new Callable<Void>() { @Override public Void call() throws Exception { + IgniteCache<Integer, Integer> cache = cacheForOperation(); + SortedMap<Integer, Integer> vals = new TreeMap<>(); for (int i = 0; i < args.batch(); i++) { http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteInvokeBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteInvokeBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteInvokeBenchmark.java index a1e80f0..fa29cc4 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteInvokeBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteInvokeBenchmark.java @@ -31,6 +31,8 @@ public class IgniteInvokeBenchmark extends IgniteCacheAbstractBenchmark<Integer, @Override public boolean test(Map<Object, Object> ctx) throws Exception { int key = nextRandom(args.range()); + IgniteCache<Integer, Object> cache = cacheForOperation(); + cache.invoke(key, new SetValueEntryProcessor(new SampleValue(key))); return true; http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteInvokeTxBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteInvokeTxBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteInvokeTxBenchmark.java index 64dc6b8..c30ff29 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteInvokeTxBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteInvokeTxBenchmark.java @@ -49,6 +49,8 @@ public class IgniteInvokeTxBenchmark extends IgniteInvokeBenchmark { @Override public Void call() throws Exception { int key = nextRandom(args.range()); + IgniteCache<Integer, Object> cache = cacheForOperation(); + cache.invoke(key, new SetValueEntryProcessor(new SampleValue(key))); return null; http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteInvokeWithInjectionBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteInvokeWithInjectionBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteInvokeWithInjectionBenchmark.java index ef9d17b..93704cc 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteInvokeWithInjectionBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteInvokeWithInjectionBenchmark.java @@ -34,6 +34,8 @@ public class IgniteInvokeWithInjectionBenchmark extends IgniteCacheAbstractBench @Override public boolean test(Map<Object, Object> ctx) throws Exception { int key = nextRandom(args.range()); + IgniteCache<Integer, Object> cache = cacheForOperation(); + cache.invoke(key, new SetValueEntryProcessor(new SampleValue(key))); return true; http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutAllBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutAllBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutAllBenchmark.java index 33aa205..dc21029 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutAllBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutAllBenchmark.java @@ -131,6 +131,8 @@ public class IgnitePutAllBenchmark extends IgniteCacheAbstractBenchmark<Integer, } } + IgniteCache<Integer, Object> cache = cacheForOperation(); + cache.putAll(vals); return true; http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutAllSerializableTxBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutAllSerializableTxBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutAllSerializableTxBenchmark.java index 200400e..089ee7a 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutAllSerializableTxBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutAllSerializableTxBenchmark.java @@ -54,6 +54,8 @@ public class IgnitePutAllSerializableTxBenchmark extends IgniteCacheAbstractBenc vals.put(key, key); } + IgniteCache<Integer, Object> cache = cacheForOperation(); + while (true) { try (Transaction tx = txs.txStart(OPTIMISTIC, SERIALIZABLE)) { cache.putAll(vals); http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutBenchmark.java index 69db87f..ebee87c 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutBenchmark.java @@ -29,6 +29,8 @@ public class IgnitePutBenchmark extends IgniteCacheAbstractBenchmark<Integer, Ob @Override public boolean test(Map<Object, Object> ctx) throws Exception { int key = nextRandom(args.range()); + IgniteCache<Integer, Object> cache = cacheForOperation(); + cache.put(key, new SampleValue(key)); return true; http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetBatchBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetBatchBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetBatchBenchmark.java index a9f59d4..9526896 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetBatchBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetBatchBenchmark.java @@ -30,6 +30,8 @@ import org.apache.ignite.yardstick.cache.model.SampleValue; public class IgnitePutGetBatchBenchmark extends IgniteCacheAbstractBenchmark<Integer, Object> { /** {@inheritDoc} */ @Override public boolean test(Map<Object, Object> ctx) throws Exception { + IgniteCache<Integer, Object> cache = cacheForOperation(); + Set<Integer> keys = new TreeSet<>(); while (keys.size() < args.batch()) http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetBenchmark.java index 42f308c..cc29e47 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetBenchmark.java @@ -29,6 +29,8 @@ public class IgnitePutGetBenchmark extends IgniteCacheAbstractBenchmark<Integer, @Override public boolean test(Map<Object, Object> ctx) throws Exception { int key = nextRandom(args.range()); + IgniteCache<Integer, Object> cache = cacheForOperation(); + Object val = cache.get(key); if (val != null) http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetEntryBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetEntryBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetEntryBenchmark.java index 1289fa1..eb49b57 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetEntryBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetEntryBenchmark.java @@ -28,6 +28,8 @@ import org.apache.ignite.yardstick.cache.model.SampleValue; public class IgnitePutGetEntryBenchmark extends IgniteCacheAbstractBenchmark<Integer, Object> { /** {@inheritDoc} */ @Override public boolean test(Map<Object, Object> ctx) throws Exception { + IgniteCache<Integer, Object> cache = cacheForOperation(); + int key = nextRandom(args.range()); CacheEntry<Integer, Object> val = cache.getEntry(key); http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetEntryTxBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetEntryTxBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetEntryTxBenchmark.java index 6e58b41..5b35009 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetEntryTxBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetEntryTxBenchmark.java @@ -45,6 +45,8 @@ public class IgnitePutGetEntryTxBenchmark extends IgniteCacheAbstractBenchmark<I clo = new Callable<Void>() { @Override public Void call() throws Exception { + IgniteCache<Integer, Object> cache = cacheForOperation(); + int key = nextRandom(0, args.range() / 2); CacheEntry<Integer, Object> val = cache.getEntry(key); http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetTxBatchBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetTxBatchBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetTxBatchBenchmark.java index 7ac8180..954f93f 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetTxBatchBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetTxBatchBenchmark.java @@ -47,6 +47,8 @@ public class IgnitePutGetTxBatchBenchmark extends IgniteCacheAbstractBenchmark<I clo = new Callable<Void>() { @Override public Void call() throws Exception { + IgniteCache<Integer, Object> cache = cacheForOperation(); + Set<Integer> keys = new TreeSet<>(); while (keys.size() < args.batch()) http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetTxBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetTxBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetTxBenchmark.java index 3235721..6b11ef8 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetTxBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutGetTxBenchmark.java @@ -44,6 +44,8 @@ public class IgnitePutGetTxBenchmark extends IgniteCacheAbstractBenchmark<Intege clo = new Callable<Void>() { @Override public Void call() throws Exception { + IgniteCache<Integer, Object> cache = cacheForOperation(); + int key = nextRandom(0, args.range() / 2); Object val = cache.get(key); http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutIfAbsentIndexedValue1Benchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutIfAbsentIndexedValue1Benchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutIfAbsentIndexedValue1Benchmark.java index aea909a..8430b12 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutIfAbsentIndexedValue1Benchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutIfAbsentIndexedValue1Benchmark.java @@ -31,6 +31,8 @@ public class IgnitePutIfAbsentIndexedValue1Benchmark extends IgniteCacheAbstract /** {@inheritDoc} */ @Override public boolean test(Map<Object, Object> ctx) throws Exception { + IgniteCache<Integer, Object> cache = cacheForOperation(); + int key = insCnt.getAndIncrement(); cache.putIfAbsent(key, new Person1(key)); http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutIndexedValue1Benchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutIndexedValue1Benchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutIndexedValue1Benchmark.java index 6f06015..af206fe 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutIndexedValue1Benchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutIndexedValue1Benchmark.java @@ -27,6 +27,8 @@ import org.apache.ignite.yardstick.cache.model.Person1; public class IgnitePutIndexedValue1Benchmark extends IgniteCacheAbstractBenchmark<Integer, Object> { /** {@inheritDoc} */ @Override public boolean test(Map<Object, Object> ctx) throws Exception { + IgniteCache<Integer, Object> cache = cacheForOperation(); + int key = nextRandom(args.range()); cache.put(key, new Person1(key)); http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutIndexedValue2Benchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutIndexedValue2Benchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutIndexedValue2Benchmark.java index 0112163..7c62714 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutIndexedValue2Benchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutIndexedValue2Benchmark.java @@ -27,6 +27,8 @@ import org.apache.ignite.yardstick.cache.model.Person2; public class IgnitePutIndexedValue2Benchmark extends IgniteCacheAbstractBenchmark<Integer, Object> { /** {@inheritDoc} */ @Override public boolean test(Map<Object, Object> ctx) throws Exception { + IgniteCache<Integer, Object> cache = cacheForOperation(); + int key = nextRandom(args.range()); cache.put(key, new Person2(key)); http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutIndexedValue8Benchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutIndexedValue8Benchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutIndexedValue8Benchmark.java index dae32b4..a34e386 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutIndexedValue8Benchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutIndexedValue8Benchmark.java @@ -27,6 +27,8 @@ import org.apache.ignite.yardstick.cache.model.Person8; public class IgnitePutIndexedValue8Benchmark extends IgniteCacheAbstractBenchmark<Integer, Object> { /** {@inheritDoc} */ @Override public boolean test(Map<Object, Object> ctx) throws Exception { + IgniteCache<Integer, Object> cache = cacheForOperation(); + int key = nextRandom(args.range()); cache.put(key, new Person8(key)); http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutRandomValueSizeBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutRandomValueSizeBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutRandomValueSizeBenchmark.java index 180b50e..db631aba 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutRandomValueSizeBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutRandomValueSizeBenchmark.java @@ -26,6 +26,8 @@ import org.apache.ignite.IgniteCache; public class IgnitePutRandomValueSizeBenchmark extends IgniteCacheAbstractBenchmark<Integer, Object> { /** {@inheritDoc} */ @Override public boolean test(Map<Object, Object> ctx) throws Exception { + IgniteCache<Integer, Object> cache = cacheForOperation(); + int key = nextRandom(args.range()); int size = 64 + nextRandom(64); http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutRemoveBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutRemoveBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutRemoveBenchmark.java index 7ea3d91..564bff5 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutRemoveBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutRemoveBenchmark.java @@ -27,6 +27,8 @@ import org.apache.ignite.yardstick.cache.model.SampleValue; public class IgnitePutRemoveBenchmark extends IgniteCacheAbstractBenchmark<Integer, Object> { /** {@inheritDoc} */ @Override public boolean test(Map<Object, Object> ctx) throws Exception { + IgniteCache<Integer, Object> cache = cacheForOperation(); + int key = nextRandom(args.range()); cache.put(key, new SampleValue(key)); http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutTxBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutTxBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutTxBenchmark.java index 15b7cd6..0a8a470 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutTxBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutTxBenchmark.java @@ -47,6 +47,8 @@ public class IgnitePutTxBenchmark extends IgniteCacheAbstractBenchmark<Integer, clo = new Callable<Void>() { @Override public Void call() throws Exception { + IgniteCache<Integer, Object> cache = cacheForOperation(); + int key = nextRandom(args.range()); cache.put(key, new SampleValue(key)); http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutTxImplicitBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutTxImplicitBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutTxImplicitBenchmark.java index 89d87a8..d1070fb 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutTxImplicitBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutTxImplicitBenchmark.java @@ -37,6 +37,8 @@ public class IgnitePutTxImplicitBenchmark extends IgniteCacheAbstractBenchmark<I /** {@inheritDoc} */ @Override public boolean test(Map<Object, Object> ctx) throws Exception { + IgniteCache<Integer, Object> cache = cacheForOperation(); + int key = nextRandom(args.range()); // Implicit transaction is used. http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutTxPrimaryOnlyBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutTxPrimaryOnlyBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutTxPrimaryOnlyBenchmark.java index 21275eb..5e79acd 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutTxPrimaryOnlyBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutTxPrimaryOnlyBenchmark.java @@ -39,6 +39,8 @@ public class IgnitePutTxPrimaryOnlyBenchmark extends IgniteCacheAbstractBenchmar /** {@inheritDoc} */ @Override public boolean test(Map<Object, Object> ctx) throws Exception { + IgniteCache<Integer, Object> cache = cacheForOperation(); + int key; Affinity<Object> aff = ignite().affinity("tx"); http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutTxSkipLocalBackupBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutTxSkipLocalBackupBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutTxSkipLocalBackupBenchmark.java index 63934e6..29d565a 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutTxSkipLocalBackupBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutTxSkipLocalBackupBenchmark.java @@ -39,6 +39,8 @@ public class IgnitePutTxSkipLocalBackupBenchmark extends IgniteCacheAbstractBenc /** {@inheritDoc} */ @Override public boolean test(Map<Object, Object> ctx) throws Exception { + IgniteCache<Integer, Object> cache = cacheForOperation(); + int key; Affinity<Object> aff = ignite().affinity("tx"); http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutValue8Benchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutValue8Benchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutValue8Benchmark.java index 6a3d492..e4ac2e2 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutValue8Benchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgnitePutValue8Benchmark.java @@ -28,6 +28,8 @@ import java.util.Map; public class IgnitePutValue8Benchmark extends IgniteCacheAbstractBenchmark<Integer, Object> { /** {@inheritDoc} */ @Override public boolean test(Map<Object, Object> ctx) throws Exception { + IgniteCache<Integer, Object> cache = cacheForOperation(); + int key = nextRandom(args.range()); cache.put(key, new Person8(key)); http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteReplaceIndexedValue1Benchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteReplaceIndexedValue1Benchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteReplaceIndexedValue1Benchmark.java index cc50c84..70b94ab 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteReplaceIndexedValue1Benchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteReplaceIndexedValue1Benchmark.java @@ -66,6 +66,8 @@ public class IgniteReplaceIndexedValue1Benchmark extends IgniteCacheAbstractBenc @Override public boolean test(Map<Object, Object> ctx) throws Exception { ThreadLocalRandom rnd = ThreadLocalRandom.current(); + IgniteCache<Integer, Object> cache = cacheForOperation(); + cache.replace(rnd.nextInt(args.range()), new Person1(rnd.nextInt(args.range()))); return true; http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteScanQueryBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteScanQueryBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteScanQueryBenchmark.java new file mode 100644 index 0000000..eda4ff6 --- /dev/null +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteScanQueryBenchmark.java @@ -0,0 +1,88 @@ +/* + * 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.yardstick.cache; + +import java.util.List; +import java.util.Map; +import org.apache.ignite.IgniteCache; +import org.apache.ignite.cache.query.ScanQuery; +import org.apache.ignite.lang.IgniteBiPredicate; +import org.yardstickframework.BenchmarkConfiguration; + +/** + * + */ +public class IgniteScanQueryBenchmark extends IgniteCacheAbstractBenchmark<Integer, Object> { + /** {@inheritDoc} */ + @Override public void setUp(BenchmarkConfiguration cfg) throws Exception { + super.setUp(cfg); + + loadCachesData(); + } + + /** {@inheritDoc} */ + @Override protected void loadCacheData(String cacheName) { + loadSampleValues(cacheName, args.range()); + } + + /** {@inheritDoc} */ + @Override public boolean test(Map<Object, Object> ctx) throws Exception { + int key = nextRandom(args.range()); + + ScanQuery<Integer, Object> qry = new ScanQuery<>(); + + qry.setFilter(new KeyFilter(key)); + + IgniteCache<Integer, Object> cache = cacheForOperation().withKeepBinary(); + + List<IgniteCache.Entry<Integer, Object>> res = cache.query(qry).getAll(); + + if (res.size() != 1) + throw new Exception("Invalid result size: " + res.size()); + + if (res.get(0).getKey() != key) + throw new Exception("Invalid entry found [key=" + key + ", entryKey=" + res.get(0).getKey() + ']'); + + return true; + } + + /** {@inheritDoc} */ + @Override protected IgniteCache<Integer, Object> cache() { + return ignite().cache("atomic"); + } + + /** + * + */ + static class KeyFilter implements IgniteBiPredicate<Integer, Object> { + /** */ + private final Integer key; + + /** + * @param key Key to find. + */ + public KeyFilter(Integer key) { + this.key = key; + } + + /** {@inheritDoc} */ + @Override public boolean apply(Integer key, Object val) { + return this.key.equals(key); + } + } +} http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryBenchmark.java index 8e31455..732cb71 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryBenchmark.java @@ -37,20 +37,22 @@ public class IgniteSqlQueryBenchmark extends IgniteCacheAbstractBenchmark<Intege @Override public void setUp(BenchmarkConfiguration cfg) throws Exception { super.setUp(cfg); - println(cfg, "Populating query data..."); + loadCachesData(); + } - long start = System.nanoTime(); + /** {@inheritDoc} */ + @Override protected void loadCacheData(String cacheName) { + try (IgniteDataStreamer<Integer, Person> dataLdr = ignite().dataStreamer(cacheName)) { + for (int i = 0; i < args.range(); i++) { + if (i % 100 == 0 && Thread.currentThread().isInterrupted()) + break; - try (IgniteDataStreamer<Integer, Person> dataLdr = ignite().dataStreamer(cache.getName())) { - for (int i = 0; i < args.range() && !Thread.currentThread().isInterrupted(); i++) { dataLdr.addData(i, new Person(i, "firstName" + i, "lastName" + i, i * 1000)); if (i % 100000 == 0) println(cfg, "Populated persons: " + i); } } - - println(cfg, "Finished populating query data in " + ((System.nanoTime() - start) / 1_000_000) + " ms."); } /** {@inheritDoc} */ @@ -79,6 +81,8 @@ public class IgniteSqlQueryBenchmark extends IgniteCacheAbstractBenchmark<Intege * @throws Exception If failed. */ private Collection<Cache.Entry<Integer, Object>> executeQuery(double minSalary, double maxSalary) throws Exception { + IgniteCache<Integer, Object> cache = cacheForOperation(true); + SqlQuery qry = new SqlQuery(Person.class, "salary >= ? and salary <= ?"); qry.setArgs(minSalary, maxSalary); http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryDistributedJoinBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryDistributedJoinBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryDistributedJoinBenchmark.java index c5fdeb2..8f4829d 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryDistributedJoinBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryDistributedJoinBenchmark.java @@ -47,14 +47,23 @@ public class IgniteSqlQueryDistributedJoinBenchmark extends IgniteCacheAbstractB println(cfg, "Populating query data..."); - long start = System.nanoTime(); - range = args.range(); if (range <= 0) throw new IllegalArgumentException(); - try (IgniteDataStreamer<Object, Object> dataLdr = ignite().dataStreamer(cache.getName())) { + println(cfg, "Populating join query data [orgCnt=" + range + + ", personCnt=" + range + + ", broadcastJoin=" + broadcast + "]"); + + loadCachesData(); + + executeQueryJoin(0, broadcast, true); + } + + /** {@inheritDoc} */ + @Override protected void loadCacheData(String cacheName) { + try (IgniteDataStreamer<Object, Object> dataLdr = ignite().dataStreamer(cacheName)) { for (int orgId = 0; orgId < range; orgId++) { dataLdr.addData(orgId, new Organization(orgId, "org" + orgId)); @@ -73,13 +82,6 @@ public class IgniteSqlQueryDistributedJoinBenchmark extends IgniteCacheAbstractB dataLdr.close(); } - - println(cfg, "Finished populating join query [orgCnt=" + range + - ", personCnt=" + range + - ", broadcastJoin=" + broadcast + - ", time=" + ((System.nanoTime() - start) / 1_000_000) + "ms]"); - - executeQueryJoin(0, broadcast, true); } /** @@ -141,6 +143,8 @@ public class IgniteSqlQueryDistributedJoinBenchmark extends IgniteCacheAbstractB qry.setDistributedJoins(true); qry.setArgs(orgId); + IgniteCache<Integer, Object> cache = cacheForOperation(true); + if (planOnly) { String plan = (String)cache.query(qry).getAll().get(0).get(0); http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryJoinBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryJoinBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryJoinBenchmark.java index 1f8006d..1160803 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryJoinBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryJoinBenchmark.java @@ -40,9 +40,15 @@ public class IgniteSqlQueryJoinBenchmark extends IgniteCacheAbstractBenchmark<In println(cfg, "Populating query data..."); - long start = System.nanoTime(); + loadCachesData(); + } + + /** {@inheritDoc} */ + @Override protected void loadCacheData(String cacheName) { + if (args.range() < 100) + throw new IllegalArgumentException("Invalid range: " + args.range()); - try (IgniteDataStreamer<Object, Object> dataLdr = ignite().dataStreamer(cache.getName())) { + try (IgniteDataStreamer<Object, Object> dataLdr = ignite().dataStreamer(cacheName)) { final int orgRange = args.range() / 10; // Populate organizations. @@ -61,8 +67,6 @@ public class IgniteSqlQueryJoinBenchmark extends IgniteCacheAbstractBenchmark<In println(cfg, "Populated persons: " + i); } } - - println(cfg, "Finished populating join query data in " + ((System.nanoTime() - start) / 1_000_000) + " ms."); } /** {@inheritDoc} */ @@ -100,6 +104,8 @@ public class IgniteSqlQueryJoinBenchmark extends IgniteCacheAbstractBenchmark<In * @throws Exception If failed. */ private Collection<List<?>> executeQueryJoin(double minSalary, double maxSalary) throws Exception { + IgniteCache<Integer, Object> cache = cacheForOperation(true); + SqlFieldsQuery qry = new SqlFieldsQuery( "select p.id, p.orgId, p.firstName, p.lastName, p.salary, o.name " + "from Person p " + http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryPutBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryPutBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryPutBenchmark.java index dfa4cbc..a67f0dc 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryPutBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryPutBenchmark.java @@ -25,7 +25,6 @@ import javax.cache.Cache; import org.apache.ignite.IgniteCache; import org.apache.ignite.cache.query.SqlQuery; import org.apache.ignite.yardstick.cache.model.Person; -import org.yardstickframework.BenchmarkConfiguration; import static org.yardstickframework.BenchmarkUtils.println; @@ -40,14 +39,11 @@ public class IgniteSqlQueryPutBenchmark extends IgniteCacheAbstractBenchmark<Int private AtomicInteger qryCnt = new AtomicInteger(); /** {@inheritDoc} */ - @Override public void setUp(BenchmarkConfiguration cfg) throws Exception { - super.setUp(cfg); - } - - /** {@inheritDoc} */ @Override public boolean test(Map<Object, Object> ctx) throws Exception { ThreadLocalRandom rnd = ThreadLocalRandom.current(); + IgniteCache<Integer, Object> cache = cacheForOperation(true); + if (rnd.nextBoolean()) { double salary = rnd.nextDouble() * args.range() * 1000; http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryPutSeparatedBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryPutSeparatedBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryPutSeparatedBenchmark.java index b74978e..2ba06cf 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryPutSeparatedBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/IgniteSqlQueryPutSeparatedBenchmark.java @@ -55,6 +55,8 @@ public class IgniteSqlQueryPutSeparatedBenchmark extends IgniteCacheAbstractBenc } } else { + IgniteCache<Integer, Object> cache = cacheForOperation(true); + int i = rnd.nextInt(args.range()); cache.put(i, new Person(i, "firstName" + i, "lastName" + i, i * 1000)); @@ -70,6 +72,8 @@ public class IgniteSqlQueryPutSeparatedBenchmark extends IgniteCacheAbstractBenc * @throws Exception If failed. */ private Collection<Cache.Entry<Integer, Object>> executeQuery(double minSalary, double maxSalary) throws Exception { + IgniteCache<Integer, Object> cache = cacheForOperation(true); + SqlQuery qry = new SqlQuery(Person.class, "salary >= ? and salary <= ?"); qry.setArgs(minSalary, maxSalary); http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/jdbc/JdbcPutGetBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/jdbc/JdbcPutGetBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/jdbc/JdbcPutGetBenchmark.java index 8ee7679..a68b2b2 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/jdbc/JdbcPutGetBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/jdbc/JdbcPutGetBenchmark.java @@ -28,8 +28,8 @@ import static org.apache.ignite.yardstick.cache.jdbc.JdbcPutBenchmark.createUpse public class JdbcPutGetBenchmark extends JdbcAbstractBenchmark { /** {@inheritDoc} */ @Override public boolean test(Map<Object, Object> ctx) throws Exception { - int newKey = nextRandom(args.range); - int newVal = nextRandom(args.range); + int newKey = nextRandom(args.range()); + int newVal = nextRandom(args.range()); try (PreparedStatement stmt = createUpsertStatement(conn.get(), newKey, newVal)) { if (stmt.executeUpdate() <= 0) http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/load/IgniteCacheRandomOperationBenchmark.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/load/IgniteCacheRandomOperationBenchmark.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/load/IgniteCacheRandomOperationBenchmark.java index 4010f5e..9c9cbe4 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/load/IgniteCacheRandomOperationBenchmark.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/load/IgniteCacheRandomOperationBenchmark.java @@ -31,6 +31,9 @@ import java.util.TreeMap; import java.util.TreeSet; import java.util.UUID; import java.util.concurrent.Callable; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.atomic.AtomicLong; import javax.cache.CacheException; @@ -448,25 +451,36 @@ public class IgniteCacheRandomOperationBenchmark extends IgniteAbstractBenchmark startPreloadLogging(args.preloadLogsInterval()); - Thread[] threads = new Thread[availableCaches.size()]; + ExecutorService executor = Executors.newFixedThreadPool(10); - for (int i = 0; i < availableCaches.size(); i++) { - final String cacheName = availableCaches.get(i).getName(); + try { + List<Future<?>> futs = new ArrayList<>(); + + final Thread thread = Thread.currentThread(); + + for (int i = 0; i < availableCaches.size(); i++) { + final String cacheName = availableCaches.get(i).getName(); - threads[i] = new Thread() { - @Override public void run() { - try (IgniteDataStreamer<Object, Object> dataLdr = ignite().dataStreamer(cacheName)) { - for (int i = 0; i < args.preloadAmount() && !isInterrupted(); i++) - dataLdr.addData(createRandomKey(i, cacheName), createRandomValue(i, cacheName)); + futs.add(executor.submit(new Runnable() { + @Override public void run() { + try (IgniteDataStreamer<Object, Object> dataLdr = ignite().dataStreamer(cacheName)) { + for (int i = 0; i < args.preloadAmount(); i++) { + if (i % 100 == 0 && thread.isInterrupted()) + break; + + dataLdr.addData(createRandomKey(i, cacheName), createRandomValue(i, cacheName)); + } + } } - } - }; + })); + } - threads[i].start(); + for (Future<?> fut : futs) + fut.get(); + } + finally { + executor.shutdown(); } - - for (Thread thread : threads) - thread.join(); stopPreloadLogging(); } http://git-wip-us.apache.org/repos/asf/ignite/blob/db85d166/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/load/model/ModelUtil.java ---------------------------------------------------------------------- diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/load/model/ModelUtil.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/load/model/ModelUtil.java index 9268cdd..492ace7 100644 --- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/load/model/ModelUtil.java +++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/load/model/ModelUtil.java @@ -150,6 +150,9 @@ public class ModelUtil { break; case "String": res = String.valueOf(id); + break; + default: + throw new IllegalArgumentException("Unsupported class: " + c.getSimpleName()); } return res;