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 <= 
?");
 

Reply via email to