This is an automated email from the ASF dual-hosted git repository.

boaz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/drill.git


The following commit(s) were added to refs/heads/master by this push:
     new c29655c  DRILL-6435: MappingSet is stateful, so it can't be shared 
between threads
c29655c is described below

commit c29655cd1edb70abd559cdb917660efceb2f452a
Author: Vlad Rozov <[email protected]>
AuthorDate: Wed May 23 09:14:13 2018 -0700

    DRILL-6435: MappingSet is stateful, so it can't be shared between threads
---
 .../drill/exec/physical/impl/TopN/TopNBatch.java   |  6 ++---
 .../exec/physical/impl/join/MergeJoinBatch.java    | 10 ++++----
 .../physical/impl/join/NestedLoopJoinBatch.java    |  6 ++---
 .../MergingReceiverGeneratorBase.java              | 29 +++-------------------
 .../impl/mergereceiver/MergingRecordBatch.java     | 10 ++++----
 .../OrderedPartitionRecordBatch.java               |  6 ++---
 .../drill/exec/physical/impl/sort/SortBatch.java   |  6 ++---
 .../physical/impl/xsort/ExternalSortBatch.java     |  8 +++---
 .../impl/xsort/managed/BaseSortWrapper.java        |  6 ++---
 .../xsort/managed/PriorityQueueCopierWrapper.java  |  2 +-
 10 files changed, 34 insertions(+), 55 deletions(-)

diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/TopN/TopNBatch.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/TopN/TopNBatch.java
index 3929714..366e4e8 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/TopN/TopNBatch.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/TopN/TopNBatch.java
@@ -72,9 +72,9 @@ import com.sun.codemodel.JExpr;
 public class TopNBatch extends AbstractRecordBatch<TopN> {
   static final org.slf4j.Logger logger = 
org.slf4j.LoggerFactory.getLogger(TopNBatch.class);
 
-  public final MappingSet mainMapping = createMainMappingSet();
-  public final MappingSet leftMapping = createLeftMappingSet();
-  public final MappingSet rightMapping = createRightMappingSet();
+  private final MappingSet mainMapping = createMainMappingSet();
+  private final MappingSet leftMapping = createLeftMappingSet();
+  private final MappingSet rightMapping = createRightMappingSet();
 
   private final int batchPurgeThreshold;
   private final boolean codegenDump;
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java
index 9713b70..a5c2ae7 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java
@@ -73,23 +73,23 @@ public class MergeJoinBatch extends 
AbstractBinaryRecordBatch<MergeJoinPOP> {
 
   private static final org.slf4j.Logger logger = 
org.slf4j.LoggerFactory.getLogger(MergeJoinBatch.class);
 
-  public final MappingSet setupMapping =
+  private final MappingSet setupMapping =
     new MappingSet("null", "null",
       GM("doSetup", "doSetup", null, null),
       GM("doSetup", "doSetup", null, null));
-  public final MappingSet copyLeftMapping =
+  private final MappingSet copyLeftMapping =
     new MappingSet("leftIndex", "outIndex",
       GM("doSetup", "doSetup", null, null),
       GM("doSetup", "doCopyLeft", null, null));
-  public final MappingSet copyRightMappping =
+  private final MappingSet copyRightMappping =
     new MappingSet("rightIndex", "outIndex",
       GM("doSetup", "doSetup", null, null),
       GM("doSetup", "doCopyRight", null, null));
-  public final MappingSet compareMapping =
+  private final MappingSet compareMapping =
     new MappingSet("leftIndex", "rightIndex",
       GM("doSetup", "doSetup", null, null),
       GM("doSetup", "doCompare", null, null));
-  public final MappingSet compareRightMapping =
+  private final MappingSet compareRightMapping =
     new MappingSet("rightIndex", "null",
       GM("doSetup", "doSetup", null, null),
       GM("doSetup", "doCompare", null, null));
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/NestedLoopJoinBatch.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/NestedLoopJoinBatch.java
index 03bf58b..ae14fb3 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/NestedLoopJoinBatch.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/NestedLoopJoinBatch.java
@@ -111,17 +111,17 @@ public class NestedLoopJoinBatch extends 
AbstractBinaryRecordBatch<NestedLoopJoi
 
 
   // Mapping set for the right side
-  private static final MappingSet emitRightMapping =
+  private final MappingSet emitRightMapping =
       new MappingSet("rightCompositeIndex" /* read index */, "outIndex" /* 
write index */, "rightContainer" /* read container */,
           "outgoing" /* write container */, EMIT_RIGHT_CONSTANT, EMIT_RIGHT);
 
   // Mapping set for the left side
-  private static final MappingSet emitLeftMapping = new MappingSet("leftIndex" 
/* read index */, "outIndex" /* write index */,
+  private final MappingSet emitLeftMapping = new MappingSet("leftIndex" /* 
read index */, "outIndex" /* write index */,
       "leftBatch" /* read container */,
       "outgoing" /* write container */,
       EMIT_LEFT_CONSTANT, EMIT_LEFT);
 
-  private static final MappingSet SETUP_LEFT_MAPPING = new 
MappingSet("leftIndex" /* read index */, "outIndex" /* write index */,
+  private final MappingSet SETUP_LEFT_MAPPING = new MappingSet("leftIndex" /* 
read index */, "outIndex" /* write index */,
       "leftBatch" /* read container */,
       "outgoing" /* write container */,
       ClassGenerator.DEFAULT_CONSTANT_MAP, ClassGenerator.DEFAULT_SCALAR_MAP);
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/mergereceiver/MergingReceiverGeneratorBase.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/mergereceiver/MergingReceiverGeneratorBase.java
index 090ca58..a9cbfdf 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/mergereceiver/MergingReceiverGeneratorBase.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/mergereceiver/MergingReceiverGeneratorBase.java
@@ -17,36 +17,15 @@
  */
 package org.apache.drill.exec.physical.impl.mergereceiver;
 
-import static org.apache.drill.exec.compile.sig.GeneratorMapping.GM;
-
 import org.apache.drill.exec.compile.TemplateClassDefinition;
-import org.apache.drill.exec.compile.sig.MappingSet;
 import org.apache.drill.exec.exception.SchemaChangeException;
 import org.apache.drill.exec.ops.FragmentContext;
 import org.apache.drill.exec.record.VectorAccessible;
 
 public interface MergingReceiverGeneratorBase {
+  TemplateClassDefinition<MergingReceiverGeneratorBase> TEMPLATE_DEFINITION = 
new TemplateClassDefinition<>(MergingReceiverGeneratorBase.class, 
MergingReceiverTemplate.class);
 
-  public abstract void doSetup(FragmentContext context,
-                               VectorAccessible incoming,
-                               VectorAccessible outgoing) throws 
SchemaChangeException;
-
-  public abstract int doEval(int leftIndex,
-                                int rightIndex) throws SchemaChangeException;
-
-  public abstract void doCopy(int inIndex, int outIndex) throws 
SchemaChangeException;
-
-  public static TemplateClassDefinition<MergingReceiverGeneratorBase> 
TEMPLATE_DEFINITION =
-      new TemplateClassDefinition<>(MergingReceiverGeneratorBase.class, 
MergingReceiverTemplate.class);
-
-  public final MappingSet compareMapping =
-    new MappingSet("leftIndex", "rightIndex",
-      GM("doSetup", "doCompare", null, null),
-      GM("doSetup", "doCompare", null, null));
-
-  public final MappingSet copyMapping =
-    new MappingSet("inIndex", "outIndex",
-      GM("doSetup", "doCopy", null, null),
-      GM("doSetup", "doCopy", null, null));
-
+  void doSetup(FragmentContext context, VectorAccessible incoming, 
VectorAccessible outgoing) throws SchemaChangeException;
+  int doEval(int leftIndex, int rightIndex) throws SchemaChangeException;
+  void doCopy(int inIndex, int outIndex) throws SchemaChangeException;
 }
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/mergereceiver/MergingRecordBatch.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/mergereceiver/MergingRecordBatch.java
index 9087757..b9291cb 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/mergereceiver/MergingRecordBatch.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/mergereceiver/MergingRecordBatch.java
@@ -738,11 +738,11 @@ public class MergingRecordBatch extends 
AbstractRecordBatch<MergingReceiverPOP>
     }
   }
 
-  public final MappingSet MAIN_MAPPING = new MappingSet( (String) null, null, 
ClassGenerator.DEFAULT_SCALAR_MAP, ClassGenerator.DEFAULT_SCALAR_MAP);
-  public final MappingSet LEFT_MAPPING = new MappingSet("leftIndex", null, 
ClassGenerator.DEFAULT_SCALAR_MAP, ClassGenerator.DEFAULT_SCALAR_MAP);
-  public final MappingSet RIGHT_MAPPING = new MappingSet("rightIndex", null, 
ClassGenerator.DEFAULT_SCALAR_MAP, ClassGenerator.DEFAULT_SCALAR_MAP);
-  GeneratorMapping COPIER_MAPPING = new GeneratorMapping("doSetup", "doCopy", 
null, null);
-  public final MappingSet COPIER_MAPPING_SET = new MappingSet(COPIER_MAPPING, 
COPIER_MAPPING);
+  private final MappingSet MAIN_MAPPING = new MappingSet( (String) null, null, 
ClassGenerator.DEFAULT_SCALAR_MAP, ClassGenerator.DEFAULT_SCALAR_MAP);
+  private final MappingSet LEFT_MAPPING = new MappingSet("leftIndex", null, 
ClassGenerator.DEFAULT_SCALAR_MAP, ClassGenerator.DEFAULT_SCALAR_MAP);
+  private final MappingSet RIGHT_MAPPING = new MappingSet("rightIndex", null, 
ClassGenerator.DEFAULT_SCALAR_MAP, ClassGenerator.DEFAULT_SCALAR_MAP);
+  private GeneratorMapping COPIER_MAPPING = new GeneratorMapping("doSetup", 
"doCopy", null, null);
+  private final MappingSet COPIER_MAPPING_SET = new MappingSet(COPIER_MAPPING, 
COPIER_MAPPING);
 
   private void generateComparisons(final ClassGenerator<?> g, final 
VectorAccessible batch) throws SchemaChangeException {
     g.setMappingSet(MAIN_MAPPING);
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/orderedpartitioner/OrderedPartitionRecordBatch.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/orderedpartitioner/OrderedPartitionRecordBatch.java
index 9e82af8..8c5c0a4 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/orderedpartitioner/OrderedPartitionRecordBatch.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/orderedpartitioner/OrderedPartitionRecordBatch.java
@@ -101,11 +101,11 @@ public class OrderedPartitionRecordBatch extends 
AbstractRecordBatch<OrderedPart
       .mode(SerializationMode.DRILL_SERIALIZIABLE) //
       .build();
 
-  public final MappingSet mainMapping = new MappingSet( (String) null, null, 
ClassGenerator.DEFAULT_CONSTANT_MAP,
+  private final MappingSet mainMapping = new MappingSet( (String) null, null, 
ClassGenerator.DEFAULT_CONSTANT_MAP,
       ClassGenerator.DEFAULT_SCALAR_MAP);
-  public final MappingSet incomingMapping = new MappingSet("inIndex", null, 
"incoming", null,
+  private final MappingSet incomingMapping = new MappingSet("inIndex", null, 
"incoming", null,
       ClassGenerator.DEFAULT_CONSTANT_MAP, ClassGenerator.DEFAULT_SCALAR_MAP);
-  public final MappingSet partitionMapping = new MappingSet("partitionIndex", 
null, "partitionVectors", null,
+  private final MappingSet partitionMapping = new MappingSet("partitionIndex", 
null, "partitionVectors", null,
       ClassGenerator.DEFAULT_CONSTANT_MAP, ClassGenerator.DEFAULT_SCALAR_MAP);
 
   private final int recordsToSample; // How many records must be received 
before analyzing
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/sort/SortBatch.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/sort/SortBatch.java
index f38b62e..fc49d43 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/sort/SortBatch.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/sort/SortBatch.java
@@ -50,9 +50,9 @@ import com.sun.codemodel.JExpr;
 public class SortBatch extends AbstractRecordBatch<Sort> {
   private static final org.slf4j.Logger logger = 
org.slf4j.LoggerFactory.getLogger(SortBatch.class);
 
-  public final MappingSet mainMapping = new MappingSet( (String) null, null, 
ClassGenerator.DEFAULT_CONSTANT_MAP, ClassGenerator.DEFAULT_SCALAR_MAP);
-  public final MappingSet leftMapping = new MappingSet("leftIndex", null, 
ClassGenerator.DEFAULT_CONSTANT_MAP, ClassGenerator.DEFAULT_SCALAR_MAP);
-  public final MappingSet rightMapping = new MappingSet("rightIndex", null, 
ClassGenerator.DEFAULT_CONSTANT_MAP, ClassGenerator.DEFAULT_SCALAR_MAP);
+  private final MappingSet mainMapping = new MappingSet( (String) null, null, 
ClassGenerator.DEFAULT_CONSTANT_MAP, ClassGenerator.DEFAULT_SCALAR_MAP);
+  private final MappingSet leftMapping = new MappingSet("leftIndex", null, 
ClassGenerator.DEFAULT_CONSTANT_MAP, ClassGenerator.DEFAULT_SCALAR_MAP);
+  private final MappingSet rightMapping = new MappingSet("rightIndex", null, 
ClassGenerator.DEFAULT_CONSTANT_MAP, ClassGenerator.DEFAULT_SCALAR_MAP);
 
   private final RecordBatch incoming;
   private final SortRecordBatchBuilder builder;
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.java
index 9cde1a5..0f3f8a3 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.java
@@ -88,10 +88,10 @@ public class ExternalSortBatch extends 
AbstractRecordBatch<ExternalSort> {
   private static final ControlsInjector injector = 
ControlsInjectorFactory.getInjector(ExternalSortBatch.class);
 
   private static final GeneratorMapping COPIER_MAPPING = new 
GeneratorMapping("doSetup", "doCopy", null, null);
-  private static final MappingSet MAIN_MAPPING = new MappingSet( (String) 
null, null, ClassGenerator.DEFAULT_SCALAR_MAP, 
ClassGenerator.DEFAULT_SCALAR_MAP);
-  private static final MappingSet LEFT_MAPPING = new MappingSet("leftIndex", 
null, ClassGenerator.DEFAULT_SCALAR_MAP, ClassGenerator.DEFAULT_SCALAR_MAP);
-  private static final MappingSet RIGHT_MAPPING = new MappingSet("rightIndex", 
null, ClassGenerator.DEFAULT_SCALAR_MAP, ClassGenerator.DEFAULT_SCALAR_MAP);
-  private static final MappingSet COPIER_MAPPING_SET = new 
MappingSet(COPIER_MAPPING, COPIER_MAPPING);
+  private final MappingSet MAIN_MAPPING = new MappingSet( (String) null, null, 
ClassGenerator.DEFAULT_SCALAR_MAP, ClassGenerator.DEFAULT_SCALAR_MAP);
+  private final MappingSet LEFT_MAPPING = new MappingSet("leftIndex", null, 
ClassGenerator.DEFAULT_SCALAR_MAP, ClassGenerator.DEFAULT_SCALAR_MAP);
+  private final MappingSet RIGHT_MAPPING = new MappingSet("rightIndex", null, 
ClassGenerator.DEFAULT_SCALAR_MAP, ClassGenerator.DEFAULT_SCALAR_MAP);
+  private final MappingSet COPIER_MAPPING_SET = new MappingSet(COPIER_MAPPING, 
COPIER_MAPPING);
 
   private final int SPILL_BATCH_GROUP_SIZE;
   private final int SPILL_THRESHOLD;
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/xsort/managed/BaseSortWrapper.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/xsort/managed/BaseSortWrapper.java
index 338462e..d240080 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/xsort/managed/BaseSortWrapper.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/xsort/managed/BaseSortWrapper.java
@@ -41,9 +41,9 @@ import com.sun.codemodel.JExpr;
 
 public abstract class BaseSortWrapper extends BaseWrapper {
 
-  protected static final MappingSet MAIN_MAPPING = new MappingSet((String) 
null, null, ClassGenerator.DEFAULT_SCALAR_MAP, 
ClassGenerator.DEFAULT_SCALAR_MAP);
-  protected static final MappingSet LEFT_MAPPING = new MappingSet("leftIndex", 
null, ClassGenerator.DEFAULT_SCALAR_MAP, ClassGenerator.DEFAULT_SCALAR_MAP);
-  protected static final MappingSet RIGHT_MAPPING = new 
MappingSet("rightIndex", null, ClassGenerator.DEFAULT_SCALAR_MAP, 
ClassGenerator.DEFAULT_SCALAR_MAP);
+  protected final MappingSet MAIN_MAPPING = new MappingSet((String) null, 
null, ClassGenerator.DEFAULT_SCALAR_MAP, ClassGenerator.DEFAULT_SCALAR_MAP);
+  protected final MappingSet LEFT_MAPPING = new MappingSet("leftIndex", null, 
ClassGenerator.DEFAULT_SCALAR_MAP, ClassGenerator.DEFAULT_SCALAR_MAP);
+  protected final MappingSet RIGHT_MAPPING = new MappingSet("rightIndex", 
null, ClassGenerator.DEFAULT_SCALAR_MAP, ClassGenerator.DEFAULT_SCALAR_MAP);
 
   public BaseSortWrapper(OperatorContext opContext) {
     super(opContext);
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/xsort/managed/PriorityQueueCopierWrapper.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/xsort/managed/PriorityQueueCopierWrapper.java
index dda42a2..9e13923 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/xsort/managed/PriorityQueueCopierWrapper.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/xsort/managed/PriorityQueueCopierWrapper.java
@@ -56,7 +56,7 @@ public class PriorityQueueCopierWrapper extends 
BaseSortWrapper {
   private static final org.slf4j.Logger logger = 
org.slf4j.LoggerFactory.getLogger(PriorityQueueCopierWrapper.class);
 
   private static final GeneratorMapping COPIER_MAPPING = new 
GeneratorMapping("doSetup", "doCopy", null, null);
-  private static final MappingSet COPIER_MAPPING_SET = new 
MappingSet(COPIER_MAPPING, COPIER_MAPPING);
+  private final MappingSet COPIER_MAPPING_SET = new MappingSet(COPIER_MAPPING, 
COPIER_MAPPING);
 
   /**
    * A single PriorityQueueCopier instance is used for 2 purposes:

-- 
To stop receiving notification emails like this one, please contact
[email protected].

Reply via email to