You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2015/05/07 20:22:07 UTC
[07/10] incubator-tinkerpop git commit: Add configuration options for
"mins" to the ConfigurationEvaluator app.
Add configuration options for "mins" to the ConfigurationEvaluator app.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/dbeacfe7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/dbeacfe7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/dbeacfe7
Branch: refs/heads/master
Commit: dbeacfe7f26c375262af615548b3138fc7720dd8
Parents: 325b080
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu May 7 14:01:29 2015 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Thu May 7 14:01:29 2015 -0400
----------------------------------------------------------------------
.../gremlin/driver/ConnectionPool.java | 2 +-
.../driver/util/ConfigurationEvaluator.java | 62 ++++++++++++--------
.../driver/util/ProfilingApplication.java | 4 ++
3 files changed, 43 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/dbeacfe7/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ConnectionPool.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ConnectionPool.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ConnectionPool.java
index 3445114..839978f 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ConnectionPool.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/ConnectionPool.java
@@ -189,7 +189,7 @@ class ConnectionPool {
logger.debug("On {} pool size of {} > minPoolSize {} and borrowed of {} <= minSimultaneousUsagePerConnection {} so destroy {}",
host, poolSize, minPoolSize, borrowed, minSimultaneousUsagePerConnection, connection.getConnectionInfo());
destroyConnection(connection);
- } else if (connection.availableInProcess() < minInProcess) {
+ } else if (availableInProcess < minInProcess) {
if (logger.isDebugEnabled())
logger.debug("On {} availableInProcess {} < minInProcess {} so replace {}", host, availableInProcess, minInProcess, connection.getConnectionInfo());
replaceConnection(connection);
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/dbeacfe7/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 d445980..fbfd3dd 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
@@ -29,37 +29,50 @@ import java.util.stream.Stream;
*/
public class ConfigurationEvaluator {
- private final List<Integer> minConnectionPoolSizeRange = Arrays.asList(1,4,8,12,16,32,64,96,128,160,192,224,256,384,512);
- private final List<Integer> maxConnectionPoolSizeRange = Arrays.asList(4,8,12,16,32,64,96,128,160,192,224,256,384,512);
- private final List<Integer> maxSimultaneousUsagePerConnectionRange = Arrays.asList(2,3,4,5,8,16,24,32,64,96,128);
- private final List<Integer> maxInProcessPerConnectionRange = Arrays.asList(1,2,4,8,12,16,32,64,96,128);
+ private final List<Integer> minConnectionPoolSizeRange = Arrays.asList(1,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> minSimultaneousUsagePerConnectionRange = Arrays.asList(2,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(1,2,3,4,8,16,32);
public Stream<String[]> generate(final String [] args) {
final Set<Set<Integer>> configsTried = new HashSet<>();
- for (int iv = 0; iv < workerPoolSizeRange.size(); iv++) {
- for (int iw = 0; iw < maxInProcessPerConnectionRange.size(); iw++) {
- for (int ix = 0; ix < minConnectionPoolSizeRange.size(); ix++) {
- for (int iy = 0; iy < maxConnectionPoolSizeRange.size(); iy++) {
- for (int iz = 0; iz < maxSimultaneousUsagePerConnectionRange.size(); iz++) {
- if (minConnectionPoolSizeRange.get(ix) <= maxConnectionPoolSizeRange.get(iy)) {
- final Set s = new HashSet(Arrays.asList(iv, iw, ix, iy, iz));
- if (!configsTried.contains(s)) {
- final Object[] argsToProfiler =
- Stream.of("workerPoolSize", workerPoolSizeRange.get(iv).toString(),
- "maxInProcessPerConnection", maxInProcessPerConnectionRange.get(iw).toString(),
- "minConnectionPoolSize", minConnectionPoolSizeRange.get(ix).toString(),
- "maxConnectionPoolSize", maxConnectionPoolSizeRange.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;
+ // 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();
- final String[] stringProfilerArgs = Arrays.copyOf(withExtraArgs, withExtraArgs.length, String[].class);
- System.out.println("Testing with: " + Arrays.toString(stringProfilerArgs));
- ProfilingApplication.main(stringProfilerArgs);
+ final Object[] withExtraArgs = args.length > 0 ? Stream.concat(Stream.of(args), Stream.of(argsToProfiler)).toArray() : argsToProfiler;
- configsTried.add(s);
+ final String[] stringProfilerArgs = Arrays.copyOf(withExtraArgs, withExtraArgs.length, String[].class);
+ System.out.println("Testing with: " + Arrays.toString(stringProfilerArgs));
+ ProfilingApplication.main(stringProfilerArgs);
+
+ configsTried.add(s);
+ }
+ }
}
}
}
@@ -68,6 +81,7 @@ public class ConfigurationEvaluator {
}
}
+
System.out.println(configsTried.size());
return null;
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/dbeacfe7/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 fa1e8a8..10f77ed 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
@@ -139,14 +139,18 @@ public class ProfilingApplication {
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());
+ final int minSimultaneousUsagePerConnection = Integer.parseInt(options.getOrDefault("minSimultaneousUsagePerConnection", "8").toString());
final int maxSimultaneousUsagePerConnection = Integer.parseInt(options.getOrDefault("maxSimultaneousUsagePerConnection", "32").toString());
final int maxInProcessPerConnection = Integer.parseInt(options.getOrDefault("maxInProcessPerConnection", "8").toString());
+ final int minInProcessPerConnection = Integer.parseInt(options.getOrDefault("minInProcessPerConnection", "1").toString());
final int workerPoolSize = Integer.parseInt(options.getOrDefault("workerPoolSize", "4").toString());
final Cluster cluster = Cluster.build(host)
.minConnectionPoolSize(minConnectionPoolSize)
.maxConnectionPoolSize(maxConnectionPoolSize)
+ .minSimultaneousUsagePerConnection(minSimultaneousUsagePerConnection)
.maxSimultaneousUsagePerConnection(maxSimultaneousUsagePerConnection)
+ .minInProcessPerConnection(minInProcessPerConnection)
.maxInProcessPerConnection(maxInProcessPerConnection)
.nioPoolSize(clients)
.workerPoolSize(workerPoolSize).create();