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

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


The following commit(s) were added to refs/heads/master by this push:
     new 95bf1b6  [ASTERIXDB-2656] Remove frame constraint in HHJ probe
95bf1b6 is described below

commit 95bf1b695829ee790374e6d1002bbe0019bf33f5
Author: Shiva <shi...@uci.edu>
AuthorDate: Thu Oct 10 23:32:54 2019 -0700

    [ASTERIXDB-2656] Remove frame constraint in HHJ probe
    
    - user model changes: no
    - storage format changes: no
    - interface changes: no
    
    Details:
    During the probe phase, we should not have the 1-frame
    limit for spilled partitions. It wastes the memory and
    leads to flushing small objects directly to the disk as
    a large object.
    
    Change-Id: I7580ecbe7db36d018348cd82d3864ca6c2ff439d
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/3703
    Contrib: Jenkins <jenk...@fulliautomatix.ics.uci.edu>
    Integration-Tests: Jenkins <jenk...@fulliautomatix.ics.uci.edu>
    Tested-by: Jenkins <jenk...@fulliautomatix.ics.uci.edu>
    Reviewed-by: Ali Alsuliman <ali.al.solai...@gmail.com>
---
 .../dataflow/std/buffermanager/IPartitionedTupleBufferManager.java | 7 +++++++
 .../dataflow/std/buffermanager/VPartitionTupleBufferManager.java   | 7 ++++++-
 .../apache/hyracks/dataflow/std/join/OptimizedHybridHashJoin.java  | 1 +
 3 files changed, 14 insertions(+), 1 deletion(-)

diff --git 
a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/buffermanager/IPartitionedTupleBufferManager.java
 
b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/buffermanager/IPartitionedTupleBufferManager.java
index 6c08be2..b1605f3 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/buffermanager/IPartitionedTupleBufferManager.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/buffermanager/IPartitionedTupleBufferManager.java
@@ -80,6 +80,13 @@ public interface IPartitionedTupleBufferManager {
     void cancelInsertTuple(int partition) throws HyracksDataException;
 
     /**
+     * Sets the constrain.
+     * @param constrain
+     *              the constrain to be set.
+     */
+    void setConstrain(IPartitionedMemoryConstrain constrain);
+
+    /**
      * Reset to the initial states. The previous allocated resources won't be 
released in order to be used in the next round.
      *
      * @throws HyracksDataException
diff --git 
a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/buffermanager/VPartitionTupleBufferManager.java
 
b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/buffermanager/VPartitionTupleBufferManager.java
index 731e7ed..dfa2b45 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/buffermanager/VPartitionTupleBufferManager.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/buffermanager/VPartitionTupleBufferManager.java
@@ -51,7 +51,7 @@ public class VPartitionTupleBufferManager implements 
IPartitionedTupleBufferMana
     private final FixedSizeFrame appendFrame;
     private final FixedSizeFrameTupleAppender appender;
     private BufferInfo tempInfo;
-    private final IPartitionedMemoryConstrain constrain;
+    private IPartitionedMemoryConstrain constrain;
 
     // In case where a frame pool is shared by one or more buffer manager(s), 
it can be provided from the caller.
     public VPartitionTupleBufferManager(IPartitionedMemoryConstrain constrain, 
int partitions,
@@ -77,6 +77,11 @@ public class VPartitionTupleBufferManager implements 
IPartitionedTupleBufferMana
     }
 
     @Override
+    public void setConstrain(IPartitionedMemoryConstrain constrain) {
+        this.constrain = constrain;
+    }
+
+    @Override
     public void reset() throws HyracksDataException {
         for (IFrameBufferManager part : partitionArray) {
             if (part != null) {
diff --git 
a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/OptimizedHybridHashJoin.java
 
b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/OptimizedHybridHashJoin.java
index 7b6dcdb..6fb55ec 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/OptimizedHybridHashJoin.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/OptimizedHybridHashJoin.java
@@ -432,6 +432,7 @@ public class OptimizedHybridHashJoin {
 
     public void initProbe() {
         probePSizeInTups = new int[numOfPartitions];
+        bufferManager.setConstrain(VPartitionTupleBufferManager.NO_CONSTRAIN);
     }
 
     public void probe(ByteBuffer buffer, IFrameWriter writer) throws 
HyracksDataException {

Reply via email to