Repository: ignite Updated Branches: refs/heads/ignite-5075 0b8bcbca1 -> 43fbc9352
ignite-5075 Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/43fbc935 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/43fbc935 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/43fbc935 Branch: refs/heads/ignite-5075 Commit: 43fbc9352d8bcd260c3bee422ff2226690cb4392 Parents: 0b8bcbc Author: sboikov <[email protected]> Authored: Tue May 30 15:51:27 2017 +0300 Committer: sboikov <[email protected]> Committed: Tue May 30 15:51:27 2017 +0300 ---------------------------------------------------------------------- .../cache/IgniteCacheAbstractBenchmark.java | 33 ++++++++++++++++++-- .../cache/IgniteSqlQueryBenchmark.java | 2 +- .../IgniteSqlQueryDistributedJoinBenchmark.java | 2 +- .../cache/IgniteSqlQueryJoinBenchmark.java | 2 +- .../cache/IgniteSqlQueryPutBenchmark.java | 2 +- .../IgniteSqlQueryPutSeparatedBenchmark.java | 4 +-- 6 files changed, 37 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/43fbc935/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 b6c1440..6514dd7 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 @@ -61,12 +61,41 @@ public abstract class IgniteCacheAbstractBenchmark<K, V> extends IgniteAbstractB /** */ private int cachesInGrp; + /** */ + 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() { - if (cachesInGrp > 1) - return grpCaches.get(ThreadLocalRandom.current().nextInt(cachesInGrp)); + 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 (cachesInGrp > 1) { + if (perThread) { + IgniteCache<K, V> cache = opCache.get(); + + if (cache == null) { + cache = grpCaches.get(opCacheIdx.getAndIncrement() % cachesInGrp); + + opCache.set(cache); + + BenchmarkUtils.println(cfg, "Initialized cache for thread [cache=" + cache.getName() + ']'); + } + + return cache; + } + else + return grpCaches.get(ThreadLocalRandom.current().nextInt(cachesInGrp)); + } return cache; } http://git-wip-us.apache.org/repos/asf/ignite/blob/43fbc935/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 d31a617..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 @@ -81,7 +81,7 @@ 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(); + IgniteCache<Integer, Object> cache = cacheForOperation(true); SqlQuery qry = new SqlQuery(Person.class, "salary >= ? and salary <= ?"); http://git-wip-us.apache.org/repos/asf/ignite/blob/43fbc935/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 97aa38f..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 @@ -143,7 +143,7 @@ public class IgniteSqlQueryDistributedJoinBenchmark extends IgniteCacheAbstractB qry.setDistributedJoins(true); qry.setArgs(orgId); - IgniteCache<Integer, Object> cache = cacheForOperation(); + 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/43fbc935/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 79b336b..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 @@ -104,7 +104,7 @@ 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(); + IgniteCache<Integer, Object> cache = cacheForOperation(true); SqlFieldsQuery qry = new SqlFieldsQuery( "select p.id, p.orgId, p.firstName, p.lastName, p.salary, o.name " + http://git-wip-us.apache.org/repos/asf/ignite/blob/43fbc935/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 9921ef7..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 @@ -42,7 +42,7 @@ public class IgniteSqlQueryPutBenchmark extends IgniteCacheAbstractBenchmark<Int @Override public boolean test(Map<Object, Object> ctx) throws Exception { ThreadLocalRandom rnd = ThreadLocalRandom.current(); - IgniteCache<Integer, Object> cache = cacheForOperation(); + 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/43fbc935/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 d18be0d..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,7 +55,7 @@ public class IgniteSqlQueryPutSeparatedBenchmark extends IgniteCacheAbstractBenc } } else { - IgniteCache<Integer, Object> cache = cacheForOperation(); + IgniteCache<Integer, Object> cache = cacheForOperation(true); int i = rnd.nextInt(args.range()); @@ -72,7 +72,7 @@ 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(); + IgniteCache<Integer, Object> cache = cacheForOperation(true); SqlQuery qry = new SqlQuery(Person.class, "salary >= ? and salary <= ?");
