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 <[email protected]>
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 <[email protected]>
Integration-Tests: Jenkins <[email protected]>
Tested-by: Jenkins <[email protected]>
Reviewed-by: Ali Alsuliman <[email protected]>
---
.../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 {