You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by dk...@apache.org on 2015/05/11 13:44:05 UTC

[34/50] [abbrv] incubator-tinkerpop git commit: Added nioPoolSize and parallelism settings to conf evaluator.

Added nioPoolSize and parallelism settings to conf evaluator.


Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/77957a3c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/77957a3c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/77957a3c

Branch: refs/heads/TINKERPOP3-666
Commit: 77957a3c2db10478a3f0c3ab17ff3b414df6ad50
Parents: 81d348d
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Sat May 9 06:11:01 2015 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Sat May 9 06:11:01 2015 -0400

----------------------------------------------------------------------
 .../driver/util/ConfigurationEvaluator.java     | 69 +++++++++++---------
 .../driver/util/ProfilingApplication.java       | 10 +--
 2 files changed, 43 insertions(+), 36 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/77957a3c/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/util/ConfigurationEvaluator.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/util/ConfigurationEvaluator.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/util/ConfigurationEvaluator.java
index a00d7d1..2640683 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/util/ConfigurationEvaluator.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/util/ConfigurationEvaluator.java
@@ -30,47 +30,55 @@ import java.util.stream.Stream;
 public class ConfigurationEvaluator {
 
     private final List<Integer> minConnectionPoolSizeRange = Arrays.asList(4,8,12,16,32,64,96,128,192,256,384,512);
-    private final List<Integer> maxConnectionPoolSizeRange = Arrays.asList(4,8,12,16,32,64,96,128,192,256,384,512);
+    private final List<Integer> maxConnectionPoolSizeRange = Arrays.asList(16,32,64,96,128,192,256,384,512);
     private final List<Integer> minSimultaneousUsagePerConnectionRange = Arrays.asList(4,8,16,24,32,64,96,128);
     private final List<Integer> maxSimultaneousUsagePerConnectionRange = Arrays.asList(4,8,16,24,32,64,96,128);
     private final List<Integer> minInProcessPerConnectionRange = Arrays.asList(2,4,8,16,32,64,96,128);
-    private final List<Integer> maxInProcessPerConnectionRange = Arrays.asList(4,8,16,32,64,96,128);
-    private final List<Integer> workerPoolSizeRange = Arrays.asList(2,3,4,8,16,32);
+    private final List<Integer> maxInProcessPerConnectionRange = Arrays.asList(16,32,64,96,128);
+    private final List<Integer> workerPoolSizeRange = Arrays.asList(1,2,3,4,8,16,32);
+    private final List<Integer> nioPoolSizeRange = Arrays.asList(1,2,4);
+    private final List<Integer> parallelismSizeRange = Arrays.asList(1,2,4,8,16);
 
     public Stream<String[]> generate(final String [] args) {
         final Set<Set<Integer>> configsTried = new HashSet<>();
 
         // get ready for the some serious brute-force action here
-        for (int it = 0; it < workerPoolSizeRange.size(); it++) {
-            for (int iu = 0; iu < minInProcessPerConnectionRange.size(); iu++) {
-                for (int iv = 0; iv < maxInProcessPerConnectionRange.size(); iv++) {
-                    for (int iw = 0; iw < minConnectionPoolSizeRange.size(); iw++) {
-                        for (int ix = 0; ix < maxConnectionPoolSizeRange.size(); ix++) {
-                            for (int iy = 0; iy < minSimultaneousUsagePerConnectionRange.size(); iy++) {
-                                for (int iz = 0; iz < maxSimultaneousUsagePerConnectionRange.size(); iz++) {
-                                    if (minConnectionPoolSizeRange.get(iw) <= maxConnectionPoolSizeRange.get(ix)
-                                            && minInProcessPerConnectionRange.get(iu) <= maxInProcessPerConnectionRange.get(iv)
-                                            && minSimultaneousUsagePerConnectionRange.get(iy) <= maxSimultaneousUsagePerConnectionRange.get(iz)
-                                            && maxSimultaneousUsagePerConnectionRange.get(iz) <= maxInProcessPerConnectionRange.get(iv)) {
-                                        final Set s = new HashSet(Arrays.asList(it, iu, iv, iw, ix, iy, iz));
-                                        if (!configsTried.contains(s)) {
-                                            final Object[] argsToProfiler =
-                                                    Stream.of("workerPoolSize", workerPoolSizeRange.get(it).toString(),
-                                                            "minInProcessPerConnection", minInProcessPerConnectionRange.get(iu).toString(),
-                                                            "maxInProcessPerConnection", maxInProcessPerConnectionRange.get(iv).toString(),
-                                                            "minConnectionPoolSize", minConnectionPoolSizeRange.get(iw).toString(),
-                                                            "maxConnectionPoolSize", maxConnectionPoolSizeRange.get(ix).toString(),
-                                                            "minSimultaneousUsagePerConnection", minSimultaneousUsagePerConnectionRange.get(iy).toString(),
-                                                            "maxSimultaneousUsagePerConnection", maxSimultaneousUsagePerConnectionRange.get(iz).toString(),
-                                                            "noExit", Boolean.TRUE.toString()).toArray();
+        for (int ir = 0; ir < nioPoolSizeRange.size(); ir++) {
+            for (int is = 0; is < parallelismSizeRange.size(); is++) {
+                for (int it = 0; it < workerPoolSizeRange.size(); it++) {
+                    for (int iu = 0; iu < minInProcessPerConnectionRange.size(); iu++) {
+                        for (int iv = 0; iv < maxInProcessPerConnectionRange.size(); iv++) {
+                            for (int iw = 0; iw < minConnectionPoolSizeRange.size(); iw++) {
+                                for (int ix = 0; ix < maxConnectionPoolSizeRange.size(); ix++) {
+                                    for (int iy = 0; iy < minSimultaneousUsagePerConnectionRange.size(); iy++) {
+                                        for (int iz = 0; iz < maxSimultaneousUsagePerConnectionRange.size(); iz++) {
+                                            if (minConnectionPoolSizeRange.get(iw) <= maxConnectionPoolSizeRange.get(ix)
+                                                    && minInProcessPerConnectionRange.get(iu) <= maxInProcessPerConnectionRange.get(iv)
+                                                    && minSimultaneousUsagePerConnectionRange.get(iy) <= maxSimultaneousUsagePerConnectionRange.get(iz)
+                                                    && maxSimultaneousUsagePerConnectionRange.get(iz) <= maxInProcessPerConnectionRange.get(iv)) {
+                                                final Set s = new HashSet(Arrays.asList(it, iu, iv, iw, ix, iy, iz));
+                                                if (!configsTried.contains(s)) {
+                                                    final Object[] argsToProfiler =
+                                                            Stream.of("nioPoolSize", nioPoolSizeRange.get(ir).toString(),
+                                                                    "parallelism", parallelismSizeRange.get(is).toString(),
+                                                                    "workerPoolSize", workerPoolSizeRange.get(it).toString(),
+                                                                    "minInProcessPerConnection", minInProcessPerConnectionRange.get(iu).toString(),
+                                                                    "maxInProcessPerConnection", maxInProcessPerConnectionRange.get(iv).toString(),
+                                                                    "minConnectionPoolSize", minConnectionPoolSizeRange.get(iw).toString(),
+                                                                    "maxConnectionPoolSize", maxConnectionPoolSizeRange.get(ix).toString(),
+                                                                    "minSimultaneousUsagePerConnection", minSimultaneousUsagePerConnectionRange.get(iy).toString(),
+                                                                    "maxSimultaneousUsagePerConnection", maxSimultaneousUsagePerConnectionRange.get(iz).toString(),
+                                                                    "noExit", Boolean.TRUE.toString()).toArray();
 
-                                            final Object[] withExtraArgs = args.length > 0 ? Stream.concat(Stream.of(args), Stream.of(argsToProfiler)).toArray() : argsToProfiler;
+                                                    final Object[] withExtraArgs = args.length > 0 ? Stream.concat(Stream.of(args), Stream.of(argsToProfiler)).toArray() : argsToProfiler;
 
-                                            final String[] stringProfilerArgs = Arrays.copyOf(withExtraArgs, withExtraArgs.length, String[].class);
-                                            System.out.println("Testing with: " + Arrays.toString(stringProfilerArgs));
-                                            ProfilingApplication.main(stringProfilerArgs);
+                                                    final String[] stringProfilerArgs = Arrays.copyOf(withExtraArgs, withExtraArgs.length, String[].class);
+                                                    System.out.println("Testing with: " + Arrays.toString(stringProfilerArgs));
+                                                    ProfilingApplication.main(stringProfilerArgs);
 
-                                            configsTried.add(s);
+                                                    configsTried.add(s);
+                                                }
+                                            }
                                         }
                                     }
                                 }
@@ -81,7 +89,6 @@ public class ConfigurationEvaluator {
             }
         }
 
-
         System.out.println(configsTried.size());
         return null;
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/77957a3c/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/util/ProfilingApplication.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/util/ProfilingApplication.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/util/ProfilingApplication.java
index 1c51f21..462e442 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/util/ProfilingApplication.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/util/ProfilingApplication.java
@@ -101,7 +101,7 @@ public class ProfilingApplication {
     public static void main(final String[] args) {
         final Map<String,Object> options = ElementHelper.asMap(args);
         final boolean noExit = Boolean.parseBoolean(options.getOrDefault("noExit", "false").toString());
-        final int parallelism = Integer.parseInt(options.getOrDefault("parallelism", "2").toString());
+        final int parallelism = Integer.parseInt(options.getOrDefault("parallelism", "16").toString());
         final BasicThreadFactory threadFactory = new BasicThreadFactory.Builder().namingPattern("profiler-%d").build();
         final ExecutorService executor = Executors.newFixedThreadPool(parallelism, threadFactory);
 
@@ -111,7 +111,7 @@ public class ProfilingApplication {
             final int timeout = Integer.parseInt(options.getOrDefault("timeout", "1200000").toString());
             final int warmups = Integer.parseInt(options.getOrDefault("warmups", "5").toString());
             final int executions = Integer.parseInt(options.getOrDefault("executions", "10").toString());
-            final int nioPoolSize = Integer.parseInt(options.getOrDefault("nioPoolSize", "2").toString());
+            final int nioPoolSize = Integer.parseInt(options.getOrDefault("nioPoolSize", "1").toString());
             final int requests = Integer.parseInt(options.getOrDefault("requests", "10000").toString());
             final int minConnectionPoolSize = Integer.parseInt(options.getOrDefault("minConnectionPoolSize", "256").toString());
             final int maxConnectionPoolSize = Integer.parseInt(options.getOrDefault("maxConnectionPoolSize", "256").toString());
@@ -119,7 +119,7 @@ public class ProfilingApplication {
             final int maxSimultaneousUsagePerConnection = Integer.parseInt(options.getOrDefault("maxSimultaneousUsagePerConnection", "32").toString());
             final int maxInProcessPerConnection = Integer.parseInt(options.getOrDefault("maxInProcessPerConnection", "64").toString());
             final int minInProcessPerConnection = Integer.parseInt(options.getOrDefault("minInProcessPerConnection", "16").toString());
-            final int workerPoolSize = Integer.parseInt(options.getOrDefault("workerPoolSize", "16").toString());
+            final int workerPoolSize = Integer.parseInt(options.getOrDefault("workerPoolSize", "2").toString());
 
             final Cluster cluster = Cluster.build(host)
                     .minConnectionPoolSize(minConnectionPoolSize)
@@ -135,7 +135,7 @@ public class ProfilingApplication {
             final File f = null == fileName ? null : new File(fileName.toString());
             if (f != null && f.length() == 0) {
                 try (final PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(f, true)))) {
-                    writer.println("nioPoolSize\tminConnectionPoolSize\tmaxConnectionPoolSize\tminSimultaneousUsagePerConnection\tmaxSimultaneousUsagePerConnection\tminInProcessPerConnection\tmaxInProcessPerConnection\tworkerPoolSize\trequestPerSecond");
+                    writer.println("parallelism\nioPoolSize\tminConnectionPoolSize\tmaxConnectionPoolSize\tminSimultaneousUsagePerConnection\tmaxSimultaneousUsagePerConnection\tminInProcessPerConnection\tmaxInProcessPerConnection\tworkerPoolSize\trequestPerSecond");
                 }
             }
 
@@ -166,7 +166,7 @@ public class ProfilingApplication {
             System.out.println(String.format("avg req/sec: %s", averageRequestPerSecond));
             if (f != null) {
                 try (final PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(f, true)))) {
-                    writer.println(String.join("\t", String.valueOf(nioPoolSize), String.valueOf(minConnectionPoolSize), String.valueOf(maxConnectionPoolSize), String.valueOf(minSimultaneousUsagePerConnection), String.valueOf(maxSimultaneousUsagePerConnection), String.valueOf(minInProcessPerConnection), String.valueOf(maxInProcessPerConnection), String.valueOf(workerPoolSize), String.valueOf(averageRequestPerSecond)));
+                    writer.println(String.join("\t", String.valueOf(parallelism), "\t", String.valueOf(nioPoolSize), String.valueOf(minConnectionPoolSize), String.valueOf(maxConnectionPoolSize), String.valueOf(minSimultaneousUsagePerConnection), String.valueOf(maxSimultaneousUsagePerConnection), String.valueOf(minInProcessPerConnection), String.valueOf(maxInProcessPerConnection), String.valueOf(workerPoolSize), String.valueOf(averageRequestPerSecond)));
                 }
             }