You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vxquery.apache.org by pr...@apache.org on 2014/08/21 08:24:41 UTC

[2/3] git commit: Added parameter to change join hash size.

Added parameter to change join hash size.


Project: http://git-wip-us.apache.org/repos/asf/vxquery/repo
Commit: http://git-wip-us.apache.org/repos/asf/vxquery/commit/6070c6cf
Tree: http://git-wip-us.apache.org/repos/asf/vxquery/tree/6070c6cf
Diff: http://git-wip-us.apache.org/repos/asf/vxquery/diff/6070c6cf

Branch: refs/heads/master
Commit: 6070c6cf57c8eb39b046b1fb4a56de4ee05676a5
Parents: 5ee0a43
Author: Preston Carman <pr...@apache.org>
Authored: Wed Aug 20 09:48:55 2014 -0700
Committer: Preston Carman <pr...@apache.org>
Committed: Wed Aug 20 23:23:12 2014 -0700

----------------------------------------------------------------------
 .../main/java/org/apache/vxquery/cli/VXQuery.java   | 16 ++++++++++------
 .../vxquery/xmlquery/query/XMLQueryCompiler.java    |  7 +++++--
 2 files changed, 15 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/vxquery/blob/6070c6cf/vxquery-cli/src/main/java/org/apache/vxquery/cli/VXQuery.java
----------------------------------------------------------------------
diff --git a/vxquery-cli/src/main/java/org/apache/vxquery/cli/VXQuery.java b/vxquery-cli/src/main/java/org/apache/vxquery/cli/VXQuery.java
index c513a72..8451bd5 100644
--- a/vxquery-cli/src/main/java/org/apache/vxquery/cli/VXQuery.java
+++ b/vxquery-cli/src/main/java/org/apache/vxquery/cli/VXQuery.java
@@ -125,10 +125,11 @@ public class VXQuery {
             timingMessage("Execution time: " + (end.getTime() - start.getTime()) + " ms");
             if (opts.repeatExec > opts.timingIgnoreQueries) {
                 long mean = sumTiming / (opts.repeatExec - opts.timingIgnoreQueries);
-                double sd = Math.sqrt(sumSquaredTiming / (opts.repeatExec - new Integer(opts.timingIgnoreQueries).doubleValue()) - mean * mean);
+                double sd = Math.sqrt(sumSquaredTiming
+                        / (opts.repeatExec - new Integer(opts.timingIgnoreQueries).doubleValue()) - mean * mean);
                 timingMessage("Average execution time: " + mean + " ms");
-                timingMessage("Standard deviation: " + String.format( "%.4f", sd));
-                timingMessage("Coefficient of variation: " + String.format( "%.4f", (sd / mean)));
+                timingMessage("Standard deviation: " + String.format("%.4f", sd));
+                timingMessage("Coefficient of variation: " + String.format("%.4f", (sd / mean)));
                 timingMessage("Minimum execution time: " + minTiming + " ms");
                 timingMessage("Maximum execution time: " + maxTiming + " ms");
             }
@@ -147,8 +148,8 @@ public class VXQuery {
      * @throws Exception
      */
     private void execute() throws Exception {
-        System.setProperty("vxquery.buffer_size",Integer.toString(opts.bufferSize));
-        
+        System.setProperty("vxquery.buffer_size", Integer.toString(opts.bufferSize));
+
         if (opts.clientNetIpAddress != null) {
             hcc = new HyracksConnection(opts.clientNetIpAddress, opts.clientNetPort);
             runQueries();
@@ -260,7 +261,7 @@ public class VXQuery {
 
             start = opts.timing ? new Date() : null;
             XMLQueryCompiler compiler = new XMLQueryCompiler(listener, getNodeList(), opts.frameSize,
-                    opts.availableProcessors);
+                    opts.availableProcessors, opts.joinHashSize);
             resultSetId = createResultSetId();
             CompilerControlBlock ccb = new CompilerControlBlock(new StaticContextImpl(RootStaticContextImpl.INSTANCE),
                     resultSetId, null);
@@ -447,6 +448,9 @@ public class VXQuery {
         @Option(name = "-frame-size", usage = "Frame size in bytes. (default 65536)")
         private int frameSize = 65536;
 
+        @Option(name = "-join-hash-size", usage = "Join hash size in bytes.")
+        private int joinHashSize = -1;
+
         @Option(name = "-buffer-size", usage = "Disk read buffer size in bytes.")
         private int bufferSize = -1;
 

http://git-wip-us.apache.org/repos/asf/vxquery/blob/6070c6cf/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/XMLQueryCompiler.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/XMLQueryCompiler.java b/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/XMLQueryCompiler.java
index 2fdfbea..966bd87 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/XMLQueryCompiler.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/xmlquery/query/XMLQueryCompiler.java
@@ -90,11 +90,11 @@ public class XMLQueryCompiler {
     private String[] nodeList;
 
     public XMLQueryCompiler(XQueryCompilationListener listener, String[] nodeList, int frameSize) {
-        this(listener, nodeList, frameSize, -1);
+        this(listener, nodeList, frameSize, -1, -1);
     }
 
     public XMLQueryCompiler(XQueryCompilationListener listener, String[] nodeList, int frameSize,
-            int availableProcessors) {
+            int availableProcessors, int joinHashSize) {
         this.listener = listener == null ? NoopXQueryCompilationListener.INSTANCE : listener;
         this.frameSize = frameSize;
         this.nodeList = nodeList;
@@ -112,6 +112,9 @@ public class XMLQueryCompiler {
                     }
                 });
         builder.getPhysicalOptimizationConfig().setFrameSize(this.frameSize);
+        if (joinHashSize > 0) {
+            builder.getPhysicalOptimizationConfig().setInMemHashJoinTableSize(joinHashSize);
+        }
         builder.setLogicalRewrites(buildDefaultLogicalRewrites());
         builder.setPhysicalRewrites(buildDefaultPhysicalRewrites());
         builder.setSerializerDeserializerProvider(new ISerializerDeserializerProvider() {