You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu> on 2025/11/21 14:16:51 UTC
[L] Change in asterixdb[trinity]: WIP: delayed vsizeframe shrink
From Michael Blow <mb...@apache.org>:
Michael Blow has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20598?usp=email )
Change subject: WIP: delayed vsizeframe shrink
......................................................................
WIP: delayed vsizeframe shrink
Change-Id: I492d341e84675cca57cef937fcbf4851379981cf
---
M asterixdb/asterix-app/src/test/java/org/apache/asterix/app/bootstrap/TestNodeController.java
M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/ComponentRollbackTest.java
M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/ConcurrentInsertTest.java
M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/ConnectorDescriptorWithMessagingTest.java
M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/IoCallbackFailureTest.java
M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/LogMarkerTest.java
M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/SearchCursorComponentSwitchTest.java
M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/TransactionAbortTest.java
M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/logging/CheckpointingTest.java
M asterixdb/asterix-common/src/main/java/org/apache/asterix/common/dataflow/LSMInsertDeleteOperatorNodePushable.java
M asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/dataflow/TupleForwarder.java
M asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/dataset/adapter/LookupAdapter.java
M asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/dataflow/FrameSpiller.java
M asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/ExternalBTreeSearchOperatorNodePushable.java
M asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/ExternalRTreeSearchOperatorNodePushable.java
M asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedIntakeOperatorNodePushable.java
M asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedMetaComputeNodePushable.java
M asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedMetaStoreNodePushable.java
M asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedFrameUtil.java
M asterixdb/asterix-external-data/src/test/java/org/apache/asterix/external/feed/test/FeedSpillerUnitTest.java
M asterixdb/asterix-external-data/src/test/java/org/apache/asterix/external/feed/test/InputHandlerTest.java
M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryInsertOperatorNodePushable.java
M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryUpsertOperatorNodePushable.java
M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMSecondaryIndexCreationTupleProcessorNodePushable.java
M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/IntervalMergeJoiner.java
M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/RunFileStream.java
M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/spatial/SpatialJoiner.java
M asterixdb/asterix-runtime/src/test/java/org/apache/asterix/runtime/operators/LSMSecondaryIndexCreationTupleProcessorTest.java
M hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/aggreg/NestedPlansRunningAggregatorFactory.java
M hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/base/AbstractOneInputOneOutputOneFieldFramePushRuntime.java
M hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/base/AbstractOneInputOneOutputOneFramePushRuntime.java
M hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/std/EmptyTupleSourceRuntimeFactory.java
M hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/std/SplitOperatorDescriptor.java
M hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/std/SwitchOperatorDescriptor.java
M hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/win/WindowPartitionWriter.java
A hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/comm/DelayedShrinkVSizeFrame.java
M hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/comm/VSizeFrame.java
M hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/context/IHyracksFrameMgrContext.java
A hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/util/HyracksThrowingFunction.java
M hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/Joblet.java
M hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/Task.java
M hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/resources/memory/FrameManager.java
M hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/io/FrameDeserializingDataReader.java
M hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/io/SerializingDataWriter.java
M hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/base/AbstractReplicateOperatorDescriptor.java
M hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/collectors/SortMergeFrameReader.java
M hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/connectors/AbstractPartitionDataWriter.java
M hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/connectors/LocalityAwarePartitionDataWriter.java
M hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/file/DelimitedDataTupleParserFactory.java
M hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/group/HashSpillableTableFactory.java
M hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/group/external/ExternalGroupWriteOperatorNodePushable.java
M hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/group/preclustered/PreclusteredGroupWriter.java
M hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/intersect/IntersectOperatorDescriptor.java
M hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/InMemoryHashJoin.java
M hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/misc/ConstantTupleSourceOperatorNodePushable.java
M hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/misc/LimitOperatorDescriptor.java
M hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/misc/MaterializingOperatorDescriptor.java
M hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/result/ResultWriterOperatorDescriptor.java
M hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/AbstractExternalSortRunMerger.java
M hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/AbstractFrameSorter.java
M hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/TupleSorterHeapSort.java
M hyracks-fullstack/hyracks/hyracks-examples/btree-example/btreehelper/src/main/java/org/apache/hyracks/examples/btree/helper/DataGenOperatorDescriptor.java
M hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/comm/SerializationDeserializationTest.java
M hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/unit/RunMergingFrameReaderTest.java
M hyracks-fullstack/hyracks/hyracks-examples/text-example/texthelper/src/main/java/org/apache/hyracks/examples/text/WordTupleParserFactory.java
M hyracks-fullstack/hyracks/hyracks-hdfs/src/main/java/org/apache/hyracks/hdfs/lib/TextKeyValueParserFactory.java
M hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexInsertUpdateDeleteOperatorNodePushable.java
M hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexSearchOperatorNodePushable.java
M hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/TreeIndexDiskOrderScanOperatorNodePushable.java
M hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/TreeIndexStatsOperatorNodePushable.java
M hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/BinaryTokenizerOperatorNodePushable.java
M hyracks-fullstack/hyracks/hyracks-tests/hyracks-dataflow-common-test/src/test/java/org.apache.hyracks/dataflow/common/data/partition/range/AbstractFieldRangeMultiPartitionComputerFactoryTest.java
M hyracks-fullstack/hyracks/hyracks-tests/hyracks-dataflow-common-test/src/test/java/org.apache.hyracks/dataflow/common/io/RunFileTest.java
M hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-btree-test/src/test/java/org/apache/hyracks/storage/am/btree/BTreeStatsTest.java
M hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-btree-test/src/test/java/org/apache/hyracks/storage/am/btree/FieldPrefixNSMTest.java
M hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/Span.java
76 files changed, 277 insertions(+), 163 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/98/20598/1
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/bootstrap/TestNodeController.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/bootstrap/TestNodeController.java
index 34696b1..20626e7 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/bootstrap/TestNodeController.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/bootstrap/TestNodeController.java
@@ -75,7 +75,6 @@
import org.apache.hyracks.algebricks.runtime.operators.std.AssignRuntimeFactory;
import org.apache.hyracks.algebricks.runtime.operators.std.EmptyTupleSourceRuntimeFactory;
import org.apache.hyracks.api.comm.IFrameWriter;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.config.IOption;
import org.apache.hyracks.api.context.IHyracksJobletContext;
import org.apache.hyracks.api.context.IHyracksTaskContext;
@@ -595,7 +594,7 @@
throws HyracksDataException {
IHyracksTaskContext ctx = TestUtils.create(KB32, ExecutionTestUtil.integrationUtil.ncs[0].getIoManager());
if (withMessaging) {
- TaskUtil.put(HyracksConstants.KEY_MESSAGE, new VSizeFrame(ctx), ctx);
+ TaskUtil.put(HyracksConstants.KEY_MESSAGE, ctx.allocateVSizeFrame(), ctx);
}
IHyracksJobletContext jobletCtx = Mockito.mock(IHyracksJobletContext.class);
JobEventListenerFactory factory = new JobEventListenerFactory(new TxnId(jobId.getId()), true);
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/ComponentRollbackTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/ComponentRollbackTest.java
index f72a441..32906bb 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/ComponentRollbackTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/ComponentRollbackTest.java
@@ -125,7 +125,7 @@
StorageTestUtils.allowAllOps(lsmBtree);
insertOp.open();
RecordTupleGenerator tupleGenerator = StorageTestUtils.getTupleGenerator();
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
FrameTupleAppender tupleAppender = new FrameTupleAppender(frame);
for (int j = 0; j < StorageTestUtils.TOTAL_NUM_OF_RECORDS; j++) {
// flush every RECORDS_PER_COMPONENT records
@@ -193,7 +193,7 @@
StorageTestUtils.allowAllOps(lsmBtree);
insertOp.open();
RecordTupleGenerator tupleGenerator = StorageTestUtils.getTupleGenerator();
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
FrameTupleAppender tupleAppender = new FrameTupleAppender(frame);
for (int j = 0; j < StorageTestUtils.TOTAL_NUM_OF_RECORDS; j++) {
// flush every RECORDS_PER_COMPONENT records
@@ -275,7 +275,7 @@
lsmBtree.clearSearchCallbacks();
insertOp.open();
RecordTupleGenerator tupleGenerator = StorageTestUtils.getTupleGenerator();
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
FrameTupleAppender tupleAppender = new FrameTupleAppender(frame);
for (int j = 0; j < StorageTestUtils.TOTAL_NUM_OF_RECORDS; j++) {
// flush every RECORDS_PER_COMPONENT records
@@ -359,7 +359,7 @@
StorageTestUtils.allowAllOps(lsmBtree);
insertOp.open();
RecordTupleGenerator tupleGenerator = StorageTestUtils.getTupleGenerator();
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
FrameTupleAppender tupleAppender = new FrameTupleAppender(frame);
for (int j = 0; j < StorageTestUtils.TOTAL_NUM_OF_RECORDS; j++) {
// flush every RECORDS_PER_COMPONENT records
@@ -414,7 +414,7 @@
lsmBtree.clearMergeCallbacks();
insertOp.open();
RecordTupleGenerator tupleGenerator = StorageTestUtils.getTupleGenerator();
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
FrameTupleAppender tupleAppender = new FrameTupleAppender(frame);
for (int j = 0; j < StorageTestUtils.TOTAL_NUM_OF_RECORDS; j++) {
// flush every RECORDS_PER_COMPONENT records
@@ -477,7 +477,7 @@
StorageTestUtils.allowAllOps(lsmBtree);
insertOp.open();
RecordTupleGenerator tupleGenerator = StorageTestUtils.getTupleGenerator();
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
FrameTupleAppender tupleAppender = new FrameTupleAppender(frame);
for (int j = 0; j < StorageTestUtils.TOTAL_NUM_OF_RECORDS; j++) {
// flush every RECORDS_PER_COMPONENT records
@@ -536,7 +536,7 @@
StorageTestUtils.allowAllOps(lsmBtree);
insertOp.open();
RecordTupleGenerator tupleGenerator = StorageTestUtils.getTupleGenerator();
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
FrameTupleAppender tupleAppender = new FrameTupleAppender(frame);
for (int j = 0; j < StorageTestUtils.TOTAL_NUM_OF_RECORDS; j++) {
// flush every RECORDS_PER_COMPONENT records
@@ -597,7 +597,7 @@
lsmBtree.clearMergeCallbacks();
insertOp.open();
RecordTupleGenerator tupleGenerator = StorageTestUtils.getTupleGenerator();
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
FrameTupleAppender tupleAppender = new FrameTupleAppender(frame);
for (int j = 0; j < StorageTestUtils.TOTAL_NUM_OF_RECORDS; j++) {
// flush every RECORDS_PER_COMPONENT records
@@ -667,7 +667,7 @@
lsmBtree.clearMergeCallbacks();
insertOp.open();
RecordTupleGenerator tupleGenerator = StorageTestUtils.getTupleGenerator();
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
FrameTupleAppender tupleAppender = new FrameTupleAppender(frame);
for (int j = 0; j < StorageTestUtils.TOTAL_NUM_OF_RECORDS; j++) {
// flush every RECORDS_PER_COMPONENT records
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/ConcurrentInsertTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/ConcurrentInsertTest.java
index e99e5d6..45acf21 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/ConcurrentInsertTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/ConcurrentInsertTest.java
@@ -206,7 +206,7 @@
StorageTestUtils.allowAllOps(primaryKeyIndex);
StorageTestUtils.allowAllOps(secondaryIndex);
insertOp.open();
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
FrameTupleAppender tupleAppender = new FrameTupleAppender(frame);
ITupleReference tuple = null;
RecordTupleGenerator tupleGenerator = StorageTestUtils.getTupleGenerator();
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/ConnectorDescriptorWithMessagingTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/ConnectorDescriptorWithMessagingTest.java
index 060245a..52705fa 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/ConnectorDescriptorWithMessagingTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/ConnectorDescriptorWithMessagingTest.java
@@ -72,8 +72,8 @@
MToNPartitioningWithMessageConnectorDescriptor connector =
new MToNPartitioningWithMessageConnectorDescriptor(connDescRegistry, partitionComputerFactory);
IHyracksTaskContext ctx = TestUtils.create(DEFAULT_FRAME_SIZE);
- VSizeFrame message = new VSizeFrame(ctx);
- VSizeFrame tempBuffer = new VSizeFrame(ctx);
+ VSizeFrame message = ctx.allocateVSizeFrame();
+ VSizeFrame tempBuffer = ctx.allocateVSizeFrame();
TaskUtil.put(HyracksConstants.KEY_MESSAGE, message, ctx);
message.getBuffer().clear();
message.getBuffer().put(MessagingFrameTupleAppender.NULL_FEED_MESSAGE);
@@ -153,8 +153,8 @@
MToNPartitioningWithMessageConnectorDescriptor connector =
new MToNPartitioningWithMessageConnectorDescriptor(connDescRegistry, partitionComputerFactory);
IHyracksTaskContext ctx = TestUtils.create(DEFAULT_FRAME_SIZE);
- VSizeFrame message = new VSizeFrame(ctx);
- VSizeFrame tempBuffer = new VSizeFrame(ctx);
+ VSizeFrame message = ctx.allocateVSizeFrame();
+ VSizeFrame tempBuffer = ctx.allocateVSizeFrame();
TaskUtil.put(HyracksConstants.KEY_MESSAGE, message, ctx);
writeRandomMessage(message, MessagingFrameTupleAppender.MARKER_MESSAGE, DEFAULT_FRAME_SIZE + 1);
ISerializerDeserializer<?>[] serdes = new ISerializerDeserializer<?>[] {
@@ -238,8 +238,8 @@
MToNPartitioningWithMessageConnectorDescriptor connector =
new MToNPartitioningWithMessageConnectorDescriptor(connDescRegistry, partitionComputerFactory);
IHyracksTaskContext ctx = TestUtils.create(DEFAULT_FRAME_SIZE);
- VSizeFrame message = new VSizeFrame(ctx);
- VSizeFrame tempBuffer = new VSizeFrame(ctx);
+ VSizeFrame message = ctx.allocateVSizeFrame();
+ VSizeFrame tempBuffer = ctx.allocateVSizeFrame();
TaskUtil.put(HyracksConstants.KEY_MESSAGE, message, ctx);
message.getBuffer().clear();
writeRandomMessage(message, MessagingFrameTupleAppender.MARKER_MESSAGE, DEFAULT_FRAME_SIZE);
@@ -259,7 +259,7 @@
recipients.add(partitionWriterFactory.getWriters().get(i));
}
TestTupleGenerator ttg = new TestTupleGenerator(types, STRING_FIELD_SIZES, true);
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
FrameTupleAppender appender = new FrameTupleAppender(frame);
ITupleReference tuple = ttg.next();
while (appender.append(tuple)) {
@@ -296,8 +296,8 @@
MToNPartitioningWithMessageConnectorDescriptor connector =
new MToNPartitioningWithMessageConnectorDescriptor(connDescRegistry, partitionComputerFactory);
IHyracksTaskContext ctx = TestUtils.create(DEFAULT_FRAME_SIZE);
- VSizeFrame message = new VSizeFrame(ctx);
- VSizeFrame tempBuffer = new VSizeFrame(ctx);
+ VSizeFrame message = ctx.allocateVSizeFrame();
+ VSizeFrame tempBuffer = ctx.allocateVSizeFrame();
TaskUtil.put(HyracksConstants.KEY_MESSAGE, message, ctx);
message.getBuffer().clear();
message.getBuffer().put(MessagingFrameTupleAppender.ACK_REQ_FEED_MESSAGE);
@@ -318,7 +318,7 @@
recipients.add(partitionWriterFactory.getWriters().get(i));
}
TestTupleGenerator ttg = new TestTupleGenerator(types, STRING_FIELD_SIZES, true);
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
FrameTupleAppender appender = new FrameTupleAppender(frame);
for (int count = 0; count < NUMBER_OF_CONSUMERS; count++) {
ITupleReference tuple = ttg.next();
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/IoCallbackFailureTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/IoCallbackFailureTest.java
index c167b0f1..f3626a2 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/IoCallbackFailureTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/IoCallbackFailureTest.java
@@ -125,7 +125,7 @@
try {
try {
insertOp.open();
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
FrameTupleAppender tupleAppender = new FrameTupleAppender(frame);
for (int j = 0; j < totalNumRecords; j++) {
// flush every recordsPerComponent records
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/LogMarkerTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/LogMarkerTest.java
index 0de0539..63db259 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/LogMarkerTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/LogMarkerTest.java
@@ -123,8 +123,8 @@
RecordTupleGenerator tupleGenerator =
new RecordTupleGenerator(RECORD_TYPE, META_TYPE, KEY_INDEXES, KEY_INDICATORS,
RECORD_GEN_FUNCTION, UNIQUE_RECORD_FIELDS, META_GEN_FUNCTION, UNIQUE_META_FIELDS);
- VSizeFrame frame = new VSizeFrame(ctx);
- VSizeFrame marker = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
+ VSizeFrame marker = ctx.allocateVSizeFrame();
FrameTupleAppender tupleAppender = new FrameTupleAppender(frame);
long markerId = 0L;
for (int j = 0; j < NUM_OF_RECORDS; j++) {
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/SearchCursorComponentSwitchTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/SearchCursorComponentSwitchTest.java
index c5292d3..5eeb448 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/SearchCursorComponentSwitchTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/SearchCursorComponentSwitchTest.java
@@ -178,7 +178,7 @@
insertOp.open();
RecordTupleGenerator tupleGenerator = new RecordTupleGenerator(RECORD_TYPE, META_TYPE, KEY_INDEXES,
KEY_INDICATORS, RECORD_GEN_FUNCTION, UNIQUE_RECORD_FIELDS, META_GEN_FUNCTION, UNIQUE_META_FIELDS);
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
FrameTupleAppender tupleAppender = new FrameTupleAppender(frame);
Searcher firstSearcher = null;
for (int j = 0; j < TOTAL_NUM_OF_RECORDS; j++) {
@@ -221,7 +221,7 @@
lsmBtree.clearSearchCallbacks();
RecordTupleGenerator tupleGenerator = new RecordTupleGenerator(RECORD_TYPE, META_TYPE, KEY_INDEXES,
KEY_INDICATORS, RECORD_GEN_FUNCTION, UNIQUE_RECORD_FIELDS, META_GEN_FUNCTION, UNIQUE_META_FIELDS);
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
FrameTupleAppender tupleAppender = new FrameTupleAppender(frame);
int totalNumRecords = LSMIndexSearchCursor.SWITCH_COMPONENT_CYCLE + 2;
ITupleReference[] upsertTuples = new ITupleReference[totalNumRecords];
@@ -281,7 +281,7 @@
insertOp.open();
RecordTupleGenerator tupleGenerator = new RecordTupleGenerator(RECORD_TYPE, META_TYPE, KEY_INDEXES,
KEY_INDICATORS, RECORD_GEN_FUNCTION, UNIQUE_RECORD_FIELDS, META_GEN_FUNCTION, UNIQUE_META_FIELDS);
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
FrameTupleAppender tupleAppender = new FrameTupleAppender(frame);
Searcher firstSearcher = null;
for (int j = 0; j < TOTAL_NUM_OF_RECORDS; j++) {
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/TransactionAbortTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/TransactionAbortTest.java
index bd84d54..2b31c80 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/TransactionAbortTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/TransactionAbortTest.java
@@ -156,7 +156,7 @@
private ITupleReference insertRecords(int numRecords) throws Exception {
StorageTestUtils.allowAllOps(lsmBtree);
insertOp.open();
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
FrameTupleAppender tupleAppender = new FrameTupleAppender(frame);
ITupleReference tuple = null;
for (int i = 0; i < numRecords; i++) {
@@ -175,7 +175,7 @@
setFailModificationCallback(lsmBtree);
abortOp.open();
boolean aborted = false;
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
FrameTupleAppender tupleAppender = new FrameTupleAppender(frame);
try {
DataflowUtils.addTupleToFrame(tupleAppender, tuple, abortOp);
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/logging/CheckpointingTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/logging/CheckpointingTest.java
index 4a87629..07a6c0a 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/logging/CheckpointingTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/logging/CheckpointingTest.java
@@ -126,7 +126,7 @@
RecordTupleGenerator tupleGenerator =
new RecordTupleGenerator(RECORD_TYPE, META_TYPE, KEY_INDEXES, KEY_INDICATOR,
RECORD_GEN_FUNCTION, UNIQUE_RECORD_FIELDS, META_GEN_FUNCTION, UNIQUE_META_FIELDS);
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
FrameTupleAppender tupleAppender = new FrameTupleAppender(frame);
RecoveryManager recoveryManager = (RecoveryManager) nc.getTransactionSubsystem().getRecoveryManager();
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/dataflow/LSMInsertDeleteOperatorNodePushable.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/dataflow/LSMInsertDeleteOperatorNodePushable.java
index ab0732b..2de47bb 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/dataflow/LSMInsertDeleteOperatorNodePushable.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/dataflow/LSMInsertDeleteOperatorNodePushable.java
@@ -23,7 +23,6 @@
import org.apache.asterix.common.api.INcApplicationContext;
import org.apache.asterix.common.transactions.ILogMarkerCallback;
import org.apache.asterix.common.transactions.PrimaryIndexLogMarkerCallback;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.value.RecordDescriptor;
import org.apache.hyracks.api.exceptions.ErrorCode;
@@ -85,7 +84,7 @@
lastFlushedTupleIdx = 0;
flushedPartialTuples = false;
accessor = new FrameTupleAccessor(inputRecDesc);
- writeBuffer = new VSizeFrame(ctx);
+ writeBuffer = ctx.allocateVSizeFrame();
appender = new FrameTupleAppender(writeBuffer);
indexHelper.open();
lsmIndex = (AbstractLSMIndex) indexHelper.getIndexInstance();
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/dataflow/TupleForwarder.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/dataflow/TupleForwarder.java
index afb00b0..2e5cd0c 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/dataflow/TupleForwarder.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/dataflow/TupleForwarder.java
@@ -21,7 +21,6 @@
import org.apache.asterix.external.util.DataflowUtils;
import org.apache.hyracks.api.comm.IFrame;
import org.apache.hyracks.api.comm.IFrameWriter;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.dataflow.common.comm.io.ArrayTupleBuilder;
@@ -34,7 +33,7 @@
private final IFrameWriter writer;
public TupleForwarder(IHyracksTaskContext ctx, IFrameWriter writer) throws HyracksDataException {
- this.frame = new VSizeFrame(ctx);
+ this.frame = ctx.allocateVSizeFrame();
this.writer = writer;
this.appender = new FrameTupleAppender(frame);
}
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/dataset/adapter/LookupAdapter.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/dataset/adapter/LookupAdapter.java
index 5700f9d..07196da 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/dataset/adapter/LookupAdapter.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/dataset/adapter/LookupAdapter.java
@@ -29,7 +29,6 @@
import org.apache.asterix.external.indexing.RecordIdReader;
import org.apache.asterix.external.util.DataflowUtils;
import org.apache.hyracks.api.comm.IFrameWriter;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.value.IMissingWriter;
import org.apache.hyracks.api.dataflow.value.IMissingWriterFactory;
@@ -66,7 +65,7 @@
this.ridReader = ridReader;
ridReader.set(tupleAccessor, inRecDesc);
configurePropagation(iNullWriterFactory);
- appender = new FrameTupleAppender(new VSizeFrame(ctx));
+ appender = new FrameTupleAppender(ctx.allocateVSizeFrame());
this.writer = writer;
}
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/dataflow/FrameSpiller.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/dataflow/FrameSpiller.java
index c3aa36f..b60bfa3 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/dataflow/FrameSpiller.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/dataflow/FrameSpiller.java
@@ -63,7 +63,7 @@
public FrameSpiller(IHyracksTaskContext ctx, String fileNamePrefix, long budgetInBytes)
throws HyracksDataException {
- this.frame = new VSizeFrame(ctx);
+ this.frame = ctx.allocateVSizeFrame();
this.fileNamePrefix = fileNamePrefix;
this.budget = (int) Math.min(budgetInBytes / ctx.getInitialFrameSize(), Integer.MAX_VALUE);
if (budget <= 0) {
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/ExternalBTreeSearchOperatorNodePushable.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/ExternalBTreeSearchOperatorNodePushable.java
index 4e669c3..f657366 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/ExternalBTreeSearchOperatorNodePushable.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/ExternalBTreeSearchOperatorNodePushable.java
@@ -21,7 +21,6 @@
import java.io.DataOutput;
import java.io.IOException;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.value.IMissingWriterFactory;
import org.apache.hyracks.api.dataflow.value.RecordDescriptor;
@@ -78,7 +77,7 @@
searchPred = createSearchPredicate();
tb = new ArrayTupleBuilder(recordDesc.getFieldCount());
dos = tb.getDataOutput();
- appender = new FrameTupleAppender(new VSizeFrame(ctx));
+ appender = new FrameTupleAppender(ctx.allocateVSizeFrame());
ISearchOperationCallback searchCallback =
searchCallbackFactory.createSearchOperationCallback(indexHelper.getResource().getId(), ctx, null);
// The next line is the reason we override this method
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/ExternalRTreeSearchOperatorNodePushable.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/ExternalRTreeSearchOperatorNodePushable.java
index 508cff7..1844452 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/ExternalRTreeSearchOperatorNodePushable.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/ExternalRTreeSearchOperatorNodePushable.java
@@ -21,7 +21,6 @@
import java.io.DataOutput;
import java.io.IOException;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.value.IMissingWriterFactory;
import org.apache.hyracks.api.dataflow.value.RecordDescriptor;
@@ -77,7 +76,7 @@
searchPred = createSearchPredicate();
tb = new ArrayTupleBuilder(recordDesc.getFieldCount());
dos = tb.getDataOutput();
- appender = new FrameTupleAppender(new VSizeFrame(ctx));
+ appender = new FrameTupleAppender(ctx.allocateVSizeFrame());
ISearchOperationCallback searchCallback =
searchCallbackFactory.createSearchOperationCallback(indexHelper.getResource().getId(), ctx, null);
// The next line is the reason we override this method...
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedIntakeOperatorNodePushable.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedIntakeOperatorNodePushable.java
index e1ba399..b9be6f9 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedIntakeOperatorNodePushable.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedIntakeOperatorNodePushable.java
@@ -26,7 +26,6 @@
import org.apache.asterix.external.api.ITypedAdapterFactory;
import org.apache.asterix.external.dataset.adapter.FeedAdapter;
import org.apache.hyracks.api.comm.IFrame;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.value.IRecordDescriptorProvider;
import org.apache.hyracks.api.exceptions.ErrorCode;
@@ -76,7 +75,7 @@
* One use case is adapters which consume data sources that allow restartability. Such adapters
* can propagate progress information through the ingestion pipeline to storage nodes
*/
- IFrame message = new VSizeFrame(ctx);
+ IFrame message = ctx.allocateVSizeFrame();
TaskUtil.put(HyracksConstants.KEY_MESSAGE, message, ctx);
message.getBuffer().put(MessagingFrameTupleAppender.NULL_FEED_MESSAGE);
message.getBuffer().flip();
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedMetaComputeNodePushable.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedMetaComputeNodePushable.java
index 6d95d26..109eab1 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedMetaComputeNodePushable.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedMetaComputeNodePushable.java
@@ -106,7 +106,7 @@
this.connectionId = feedConnectionId;
this.feedManager = (ActiveManager) ((INcApplicationContext) ctx.getJobletContext().getServiceContext()
.getApplicationContext()).getActiveManager();
- this.message = new VSizeFrame(ctx);
+ this.message = ctx.allocateVSizeFrame();
TaskUtil.put(HyracksConstants.KEY_MESSAGE, message, ctx);
this.opDesc = feedMetaOperatorDescriptor;
this.recordDescProvider = recordDescProvider;
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedMetaStoreNodePushable.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedMetaStoreNodePushable.java
index 7bc3b4f..b9ee07e 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedMetaStoreNodePushable.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedMetaStoreNodePushable.java
@@ -117,7 +117,7 @@
this.feedManager = (ActiveManager) ((INcApplicationContext) ctx.getJobletContext().getServiceContext()
.getApplicationContext()).getActiveManager();
if (hasMessage) {
- this.message = new VSizeFrame(ctx);
+ this.message = ctx.allocateVSizeFrame();
TaskUtil.put(HyracksConstants.KEY_MESSAGE, message, ctx);
} else {
this.message = null;
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedFrameUtil.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedFrameUtil.java
index a2bdd64..050d7af 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedFrameUtil.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/FeedFrameUtil.java
@@ -23,7 +23,6 @@
import java.util.Random;
import org.apache.hyracks.api.comm.IFrame;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.dataflow.common.comm.io.FrameTupleAccessor;
@@ -33,7 +32,7 @@
public static ByteBuffer removeBadTuple(IHyracksTaskContext ctx, int tupleIndex, FrameTupleAccessor fta)
throws HyracksDataException {
FrameTupleAppender appender = new FrameTupleAppender();
- IFrame slicedFrame = new VSizeFrame(ctx);
+ IFrame slicedFrame = ctx.allocateVSizeFrame();
appender.reset(slicedFrame, true);
int totalTuples = fta.getTupleCount();
for (int ti = 0; ti < totalTuples; ti++) {
@@ -48,7 +47,7 @@
throws HyracksDataException {
NChooseKIterator it = new NChooseKIterator(fta.getTupleCount(), sampleSize);
FrameTupleAppender appender = new FrameTupleAppender();
- IFrame sampledFrame = new VSizeFrame(ctx);
+ IFrame sampledFrame = ctx.allocateVSizeFrame();
appender.reset(sampledFrame, true);
int nextTupleIndex = 0;
while (it.hasNext()) {
diff --git a/asterixdb/asterix-external-data/src/test/java/org/apache/asterix/external/feed/test/FeedSpillerUnitTest.java b/asterixdb/asterix-external-data/src/test/java/org/apache/asterix/external/feed/test/FeedSpillerUnitTest.java
index 31e49a7..21ad77b 100644
--- a/asterixdb/asterix-external-data/src/test/java/org/apache/asterix/external/feed/test/FeedSpillerUnitTest.java
+++ b/asterixdb/asterix-external-data/src/test/java/org/apache/asterix/external/feed/test/FeedSpillerUnitTest.java
@@ -97,7 +97,7 @@
FrameSpiller spiller = new FrameSpiller(ctx, TEST_DATAVERSE + "_" + TEST_FEED + "_" + TEST_DATASET,
new Long(NUM_FRAMES * DEFAULT_FRAME_SIZE));
spiller.open();
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
spiller.spill(frame.getBuffer());
Assert.assertEquals(1, spiller.remaining());
Assert.assertEquals(1, countSpillFiles());
@@ -146,7 +146,7 @@
FrameSpiller spiller = new FrameSpiller(ctx, TEST_DATAVERSE + "_" + TEST_FEED + "_" + TEST_DATASET,
new Long(NUM_FRAMES * DEFAULT_FRAME_SIZE));
spiller.open();
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
for (int i = 0; i < 1047; i++) {
spiller.spill(frame.getBuffer());
}
diff --git a/asterixdb/asterix-external-data/src/test/java/org/apache/asterix/external/feed/test/InputHandlerTest.java b/asterixdb/asterix-external-data/src/test/java/org/apache/asterix/external/feed/test/InputHandlerTest.java
index 30d3266..44dba14 100644
--- a/asterixdb/asterix-external-data/src/test/java/org/apache/asterix/external/feed/test/InputHandlerTest.java
+++ b/asterixdb/asterix-external-data/src/test/java/org/apache/asterix/external/feed/test/InputHandlerTest.java
@@ -184,7 +184,7 @@
ConcurrentFramePool framePool = new ConcurrentFramePool(NODE_ID, 0, DEFAULT_FRAME_SIZE);
FeedRuntimeInputHandler handler = createInputHandler(ctx, writer, fpa, framePool);
handler.open();
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
handler.nextFrame(frame.getBuffer());
Assert.assertEquals(0, handler.getNumProcessedInMemory());
Assert.assertEquals(1, handler.getNumSpilled());
@@ -343,7 +343,7 @@
new ConcurrentFramePool(NODE_ID, numberOfMemoryFrames * DEFAULT_FRAME_SIZE, DEFAULT_FRAME_SIZE);
FeedRuntimeInputHandler handler = createInputHandler(ctx, writer, fpa, framePool);
handler.open();
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
for (int i = 0; i < numberOfMemoryFrames; i++) {
handler.nextFrame(frame.getBuffer());
}
@@ -478,7 +478,7 @@
new ConcurrentFramePool(NODE_ID, discardTestFrames * DEFAULT_FRAME_SIZE, DEFAULT_FRAME_SIZE);
FeedRuntimeInputHandler handler = createInputHandler(ctx, writer, fpa, framePool);
handler.open();
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
// add NUM_FRAMES times
for (int i = 0; i < discardTestFrames; i++) {
handler.nextFrame(frame.getBuffer());
@@ -534,7 +534,7 @@
ConcurrentFramePool framePool = new ConcurrentFramePool(NODE_ID, FEED_MEM_BUDGET, DEFAULT_FRAME_SIZE);
FeedRuntimeInputHandler handler = createInputHandler(ctx, writer, fpa, framePool);
handler.open();
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
// add NUM_FRAMES times
for (int i = 0; i < NUM_FRAMES; i++) {
handler.nextFrame(frame.getBuffer());
@@ -578,7 +578,7 @@
ConcurrentFramePool framePool = new ConcurrentFramePool(NODE_ID, FEED_MEM_BUDGET, DEFAULT_FRAME_SIZE);
FeedRuntimeInputHandler handler = createInputHandler(ctx, writer, fpa, framePool);
handler.open();
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
// add NUM_FRAMES times
for (int i = 0; i < NUM_FRAMES * numRounds; i++) {
handler.nextFrame(frame.getBuffer());
@@ -619,7 +619,7 @@
ConcurrentFramePool framePool = new ConcurrentFramePool(NODE_ID, FEED_MEM_BUDGET, DEFAULT_FRAME_SIZE);
FeedRuntimeInputHandler handler = createInputHandler(ctx, writer, fpa, framePool);
handler.open();
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
writer.setNextDuration(1);
// add NUM_FRAMES times
for (int i = 0; i < NUM_FRAMES * numRounds; i++) {
@@ -766,7 +766,7 @@
FeedRuntimeInputHandler handler = createInputHandler(ctx, writer, fpa, framePool);
handler.open();
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
// add NUM_FRAMES times
for (int i = 0; i < NUM_FRAMES; i++) {
handler.nextFrame(frame.getBuffer());
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryInsertOperatorNodePushable.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryInsertOperatorNodePushable.java
index 5c87994..1d56803 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryInsertOperatorNodePushable.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryInsertOperatorNodePushable.java
@@ -28,7 +28,6 @@
import org.apache.asterix.common.transactions.ILogMarkerCallback;
import org.apache.asterix.common.transactions.PrimaryIndexLogMarkerCallback;
import org.apache.asterix.transaction.management.opcallbacks.LockThenSearchOperationCallback;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.value.RecordDescriptor;
import org.apache.hyracks.api.exceptions.ErrorCode;
@@ -183,7 +182,7 @@
lastFlushedTupleIdx = 0;
flushedPartialTuples = false;
accessor = new FrameTupleAccessor(inputRecDesc);
- writeBuffer = new VSizeFrame(ctx);
+ writeBuffer = ctx.allocateVSizeFrame();
indexHelper.open();
index = indexHelper.getIndexInstance();
IIndex indexForUniquessCheck;
@@ -203,7 +202,7 @@
keySearchCmp =
BTreeUtils.getSearchMultiComparator(((ITreeIndex) index).getComparatorFactories(), frameTuple);
searchPred = new RangePredicate(frameTuple, frameTuple, true, true, keySearchCmp, keySearchCmp, null, null);
- appender = new FrameTupleAppender(new VSizeFrame(ctx), true);
+ appender = new FrameTupleAppender(ctx.allocateVSizeFrame(), true);
modCallback =
modOpCallbackFactory.createModificationOperationCallback(indexHelper.getResource(), ctx, this);
searchCallback = (LockThenSearchOperationCallback) searchCallbackFactory
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryUpsertOperatorNodePushable.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryUpsertOperatorNodePushable.java
index d2dc3cf..f483a31 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryUpsertOperatorNodePushable.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMPrimaryUpsertOperatorNodePushable.java
@@ -40,7 +40,6 @@
import org.apache.asterix.transaction.management.opcallbacks.AbstractIndexModificationOperationCallback;
import org.apache.asterix.transaction.management.opcallbacks.AbstractIndexModificationOperationCallback.Operation;
import org.apache.asterix.transaction.management.opcallbacks.LockThenSearchOperationCallback;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.value.IMissingWriter;
import org.apache.hyracks.api.dataflow.value.IMissingWriterFactory;
@@ -245,7 +244,7 @@
@Override
public void open() throws HyracksDataException {
accessor = new FrameTupleAccessor(inputRecDesc);
- writeBuffer = new VSizeFrame(ctx);
+ writeBuffer = ctx.allocateVSizeFrame();
writer.open();
indexHelper.open();
index = indexHelper.getIndexInstance();
@@ -265,7 +264,7 @@
searchPred = createSearchPredicate();
tb = new ArrayTupleBuilder(recordDesc.getFieldCount());
dos = tb.getDataOutput();
- appender = new FrameTupleAppender(new VSizeFrame(ctx), true);
+ appender = new FrameTupleAppender(ctx.allocateVSizeFrame(), true);
modCallback =
modOpCallbackFactory.createModificationOperationCallback(indexHelper.getResource(), ctx, this);
abstractModCallback = (AbstractIndexModificationOperationCallback) modCallback;
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMSecondaryIndexCreationTupleProcessorNodePushable.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMSecondaryIndexCreationTupleProcessorNodePushable.java
index f09df2e..e7b78e9 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMSecondaryIndexCreationTupleProcessorNodePushable.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/LSMSecondaryIndexCreationTupleProcessorNodePushable.java
@@ -25,7 +25,6 @@
import org.apache.asterix.om.types.ATypeTag;
import org.apache.asterix.om.types.TypeTagUtil;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.value.IMissingWriter;
import org.apache.hyracks.api.dataflow.value.IMissingWriterFactory;
@@ -128,7 +127,7 @@
try {
tb = new ArrayTupleBuilder(recordDesc.getFieldCount());
dos = tb.getDataOutput();
- appender = new FrameTupleAppender(new VSizeFrame(ctx), true);
+ appender = new FrameTupleAppender(ctx.allocateVSizeFrame(), true);
} catch (Exception e) {
throw HyracksDataException.create(e);
}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/IntervalMergeJoiner.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/IntervalMergeJoiner.java
index c19ad06..41f82b0 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/IntervalMergeJoiner.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/IntervalMergeJoiner.java
@@ -30,7 +30,6 @@
import org.apache.hyracks.api.comm.IFrame;
import org.apache.hyracks.api.comm.IFrameTupleAccessor;
import org.apache.hyracks.api.comm.IFrameWriter;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.value.RecordDescriptor;
import org.apache.hyracks.api.exceptions.HyracksDataException;
@@ -87,8 +86,8 @@
inputCursor[PROBE_PARTITION] = new FrameTupleCursor(probeRd);
inputBuffer = new IFrame[JOIN_PARTITIONS];
- inputBuffer[BUILD_PARTITION] = new VSizeFrame(ctx);
- inputBuffer[PROBE_PARTITION] = new VSizeFrame(ctx);
+ inputBuffer[BUILD_PARTITION] = ctx.allocateVSizeFrame();
+ inputBuffer[PROBE_PARTITION] = ctx.allocateVSizeFrame();
//Two frames are used for the runfile stream, and one frame for each input (2 outputs).
framePool = new DeallocatableFramePool(ctx, (memorySize - 4) * ctx.getInitialFrameSize());
@@ -108,7 +107,7 @@
inputTuple[BUILD_PARTITION] = new IntervalSideTuple(mjc, inputCursor[BUILD_PARTITION], buildKeys);
// Result
- this.resultAppender = new FrameTupleAppender(new VSizeFrame(ctx));
+ this.resultAppender = new FrameTupleAppender(ctx.allocateVSizeFrame());
}
public void processBuildFrame(ByteBuffer buffer) throws HyracksDataException {
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/RunFileStream.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/RunFileStream.java
index 07b8a00..7afc9ef 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/RunFileStream.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/interval/utils/memory/RunFileStream.java
@@ -24,7 +24,6 @@
import org.apache.hyracks.api.comm.IFrame;
import org.apache.hyracks.api.comm.IFrameTupleAccessor;
import org.apache.hyracks.api.comm.IFrameTupleAppender;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.api.io.FileReference;
@@ -66,8 +65,8 @@
this.key = key;
// TODO make the stream only use one buffer.
- runFileBuffer = new VSizeFrame(ctx);
- runFileAppender = new FrameTupleAppender(new VSizeFrame(ctx));
+ runFileBuffer = ctx.allocateVSizeFrame();
+ runFileAppender = new FrameTupleAppender(ctx.allocateVSizeFrame());
}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/spatial/SpatialJoiner.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/spatial/SpatialJoiner.java
index aaac216..08a0524 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/spatial/SpatialJoiner.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/joins/spatial/SpatialJoiner.java
@@ -30,7 +30,6 @@
import org.apache.hyracks.api.comm.IFrame;
import org.apache.hyracks.api.comm.IFrameTupleAccessor;
import org.apache.hyracks.api.comm.IFrameWriter;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.value.RecordDescriptor;
import org.apache.hyracks.api.exceptions.HyracksDataException;
@@ -80,8 +79,8 @@
inputCursor[PROBE_PARTITION] = new FrameTupleCursor(probeRd);
inputBuffer = new IFrame[JOIN_PARTITIONS];
- inputBuffer[BUILD_PARTITION] = new VSizeFrame(ctx);
- inputBuffer[PROBE_PARTITION] = new VSizeFrame(ctx);
+ inputBuffer[BUILD_PARTITION] = ctx.allocateVSizeFrame();
+ inputBuffer[PROBE_PARTITION] = ctx.allocateVSizeFrame();
//Two frames are used for the runfile stream, and one frame for each input (2 outputs).
framePool = new DeallocatableFramePool(ctx, (memorySize - 4) * ctx.getInitialFrameSize());
@@ -101,7 +100,7 @@
inputTuple[BUILD_PARTITION] = new SpatialSideTuple(mjc, inputCursor[BUILD_PARTITION], buildKeys);
// Result
- this.resultAppender = new FrameTupleAppender(new VSizeFrame(ctx));
+ this.resultAppender = new FrameTupleAppender(ctx.allocateVSizeFrame());
}
public void processBuildFrame(ByteBuffer buffer) throws HyracksDataException {
diff --git a/asterixdb/asterix-runtime/src/test/java/org/apache/asterix/runtime/operators/LSMSecondaryIndexCreationTupleProcessorTest.java b/asterixdb/asterix-runtime/src/test/java/org/apache/asterix/runtime/operators/LSMSecondaryIndexCreationTupleProcessorTest.java
index 81b5c12..c184a3c 100644
--- a/asterixdb/asterix-runtime/src/test/java/org/apache/asterix/runtime/operators/LSMSecondaryIndexCreationTupleProcessorTest.java
+++ b/asterixdb/asterix-runtime/src/test/java/org/apache/asterix/runtime/operators/LSMSecondaryIndexCreationTupleProcessorTest.java
@@ -29,7 +29,6 @@
import org.apache.asterix.runtime.operators.LSMSecondaryIndexCreationTupleProcessorNodePushable.DeletedTupleCounter;
import org.apache.hyracks.api.comm.IFrame;
import org.apache.hyracks.api.comm.IFrameWriter;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksJobletContext;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.state.IStateObject;
@@ -278,7 +277,7 @@
op.open();
- IFrame frame = new VSizeFrame(ctx);
+ IFrame frame = ctx.allocateVSizeFrame();
FrameTupleAppender appender = new FrameTupleAppender(frame, true);
// generate input tuples
for (Object[] inputTuple : inputTuples) {
diff --git a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/aggreg/NestedPlansRunningAggregatorFactory.java b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/aggreg/NestedPlansRunningAggregatorFactory.java
index c9754f2..a5a5174 100644
--- a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/aggreg/NestedPlansRunningAggregatorFactory.java
+++ b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/aggreg/NestedPlansRunningAggregatorFactory.java
@@ -25,7 +25,6 @@
import org.apache.hyracks.algebricks.runtime.operators.std.NestedTupleSourceRuntimeFactory.NestedTupleSourceRuntime;
import org.apache.hyracks.api.comm.IFrameTupleAccessor;
import org.apache.hyracks.api.comm.IFrameWriter;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.EnforceFrameWriter;
import org.apache.hyracks.api.dataflow.ProfiledFrameWriter;
@@ -177,7 +176,7 @@
tAccess[i] = new FrameTupleAccessor(inputRecDesc[i]);
}
- this.outputAppender = new FrameTupleAppender(new VSizeFrame(ctx));
+ this.outputAppender = new FrameTupleAppender(ctx.allocateVSizeFrame());
}
@Override
diff --git a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/base/AbstractOneInputOneOutputOneFieldFramePushRuntime.java b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/base/AbstractOneInputOneOutputOneFieldFramePushRuntime.java
index 9b32aa1..4925427 100644
--- a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/base/AbstractOneInputOneOutputOneFieldFramePushRuntime.java
+++ b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/base/AbstractOneInputOneOutputOneFieldFramePushRuntime.java
@@ -21,7 +21,6 @@
import org.apache.hyracks.api.comm.IFrameFieldAppender;
import org.apache.hyracks.api.comm.IFrameTupleAccessor;
import org.apache.hyracks.api.comm.IFrameTupleAppender;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.dataflow.common.comm.io.FrameFixedFieldTupleAppender;
@@ -42,7 +41,7 @@
}
protected final void initAccessAppendFieldRef(IHyracksTaskContext ctx) throws HyracksDataException {
- frame = new VSizeFrame(ctx);
+ frame = ctx.allocateVSizeFrame();
appender = new FrameFixedFieldTupleAppender(inputRecordDesc.getFieldCount());
appender.reset(frame, true);
tAccess = new FrameTupleAccessor(inputRecordDesc);
diff --git a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/base/AbstractOneInputOneOutputOneFramePushRuntime.java b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/base/AbstractOneInputOneOutputOneFramePushRuntime.java
index 0c74260..e4ed17a 100644
--- a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/base/AbstractOneInputOneOutputOneFramePushRuntime.java
+++ b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/base/AbstractOneInputOneOutputOneFramePushRuntime.java
@@ -22,7 +22,6 @@
import org.apache.hyracks.api.comm.IFrameAppender;
import org.apache.hyracks.api.comm.IFrameTupleAccessor;
import org.apache.hyracks.api.comm.IFrameTupleAppender;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.api.util.CleanupUtils;
@@ -40,7 +39,7 @@
protected FrameTupleReference tRef;
protected final void initAccessAppend(IHyracksTaskContext ctx) throws HyracksDataException {
- frame = new VSizeFrame(ctx);
+ frame = ctx.allocateVSizeFrame();
appender = new FrameTupleAppender(frame);
tAccess = new FrameTupleAccessor(inputRecordDesc);
}
diff --git a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/std/EmptyTupleSourceRuntimeFactory.java b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/std/EmptyTupleSourceRuntimeFactory.java
index 9ca3cd6..28944d7 100644
--- a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/std/EmptyTupleSourceRuntimeFactory.java
+++ b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/std/EmptyTupleSourceRuntimeFactory.java
@@ -21,7 +21,6 @@
import org.apache.hyracks.algebricks.runtime.base.IPushRuntime;
import org.apache.hyracks.algebricks.runtime.operators.base.AbstractOneInputSourcePushRuntime;
import org.apache.hyracks.algebricks.runtime.operators.base.AbstractPushRuntimeFactory;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.dataflow.common.comm.io.ArrayTupleBuilder;
@@ -44,7 +43,7 @@
return new IPushRuntime[] { new AbstractOneInputSourcePushRuntime() {
private final ArrayTupleBuilder tb = new ArrayTupleBuilder(0);
- private final FrameTupleAppender appender = new FrameTupleAppender(new VSizeFrame(ctx));
+ private final FrameTupleAppender appender = new FrameTupleAppender(ctx.allocateVSizeFrame());
@Override
public void open() throws HyracksDataException {
diff --git a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/std/SplitOperatorDescriptor.java b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/std/SplitOperatorDescriptor.java
index eefd77f..0dbf58e 100644
--- a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/std/SplitOperatorDescriptor.java
+++ b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/std/SplitOperatorDescriptor.java
@@ -28,7 +28,6 @@
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.algebricks.runtime.evaluators.EvaluatorContext;
import org.apache.hyracks.api.comm.IFrameWriter;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.ActivityId;
import org.apache.hyracks.api.dataflow.IActivityGraphBuilder;
@@ -109,7 +108,7 @@
final IScalarEvaluator eval = brachingExprEvalFactory.createScalarEvaluator(evalCtx);
final MutableBoolean hasFailed = new MutableBoolean(false);
for (int i = 0; i < numberOfNonMaterializedOutputs; i++) {
- appenders[i] = new FrameTupleAppender(new VSizeFrame(ctx), true);
+ appenders[i] = new FrameTupleAppender(ctx.allocateVSizeFrame(), true);
}
return new AbstractUnaryInputOperatorNodePushable() {
diff --git a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/std/SwitchOperatorDescriptor.java b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/std/SwitchOperatorDescriptor.java
index 0fbb1d5..673e7bf 100644
--- a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/std/SwitchOperatorDescriptor.java
+++ b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/std/SwitchOperatorDescriptor.java
@@ -29,7 +29,6 @@
import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
import org.apache.hyracks.algebricks.runtime.evaluators.EvaluatorContext;
import org.apache.hyracks.api.comm.IFrameWriter;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.ActivityId;
import org.apache.hyracks.api.dataflow.IActivityGraphBuilder;
@@ -115,7 +114,7 @@
final IScalarEvaluator eval = branchingExprEvalFactory.createScalarEvaluator(evalCtx);
final MutableBoolean hasFailed = new MutableBoolean(false);
for (int i = 0; i < outputArity; i++) {
- appenders[i] = new FrameTupleAppender(new VSizeFrame(ctx), true);
+ appenders[i] = new FrameTupleAppender(ctx.allocateVSizeFrame(), true);
}
return new AbstractUnaryInputOperatorNodePushable() {
diff --git a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/win/WindowPartitionWriter.java b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/win/WindowPartitionWriter.java
index 6a75f3c..8c5b24a 100644
--- a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/win/WindowPartitionWriter.java
+++ b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/win/WindowPartitionWriter.java
@@ -23,7 +23,6 @@
import java.util.Arrays;
import org.apache.hyracks.api.comm.IFrame;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.exceptions.ErrorCode;
import org.apache.hyracks.api.exceptions.HyracksDataException;
@@ -99,7 +98,7 @@
} else if (writerFrameCount < writerFrames.length) {
IFrame writerFrame = writerFrames[writerFrameCount];
if (writerFrame == null) {
- writerFrames[writerFrameCount] = writerFrame = new VSizeFrame(ctx);
+ writerFrames[writerFrameCount] = writerFrame = ctx.allocateVSizeFrame();
}
copyToFrame(frameBuffer, writerFrame);
} else {
@@ -123,7 +122,7 @@
private void allocateFrames(IFrame[] outFrames, int count) throws HyracksDataException {
for (int i = 0; i < count; i++) {
- outFrames[i] = new VSizeFrame(ctx);
+ outFrames[i] = ctx.allocateVSizeFrame();
}
}
diff --git a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/comm/DelayedShrinkVSizeFrame.java b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/comm/DelayedShrinkVSizeFrame.java
new file mode 100644
index 0000000..ff2b7a6
--- /dev/null
+++ b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/comm/DelayedShrinkVSizeFrame.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.hyracks.api.comm;
+
+import java.nio.ByteBuffer;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.hyracks.api.context.IHyracksFrameMgrContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.util.Span;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+public class DelayedShrinkVSizeFrame extends VSizeFrame {
+ private static final Logger LOGGER = LogManager.getLogger();
+ private static final long TTL_NANOS = TimeUnit.SECONDS.toNanos(10);
+ private final Span expandedTtl = Span.init(TTL_NANOS, TimeUnit.NANOSECONDS);
+
+ public DelayedShrinkVSizeFrame(IHyracksFrameMgrContext ctx) throws HyracksDataException {
+ super(ctx);
+ }
+
+ @Override
+ public void ensureFrameSize(int newSize) throws HyracksDataException {
+ ByteBuffer before = buffer;
+ super.ensureFrameSize(newSize);
+ if (buffer != before) {
+ expandedTtl.reset();
+ LOGGER.info("reset TTL to {} on resized frame {} to {}", expandedTtl, before.capacity(), buffer.capacity());
+ }
+ }
+
+ @Override
+ public void reset() throws HyracksDataException {
+ if (getFrameSize() != minFrameSize) {
+ if (expandedTtl.elapsed()) {
+ LOGGER.info("reset frame back to min size ({}) from expanded ({}) on elapsed ({}s) > TTL ({}s)",
+ minFrameSize, getFrameSize(), expandedTtl.elapsed(TimeUnit.SECONDS),
+ expandedTtl.getSpan(TimeUnit.SECONDS));
+ buffer = ctx.reallocateFrame(buffer, minFrameSize, false);
+ }
+ }
+ buffer.clear();
+ }
+
+}
diff --git a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/comm/VSizeFrame.java b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/comm/VSizeFrame.java
index 80dd19b..84ddd1b 100644
--- a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/comm/VSizeFrame.java
+++ b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/comm/VSizeFrame.java
@@ -23,18 +23,23 @@
import org.apache.hyracks.api.context.IHyracksFrameMgrContext;
import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
/**
* Variable size frame. The buffer inside can be resized.
*/
public class VSizeFrame implements IFrame {
+ private static final Logger LOGGER = LogManager.getLogger();
protected final int minFrameSize;
protected IHyracksFrameMgrContext ctx;
protected ByteBuffer buffer;
+ protected Throwable ctorStack;
public VSizeFrame(IHyracksFrameMgrContext ctx) throws HyracksDataException {
this(ctx, ctx.getInitialFrameSize());
+ ctorStack = new Throwable();
}
public VSizeFrame(IHyracksFrameMgrContext ctx, int frameSize) throws HyracksDataException {
@@ -59,6 +64,13 @@
public void resize(int frameSize) throws HyracksDataException {
if (getFrameSize() != frameSize) {
buffer = ctx.reallocateFrame(buffer, frameSize, false);
+ if (frameSize == getMinSize()) {
+ if (!(this instanceof DelayedShrinkVSizeFrame)) {
+ LOGGER.info("{} reset frame back to {}", this, frameSize, ctorStack);
+ } else {
+ LOGGER.info("{} reset frame back to {}", this, frameSize);
+ }
+ }
}
}
diff --git a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/context/IHyracksFrameMgrContext.java b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/context/IHyracksFrameMgrContext.java
index 0db27fd..486e517 100644
--- a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/context/IHyracksFrameMgrContext.java
+++ b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/context/IHyracksFrameMgrContext.java
@@ -21,18 +21,30 @@
import java.nio.ByteBuffer;
+import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.api.util.HyracksThrowingFunction;
public interface IHyracksFrameMgrContext {
- public int getInitialFrameSize();
+ HyracksThrowingFunction<IHyracksFrameMgrContext, VSizeFrame> DEFAULT_VSIZE_FRAME_GENERATOR = VSizeFrame::new;
- public ByteBuffer allocateFrame() throws HyracksDataException;
+ int getInitialFrameSize();
- public ByteBuffer allocateFrame(int bytes) throws HyracksDataException;
+ ByteBuffer allocateFrame() throws HyracksDataException;
- public ByteBuffer reallocateFrame(ByteBuffer tobeDeallocate, int newSizeInBytes, boolean copyOldData)
+ ByteBuffer allocateFrame(int bytes) throws HyracksDataException;
+
+ ByteBuffer reallocateFrame(ByteBuffer tobeDeallocate, int newSizeInBytes, boolean copyOldData)
throws HyracksDataException;
- public void deallocateFrames(int bytes);
+ void deallocateFrames(int bytes);
+
+ default VSizeFrame allocateVSizeFrame() throws HyracksDataException {
+ return DEFAULT_VSIZE_FRAME_GENERATOR.process(this);
+ }
+
+ default void setVSizeFrameGenerator(HyracksThrowingFunction<IHyracksFrameMgrContext, VSizeFrame> generator) {
+ throw new IllegalStateException("custom vsize frame generator is not supported");
+ }
}
diff --git a/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/util/HyracksThrowingFunction.java b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/util/HyracksThrowingFunction.java
new file mode 100644
index 0000000..8993cc0
--- /dev/null
+++ b/hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/util/HyracksThrowingFunction.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.hyracks.api.util;
+
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+@FunctionalInterface
+public interface HyracksThrowingFunction<I, R> {
+ R process(I input) throws HyracksDataException;
+}
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/Joblet.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/Joblet.java
index a96dfe5..8db36e2 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/Joblet.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/Joblet.java
@@ -30,6 +30,8 @@
import org.apache.hyracks.api.com.job.profiling.counters.Counter;
import org.apache.hyracks.api.comm.IPartitionCollector;
import org.apache.hyracks.api.comm.PartitionChannel;
+import org.apache.hyracks.api.comm.VSizeFrame;
+import org.apache.hyracks.api.context.IHyracksFrameMgrContext;
import org.apache.hyracks.api.context.IHyracksJobletContext;
import org.apache.hyracks.api.dataflow.TaskAttemptId;
import org.apache.hyracks.api.dataflow.state.IStateObject;
@@ -50,6 +52,7 @@
import org.apache.hyracks.api.job.profiling.counters.ICounterContext;
import org.apache.hyracks.api.partitions.PartitionId;
import org.apache.hyracks.api.resources.IDeallocatable;
+import org.apache.hyracks.api.util.HyracksThrowingFunction;
import org.apache.hyracks.control.common.deployment.DeploymentUtils;
import org.apache.hyracks.control.common.job.PartitionRequest;
import org.apache.hyracks.control.common.job.PartitionState;
@@ -108,8 +111,11 @@
private final String jobStartTimeZoneId;
private final long maxWarnings;
+
private final AtomicLong uniqueIds;
+ private HyracksThrowingFunction<IHyracksFrameMgrContext, VSizeFrame> vSizeFrameSupplier = VSizeFrame::new;
+
public Joblet(NodeControllerService nodeController, DeploymentId deploymentId, JobId jobId,
INCServiceContext serviceCtx, ActivityClusterGraph acg,
IJobletEventListenerFactory jobletEventListenerFactory, long jobStartTime, String jobStartTimeZoneId) {
@@ -287,6 +293,16 @@
return frameManager.getInitialFrameSize();
}
+ @Override
+ public VSizeFrame allocateVSizeFrame() throws HyracksDataException {
+ return vSizeFrameSupplier.process(this);
+ }
+
+ @Override
+ public void setVSizeFrameGenerator(HyracksThrowingFunction<IHyracksFrameMgrContext, VSizeFrame> generator) {
+ vSizeFrameSupplier = generator;
+ }
+
public final long getMaxWarnings() {
return maxWarnings;
}
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/Task.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/Task.java
index 0bf74ee..1b3983a 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/Task.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/Task.java
@@ -42,6 +42,7 @@
import org.apache.hyracks.api.comm.IPartitionCollector;
import org.apache.hyracks.api.comm.PartitionChannel;
import org.apache.hyracks.api.comm.VSizeFrame;
+import org.apache.hyracks.api.context.IHyracksFrameMgrContext;
import org.apache.hyracks.api.context.IHyracksJobletContext;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.IOperatorNodePushable;
@@ -65,6 +66,7 @@
import org.apache.hyracks.api.result.IResultPartitionManager;
import org.apache.hyracks.api.util.CleanupUtils;
import org.apache.hyracks.api.util.ExceptionUtils;
+import org.apache.hyracks.api.util.HyracksThrowingFunction;
import org.apache.hyracks.api.util.JavaSerializationUtils;
import org.apache.hyracks.control.common.job.PartitionState;
import org.apache.hyracks.control.common.job.profiling.StatsCollector;
@@ -189,6 +191,16 @@
}
@Override
+ public VSizeFrame allocateVSizeFrame() throws HyracksDataException {
+ return joblet.allocateVSizeFrame();
+ }
+
+ @Override
+ public void setVSizeFrameGenerator(HyracksThrowingFunction<IHyracksFrameMgrContext, VSizeFrame> generator) {
+ joblet.setVSizeFrameGenerator(generator);
+ }
+
+ @Override
public IIOManager getIoManager() {
return joblet.getIoManager();
}
@@ -422,7 +434,7 @@
try {
try {
writer.open();
- VSizeFrame frame = new VSizeFrame(this);
+ VSizeFrame frame = allocateVSizeFrame();
while (reader.nextFrame(frame)) {
if (aborted) {
return;
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/resources/memory/FrameManager.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/resources/memory/FrameManager.java
index 38ae95b..6ba4462 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/resources/memory/FrameManager.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/resources/memory/FrameManager.java
@@ -55,7 +55,7 @@
}
ByteBuffer buffer = ByteBuffer.allocate(bytes);
FrameHelper.serializeFrameSize(buffer, bytes / minFrameSize);
- return (ByteBuffer) buffer.clear();
+ return buffer.clear();
}
@Override
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/io/FrameDeserializingDataReader.java b/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/io/FrameDeserializingDataReader.java
index c26f5ac..d402fe0 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/io/FrameDeserializingDataReader.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/io/FrameDeserializingDataReader.java
@@ -20,7 +20,6 @@
import org.apache.hyracks.api.comm.IFrame;
import org.apache.hyracks.api.comm.IFrameReader;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.IOpenableDataReader;
import org.apache.hyracks.api.dataflow.value.RecordDescriptor;
@@ -39,7 +38,7 @@
public FrameDeserializingDataReader(IHyracksTaskContext ctx, IFrameReader frameReader,
RecordDescriptor recordDescriptor) throws HyracksDataException {
- this.frame = new VSizeFrame(ctx);
+ this.frame = ctx.allocateVSizeFrame();
this.frameReader = frameReader;
this.frameDeserializer = new FrameDeserializer(recordDescriptor);
}
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/io/SerializingDataWriter.java b/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/io/SerializingDataWriter.java
index ce1d595..f4d8a76 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/io/SerializingDataWriter.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/comm/io/SerializingDataWriter.java
@@ -19,7 +19,6 @@
package org.apache.hyracks.dataflow.common.comm.io;
import org.apache.hyracks.api.comm.IFrameWriter;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.IOpenableDataWriter;
import org.apache.hyracks.api.dataflow.value.RecordDescriptor;
@@ -47,7 +46,7 @@
tb = new ArrayTupleBuilder(recordDescriptor.getFieldCount());
this.recordDescriptor = recordDescriptor;
this.frameWriter = frameWriter;
- tupleAppender = new FrameTupleAppender(new VSizeFrame(ctx));
+ tupleAppender = new FrameTupleAppender(ctx.allocateVSizeFrame());
open = false;
}
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/base/AbstractReplicateOperatorDescriptor.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/base/AbstractReplicateOperatorDescriptor.java
index 666c250..d49b797 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/base/AbstractReplicateOperatorDescriptor.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/base/AbstractReplicateOperatorDescriptor.java
@@ -21,7 +21,6 @@
import java.nio.ByteBuffer;
import org.apache.hyracks.api.comm.IFrameWriter;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.ActivityId;
import org.apache.hyracks.api.dataflow.IActivityGraphBuilder;
@@ -226,7 +225,7 @@
public void initialize() throws HyracksDataException {
MaterializerTaskState state = (MaterializerTaskState) ctx.getStateObject(
new TaskId(new ActivityId(getOperatorId(), SPLITTER_MATERIALIZER_ACTIVITY_ID), partition));
- state.writeOut(writer, new VSizeFrame(ctx), false);
+ state.writeOut(writer, ctx.allocateVSizeFrame(), false);
}
};
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/collectors/SortMergeFrameReader.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/collectors/SortMergeFrameReader.java
index 27e2671..33adbde 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/collectors/SortMergeFrameReader.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/collectors/SortMergeFrameReader.java
@@ -23,7 +23,6 @@
import org.apache.hyracks.api.comm.IFrame;
import org.apache.hyracks.api.comm.IFrameReader;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.value.IBinaryComparator;
import org.apache.hyracks.api.dataflow.value.INormalizedKeyComputer;
@@ -61,7 +60,7 @@
if (maxConcurrentMerges >= nSenders) {
List<IFrame> inFrames = new ArrayList<>(nSenders);
for (int i = 0; i < nSenders; ++i) {
- inFrames.add(new VSizeFrame(ctx));
+ inFrames.add(ctx.allocateVSizeFrame());
}
List<IFrameReader> batch = new ArrayList<IFrameReader>(nSenders);
pbm.getNextBatch(batch, nSenders);
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/connectors/AbstractPartitionDataWriter.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/connectors/AbstractPartitionDataWriter.java
index 03f260a..937a8d7 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/connectors/AbstractPartitionDataWriter.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/connectors/AbstractPartitionDataWriter.java
@@ -24,7 +24,6 @@
import org.apache.hyracks.api.comm.IFrameWriter;
import org.apache.hyracks.api.comm.IPartitionWriterFactory;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.value.RecordDescriptor;
import org.apache.hyracks.api.exceptions.HyracksDataException;
@@ -137,7 +136,7 @@
}
protected void allocateFrames(int i) throws HyracksDataException {
- appenders[i].reset(new VSizeFrame(ctx), true);
+ appenders[i].reset(ctx.allocateVSizeFrame(), true);
allocatedFrames[i] = true;
}
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/connectors/LocalityAwarePartitionDataWriter.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/connectors/LocalityAwarePartitionDataWriter.java
index eb4a7cf..95250c8 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/connectors/LocalityAwarePartitionDataWriter.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/connectors/LocalityAwarePartitionDataWriter.java
@@ -24,7 +24,6 @@
import org.apache.hyracks.api.comm.IFrameTupleAppender;
import org.apache.hyracks.api.comm.IFrameWriter;
import org.apache.hyracks.api.comm.IPartitionWriterFactory;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.value.ITuplePartitionComputer;
import org.apache.hyracks.api.dataflow.value.RecordDescriptor;
@@ -52,7 +51,7 @@
try {
pWriters[i] = pwFactory.createFrameWriter(consumerPartitions[i]);
appenders[i] = new FrameTupleAppender();
- appenders[i].reset(new VSizeFrame(ctx), true);
+ appenders[i].reset(ctx.allocateVSizeFrame(), true);
} catch (IOException e) {
throw HyracksDataException.create(e);
}
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/file/DelimitedDataTupleParserFactory.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/file/DelimitedDataTupleParserFactory.java
index b8b2ba8..1add181 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/file/DelimitedDataTupleParserFactory.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/file/DelimitedDataTupleParserFactory.java
@@ -25,7 +25,6 @@
import org.apache.hyracks.api.comm.IFrame;
import org.apache.hyracks.api.comm.IFrameWriter;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.api.exceptions.IWarningCollector;
@@ -67,7 +66,7 @@
for (int i = 0; i < valueParserFactories.length; ++i) {
valueParsers[i] = valueParserFactories[i].createValueParser();
}
- IFrame frame = new VSizeFrame(ctx);
+ IFrame frame = ctx.allocateVSizeFrame();
FrameTupleAppender appender = new FrameTupleAppender();
appender.reset(frame, true);
ArrayTupleBuilder tb = new ArrayTupleBuilder(valueParsers.length);
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/group/HashSpillableTableFactory.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/group/HashSpillableTableFactory.java
index 2f2153b..6d64edd 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/group/HashSpillableTableFactory.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/group/HashSpillableTableFactory.java
@@ -23,7 +23,6 @@
import org.apache.hyracks.api.comm.IFrameTupleAccessor;
import org.apache.hyracks.api.comm.IFrameWriter;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.value.IBinaryComparator;
import org.apache.hyracks.api.dataflow.value.IBinaryHashFunctionFamily;
@@ -160,7 +159,7 @@
private final PreferToSpillFullyOccupiedFramePolicy spillPolicy =
new PreferToSpillFullyOccupiedFramePolicy(bufferManager, spilledSet);
- private final FrameTupleAppender outputAppender = new FrameTupleAppender(new VSizeFrame(ctx));
+ private final FrameTupleAppender outputAppender = new FrameTupleAppender(ctx.allocateVSizeFrame());
@Override
public void close() throws HyracksDataException {
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/group/external/ExternalGroupWriteOperatorNodePushable.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/group/external/ExternalGroupWriteOperatorNodePushable.java
index 8618528..34ae038 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/group/external/ExternalGroupWriteOperatorNodePushable.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/group/external/ExternalGroupWriteOperatorNodePushable.java
@@ -174,7 +174,7 @@
ExternalHashGroupBy groupBy = new ExternalHashGroupBy(this, table, runFileWriters, partialAggRecordDesc);
reader.open();
try {
- VSizeFrame frame = new VSizeFrame(ctx);
+ VSizeFrame frame = ctx.allocateVSizeFrame();
while (reader.nextFrame(frame)) {
groupBy.insert(frame.getBuffer());
}
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/group/preclustered/PreclusteredGroupWriter.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/group/preclustered/PreclusteredGroupWriter.java
index 14ce5ac..a7f55c4 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/group/preclustered/PreclusteredGroupWriter.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/group/preclustered/PreclusteredGroupWriter.java
@@ -86,7 +86,7 @@
inFrameAccessor = new FrameTupleAccessor(inRecordDesc);
groupFieldsRef = new PermutingFrameTupleReference(groupFields);
groupFieldsPrevCopy = PointableTupleReference.create(groupFields.length, ArrayBackedValueStorage::new);
- VSizeFrame outFrame = new VSizeFrame(ctx);
+ VSizeFrame outFrame = ctx.allocateVSizeFrame();
FrameTupleAppender appender = new FrameTupleAppender();
appender.reset(outFrame, true);
appenderWrapper = new FrameTupleAppenderWrapper(appender, writer);
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/intersect/IntersectOperatorDescriptor.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/intersect/IntersectOperatorDescriptor.java
index dc2b46f..d31aad8 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/intersect/IntersectOperatorDescriptor.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/intersect/IntersectOperatorDescriptor.java
@@ -23,7 +23,6 @@
import java.util.BitSet;
import org.apache.hyracks.api.comm.IFrameWriter;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.ActivityId;
import org.apache.hyracks.api.dataflow.IActivity;
@@ -206,7 +205,7 @@
comparators[i] = comparatorFactory[i].createBinaryComparator();
}
- appender = new FrameTupleAppender(new VSizeFrame(ctx));
+ appender = new FrameTupleAppender(ctx.allocateVSizeFrame());
refAccessor = new FrameTupleAccessor[inputArity];
for (int i = 0; i < inputArity; i++) {
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/InMemoryHashJoin.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/InMemoryHashJoin.java
index 4c2019e..d5377c2 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/InMemoryHashJoin.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/InMemoryHashJoin.java
@@ -25,7 +25,6 @@
import org.apache.hyracks.api.comm.IFrameTupleAccessor;
import org.apache.hyracks.api.comm.IFrameWriter;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksFrameMgrContext;
import org.apache.hyracks.api.dataflow.value.IMissingWriter;
import org.apache.hyracks.api.dataflow.value.ITuplePairComparator;
@@ -85,7 +84,7 @@
this.tpcBuild = tpcBuild;
this.accessorProbe = accessorProbe;
this.tpcProbe = tpcProbe;
- appender = new FrameTupleAppender(new VSizeFrame(ctx));
+ appender = new FrameTupleAppender(ctx.allocateVSizeFrame());
this.isLeftOuter = isLeftOuter;
if (isLeftOuter) {
int fieldCountOuter = accessorBuild.getFieldCount();
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/misc/ConstantTupleSourceOperatorNodePushable.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/misc/ConstantTupleSourceOperatorNodePushable.java
index 9bd0c59..a221927 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/misc/ConstantTupleSourceOperatorNodePushable.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/misc/ConstantTupleSourceOperatorNodePushable.java
@@ -19,7 +19,6 @@
package org.apache.hyracks.dataflow.std.misc;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.dataflow.common.comm.io.FrameTupleAppender;
@@ -43,7 +42,7 @@
@Override
public void initialize() throws HyracksDataException {
- FrameTupleAppender appender = new FrameTupleAppender(new VSizeFrame(ctx));
+ FrameTupleAppender appender = new FrameTupleAppender(ctx.allocateVSizeFrame());
if (fieldSlots != null && tupleData != null && tupleSize > 0)
appender.append(fieldSlots, tupleData, 0, tupleSize);
writer.open();
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/misc/LimitOperatorDescriptor.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/misc/LimitOperatorDescriptor.java
index a190686..8340456 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/misc/LimitOperatorDescriptor.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/misc/LimitOperatorDescriptor.java
@@ -20,7 +20,6 @@
import java.nio.ByteBuffer;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.IOperatorNodePushable;
import org.apache.hyracks.api.dataflow.value.IRecordDescriptorProvider;
@@ -67,7 +66,7 @@
fta.reset(buffer);
int count = fta.getTupleCount();
if ((currentSize + count) > outputLimit) {
- FrameTupleAppender partialAppender = new FrameTupleAppender(new VSizeFrame(ctx));
+ FrameTupleAppender partialAppender = new FrameTupleAppender(ctx.allocateVSizeFrame());
int copyCount = outputLimit - currentSize;
for (int i = 0; i < copyCount; i++) {
FrameUtils.appendToWriter(writer, partialAppender, fta, i);
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/misc/MaterializingOperatorDescriptor.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/misc/MaterializingOperatorDescriptor.java
index 3f97752..7a08c9b 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/misc/MaterializingOperatorDescriptor.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/misc/MaterializingOperatorDescriptor.java
@@ -20,7 +20,6 @@
import java.nio.ByteBuffer;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.ActivityId;
import org.apache.hyracks.api.dataflow.IActivityGraphBuilder;
@@ -114,7 +113,7 @@
@Override
public void close() throws HyracksDataException {
state.close();
- state.writeOut(writer, new VSizeFrame(ctx), failed);
+ state.writeOut(writer, ctx.allocateVSizeFrame(), failed);
}
};
}
@@ -173,7 +172,7 @@
public void initialize() throws HyracksDataException {
MaterializerTaskState state = (MaterializerTaskState) ctx.getStateObject(
new TaskId(new ActivityId(getOperatorId(), MATERIALIZER_ACTIVITY_ID), partition));
- state.writeOut(writer, new VSizeFrame(ctx), false);
+ state.writeOut(writer, ctx.allocateVSizeFrame(), false);
}
@Override
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/result/ResultWriterOperatorDescriptor.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/result/ResultWriterOperatorDescriptor.java
index 426121c..8d119a2 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/result/ResultWriterOperatorDescriptor.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/result/ResultWriterOperatorDescriptor.java
@@ -24,7 +24,6 @@
import org.apache.hyracks.api.comm.IFrame;
import org.apache.hyracks.api.comm.IFrameWriter;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.IOperatorNodePushable;
import org.apache.hyracks.api.dataflow.value.IRecordDescriptorProvider;
@@ -69,7 +68,7 @@
throws HyracksDataException {
final IResultPartitionManager resultPartitionManager = ctx.getResultPartitionManager();
- final IFrame frame = new VSizeFrame(ctx);
+ final IFrame frame = ctx.allocateVSizeFrame();
final FrameOutputStream frameOutputStream = new FrameOutputStream(ctx.getInitialFrameSize());
frameOutputStream.reset(frame, true);
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/AbstractExternalSortRunMerger.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/AbstractExternalSortRunMerger.java
index e573c1c..98d6248 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/AbstractExternalSortRunMerger.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/AbstractExternalSortRunMerger.java
@@ -215,7 +215,7 @@
if (first) {
first = false;
inFrames = new ArrayList<>(maxMergeWidth);
- outputFrame = new VSizeFrame(ctx);
+ outputFrame = ctx.allocateVSizeFrame();
partialRuns = new ArrayList<>(maxMergeWidth);
}
}
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/AbstractFrameSorter.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/AbstractFrameSorter.java
index b121fbb..8439fef 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/AbstractFrameSorter.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/AbstractFrameSorter.java
@@ -24,7 +24,6 @@
import org.apache.hyracks.api.comm.IFrame;
import org.apache.hyracks.api.comm.IFrameTupleAppender;
import org.apache.hyracks.api.comm.IFrameWriter;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.value.IBinaryComparator;
import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory;
@@ -123,7 +122,7 @@
}
this.inputTupleAccessor = new FrameTupleAccessor(recordDescriptor);
this.outputAppender = new FrameTupleAppender();
- this.outputFrame = new VSizeFrame(ctx);
+ this.outputFrame = ctx.allocateVSizeFrame();
this.outputLimit = outputLimit;
this.fta2 = new FrameTupleAccessor(recordDescriptor);
this.tmpPointer = new int[ptrSize];
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/TupleSorterHeapSort.java b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/TupleSorterHeapSort.java
index a1704ec..0f41a13 100644
--- a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/TupleSorterHeapSort.java
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/sort/TupleSorterHeapSort.java
@@ -25,7 +25,6 @@
import org.apache.hyracks.api.comm.IFrame;
import org.apache.hyracks.api.comm.IFrameTupleAccessor;
import org.apache.hyracks.api.comm.IFrameWriter;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.value.IBinaryComparator;
import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory;
@@ -132,7 +131,7 @@
this.bufferAccessor1 = bufferManager.createTuplePointerAccessor();
this.bufferAccessor2 = bufferManager.createTuplePointerAccessor();
this.topK = topK;
- this.outputFrame = new VSizeFrame(ctx);
+ this.outputFrame = ctx.allocateVSizeFrame();
this.outputAppender = new FrameTupleAppender();
this.sortFields = sortFields;
diff --git a/hyracks-fullstack/hyracks/hyracks-examples/btree-example/btreehelper/src/main/java/org/apache/hyracks/examples/btree/helper/DataGenOperatorDescriptor.java b/hyracks-fullstack/hyracks/hyracks-examples/btree-example/btreehelper/src/main/java/org/apache/hyracks/examples/btree/helper/DataGenOperatorDescriptor.java
index ff60342..38b7e07 100644
--- a/hyracks-fullstack/hyracks/hyracks-examples/btree-example/btreehelper/src/main/java/org/apache/hyracks/examples/btree/helper/DataGenOperatorDescriptor.java
+++ b/hyracks-fullstack/hyracks/hyracks-examples/btree-example/btreehelper/src/main/java/org/apache/hyracks/examples/btree/helper/DataGenOperatorDescriptor.java
@@ -64,7 +64,7 @@
public IOperatorNodePushable createPushRuntime(IHyracksTaskContext ctx,
IRecordDescriptorProvider recordDescProvider, int partition, int nPartitions) throws HyracksDataException {
- final FrameTupleAppender appender = new FrameTupleAppender(new VSizeFrame(ctx));
+ final FrameTupleAppender appender = new FrameTupleAppender(ctx.allocateVSizeFrame());
final RecordDescriptor recDesc = outRecDescs[0];
final ArrayTupleBuilder tb = new ArrayTupleBuilder(recDesc.getFields().length);
final Random rnd = new Random(randomSeed);
diff --git a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/comm/SerializationDeserializationTest.java b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/comm/SerializationDeserializationTest.java
index 1bb58b8..7cfab572 100644
--- a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/comm/SerializationDeserializationTest.java
+++ b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/comm/SerializationDeserializationTest.java
@@ -71,7 +71,7 @@
@Override
public void nextFrame(ByteBuffer buffer) throws HyracksDataException {
- IFrame toBuf = new VSizeFrame(ctx);
+ IFrame toBuf = ctx.allocateVSizeFrame();
toBuf.getBuffer().put(buffer);
buffers.add(toBuf);
}
diff --git a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/unit/RunMergingFrameReaderTest.java b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/unit/RunMergingFrameReaderTest.java
index a219518..ef6c7fc 100644
--- a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/unit/RunMergingFrameReaderTest.java
+++ b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/unit/RunMergingFrameReaderTest.java
@@ -243,7 +243,7 @@
private int testMergeSucceedInner(IHyracksTaskContext ctx, RunMergingFrameReader reader,
List<Map<Integer, String>> keyValueMapList) throws HyracksDataException {
- IFrame frame = new VSizeFrame(ctx);
+ IFrame frame = ctx.allocateVSizeFrame();
reader.open();
int count = 0;
for (int i = 0; i < keyValueMapList.size(); i++) {
@@ -337,7 +337,7 @@
RunMergingFrameReader reader =
new RunMergingFrameReader(ctx, runs, inFrame, SortFields, Comparators, null, RecordDesc);
- IFrame outFrame = new VSizeFrame(ctx);
+ IFrame outFrame = ctx.allocateVSizeFrame();
reader.open();
while (reader.nextFrame(outFrame)) {
assertFrameIsSorted(outFrame, Arrays.asList(keyValuePair));
diff --git a/hyracks-fullstack/hyracks/hyracks-examples/text-example/texthelper/src/main/java/org/apache/hyracks/examples/text/WordTupleParserFactory.java b/hyracks-fullstack/hyracks/hyracks-examples/text-example/texthelper/src/main/java/org/apache/hyracks/examples/text/WordTupleParserFactory.java
index 0032c40..98bf6fb 100644
--- a/hyracks-fullstack/hyracks/hyracks-examples/text-example/texthelper/src/main/java/org/apache/hyracks/examples/text/WordTupleParserFactory.java
+++ b/hyracks-fullstack/hyracks/hyracks-examples/text-example/texthelper/src/main/java/org/apache/hyracks/examples/text/WordTupleParserFactory.java
@@ -46,7 +46,7 @@
@Override
public void parse(InputStream in, IFrameWriter writer) throws HyracksDataException {
try {
- FrameTupleAppender appender = new FrameTupleAppender(new VSizeFrame(ctx));
+ FrameTupleAppender appender = new FrameTupleAppender(ctx.allocateVSizeFrame());
ArrayTupleBuilder tb = new ArrayTupleBuilder(1);
DataOutput dos = tb.getDataOutput();
diff --git a/hyracks-fullstack/hyracks/hyracks-hdfs/src/main/java/org/apache/hyracks/hdfs/lib/TextKeyValueParserFactory.java b/hyracks-fullstack/hyracks/hyracks-hdfs/src/main/java/org/apache/hyracks/hdfs/lib/TextKeyValueParserFactory.java
index 71373c4..7c9f483 100644
--- a/hyracks-fullstack/hyracks/hyracks-hdfs/src/main/java/org/apache/hyracks/hdfs/lib/TextKeyValueParserFactory.java
+++ b/hyracks-fullstack/hyracks/hyracks-hdfs/src/main/java/org/apache/hyracks/hdfs/lib/TextKeyValueParserFactory.java
@@ -22,7 +22,6 @@
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hyracks.api.comm.IFrameWriter;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.dataflow.common.comm.io.ArrayTupleBuilder;
@@ -39,7 +38,7 @@
throws HyracksDataException {
final ArrayTupleBuilder tb = new ArrayTupleBuilder(1);
- final FrameTupleAppender appender = new FrameTupleAppender(new VSizeFrame(ctx));
+ final FrameTupleAppender appender = new FrameTupleAppender(ctx.allocateVSizeFrame());
return new IKeyValueParser<LongWritable, Text>() {
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexInsertUpdateDeleteOperatorNodePushable.java b/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexInsertUpdateDeleteOperatorNodePushable.java
index 9ff9249..6dd842b 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexInsertUpdateDeleteOperatorNodePushable.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexInsertUpdateDeleteOperatorNodePushable.java
@@ -21,7 +21,6 @@
import java.nio.ByteBuffer;
import org.apache.hyracks.api.comm.IFrame;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.value.RecordDescriptor;
import org.apache.hyracks.api.exceptions.ErrorCode;
@@ -76,7 +75,7 @@
@Override
public void open() throws HyracksDataException {
accessor = new FrameTupleAccessor(inputRecDesc);
- writeBuffer = new VSizeFrame(ctx);
+ writeBuffer = ctx.allocateVSizeFrame();
indexHelper.open();
index = indexHelper.getIndexInstance();
try {
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexSearchOperatorNodePushable.java b/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexSearchOperatorNodePushable.java
index d555b31..76e1770 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexSearchOperatorNodePushable.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexSearchOperatorNodePushable.java
@@ -22,7 +22,6 @@
import java.io.IOException;
import java.nio.ByteBuffer;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.IIntrospectingOperator;
import org.apache.hyracks.api.dataflow.value.IMissingWriter;
@@ -222,7 +221,7 @@
searchPred = createSearchPredicate();
tb = new ArrayTupleBuilder(recordDesc.getFieldCount());
dos = tb.getDataOutput();
- appender = new FrameTupleAppender(new VSizeFrame(ctx), true);
+ appender = new FrameTupleAppender(ctx.allocateVSizeFrame(), true);
ISearchOperationCallback searchCallback =
searchCallbackFactory.createSearchOperationCallback(indexHelper.getResource().getId(), ctx, null);
IIndexAccessParameters iap = new IndexAccessParameters(NoOpOperationCallback.INSTANCE, searchCallback);
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/TreeIndexDiskOrderScanOperatorNodePushable.java b/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/TreeIndexDiskOrderScanOperatorNodePushable.java
index d5ea8bc..5cffd16 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/TreeIndexDiskOrderScanOperatorNodePushable.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/TreeIndexDiskOrderScanOperatorNodePushable.java
@@ -21,7 +21,6 @@
import java.io.DataOutput;
import java.io.IOException;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.api.util.CleanupUtils;
@@ -63,7 +62,7 @@
treeIndexHelper.open();
try {
writer.open();
- FrameTupleAppender appender = new FrameTupleAppender(new VSizeFrame(ctx));
+ FrameTupleAppender appender = new FrameTupleAppender(ctx.allocateVSizeFrame());
scan(appender);
appender.write(writer, true);
} catch (Throwable th) { // NOSONAR: Must call writer.fail
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/TreeIndexStatsOperatorNodePushable.java b/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/TreeIndexStatsOperatorNodePushable.java
index e35fba1..b8e6953 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/TreeIndexStatsOperatorNodePushable.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/TreeIndexStatsOperatorNodePushable.java
@@ -21,7 +21,6 @@
import java.io.DataOutput;
import org.apache.hyracks.api.comm.IFrameWriter;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.api.io.FileReference;
@@ -77,7 +76,7 @@
treeIndex.getInteriorFrameFactory().createFrame(),
treeIndex.getPageManager().createMetadataFrame());
// Write the stats output as a single string field.
- FrameTupleAppender appender = new FrameTupleAppender(new VSizeFrame(ctx));
+ FrameTupleAppender appender = new FrameTupleAppender(ctx.allocateVSizeFrame());
ArrayTupleBuilder tb = new ArrayTupleBuilder(1);
DataOutput dos = tb.getDataOutput();
tb.reset();
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/BinaryTokenizerOperatorNodePushable.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/BinaryTokenizerOperatorNodePushable.java
index b9c8c8a..ba0a18e 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/BinaryTokenizerOperatorNodePushable.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/dataflow/BinaryTokenizerOperatorNodePushable.java
@@ -22,7 +22,6 @@
import java.io.IOException;
import java.nio.ByteBuffer;
-import org.apache.hyracks.api.comm.VSizeFrame;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.dataflow.value.IMissingWriter;
import org.apache.hyracks.api.dataflow.value.IMissingWriterFactory;
@@ -94,7 +93,7 @@
accessor = new FrameTupleAccessor(inputRecDesc);
builder = new ArrayTupleBuilder(outputRecDesc.getFieldCount());
builderData = builder.getFieldData();
- appender = new FrameTupleAppender(new VSizeFrame(ctx), true);
+ appender = new FrameTupleAppender(ctx.allocateVSizeFrame(), true);
}
@Override
diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-dataflow-common-test/src/test/java/org.apache.hyracks/dataflow/common/data/partition/range/AbstractFieldRangeMultiPartitionComputerFactoryTest.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-dataflow-common-test/src/test/java/org.apache.hyracks/dataflow/common/data/partition/range/AbstractFieldRangeMultiPartitionComputerFactoryTest.java
index 668e20f..44a7566 100644
--- a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-dataflow-common-test/src/test/java/org.apache.hyracks/dataflow/common/data/partition/range/AbstractFieldRangeMultiPartitionComputerFactoryTest.java
+++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-dataflow-common-test/src/test/java/org.apache.hyracks/dataflow/common/data/partition/range/AbstractFieldRangeMultiPartitionComputerFactoryTest.java
@@ -141,7 +141,7 @@
private ByteBuffer prepareData(IHyracksTaskContext ctx, Long[] startPoints, Long duration)
throws HyracksDataException {
- IFrame frame = new VSizeFrame(ctx);
+ IFrame frame = ctx.allocateVSizeFrame();
FrameTupleAppender appender = new FrameTupleAppender();
ArrayTupleBuilder tb = new ArrayTupleBuilder(recordIntegerDesc.getFieldCount());
diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-dataflow-common-test/src/test/java/org.apache.hyracks/dataflow/common/io/RunFileTest.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-dataflow-common-test/src/test/java/org.apache.hyracks/dataflow/common/io/RunFileTest.java
index 599a1ce..9848d8f 100644
--- a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-dataflow-common-test/src/test/java/org.apache.hyracks/dataflow/common/io/RunFileTest.java
+++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-dataflow-common-test/src/test/java/org.apache.hyracks/dataflow/common/io/RunFileTest.java
@@ -71,8 +71,8 @@
public void testSingleFrame() throws HyracksDataException {
//Declare fields
- IFrame frame = new VSizeFrame(ctx);
- IFrame readFrame = new VSizeFrame(ctx);
+ IFrame frame = ctx.allocateVSizeFrame();
+ IFrame readFrame = ctx.allocateVSizeFrame();
// Writer test
writer.open();
@@ -199,7 +199,7 @@
private IFrame[] getFrames(int count) throws HyracksDataException {
IFrame[] frames = new IFrame[count];
for (int f = 0; f < frames.length; f++) {
- frames[f] = new VSizeFrame(ctx);
+ frames[f] = ctx.allocateVSizeFrame();
}
return frames;
}
@@ -209,10 +209,10 @@
throw new HyracksDataException("Must provide more than one frame.");
}
IFrame[] frames = new IFrame[count];
- frames[0] = new VSizeFrame(ctx);
+ frames[0] = ctx.allocateVSizeFrame();
frames[1] = new VSizeFrame(ctx, TEST_FRAME_SIZE_ALTERNATE);
for (int f = 2; f < frames.length; f++) {
- frames[f] = new VSizeFrame(ctx);
+ frames[f] = ctx.allocateVSizeFrame();
}
return frames;
}
diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-btree-test/src/test/java/org/apache/hyracks/storage/am/btree/BTreeStatsTest.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-btree-test/src/test/java/org/apache/hyracks/storage/am/btree/BTreeStatsTest.java
index 97e5e46..4130f88 100644
--- a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-btree-test/src/test/java/org/apache/hyracks/storage/am/btree/BTreeStatsTest.java
+++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-btree-test/src/test/java/org/apache/hyracks/storage/am/btree/BTreeStatsTest.java
@@ -103,7 +103,7 @@
if (LOGGER.isInfoEnabled()) {
LOGGER.info("INSERTING INTO TREE");
}
- IFrame frame = new VSizeFrame(ctx);
+ IFrame frame = ctx.allocateVSizeFrame();
FrameTupleAppender appender = new FrameTupleAppender();
ArrayTupleBuilder tb = new ArrayTupleBuilder(fieldCount);
DataOutput dos = tb.getDataOutput();
diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-btree-test/src/test/java/org/apache/hyracks/storage/am/btree/FieldPrefixNSMTest.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-btree-test/src/test/java/org/apache/hyracks/storage/am/btree/FieldPrefixNSMTest.java
index e9b9e7f..814e7e7 100644
--- a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-btree-test/src/test/java/org/apache/hyracks/storage/am/btree/FieldPrefixNSMTest.java
+++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-btree-test/src/test/java/org/apache/hyracks/storage/am/btree/FieldPrefixNSMTest.java
@@ -69,7 +69,7 @@
}
}
- IFrame buf = new VSizeFrame(ctx);
+ IFrame buf = ctx.allocateVSizeFrame();
FrameTupleAppender appender = new FrameTupleAppender(buf);
ArrayTupleBuilder tb = new ArrayTupleBuilder(3);
DataOutput dos = tb.getDataOutput();
diff --git a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/Span.java b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/Span.java
index 1a40360..045f2c5 100644
--- a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/Span.java
+++ b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/Span.java
@@ -93,7 +93,6 @@
private Span(long span, TimeUnit unit) {
spanNanos = unit.toNanos(span);
- reset();
}
public void reset() {
@@ -108,7 +107,25 @@
return unit.convert(spanNanos, TimeUnit.NANOSECONDS);
}
+ /**
+ * Create and start a new Span
+ * @param span the duration of the Span
+ * @param unit the unit of the specified duration
+ * @return the started Span
+ */
public static Span start(long span, TimeUnit unit) {
+ Span s = new Span(span, unit);
+ s.reset();
+ return s;
+ }
+
+ /**
+ * Create a new Span (not started) - this span is elapsed until reset is called
+ * @param span the duration of the Span
+ * @param unit the unit of the specified duration
+ * @return the created (expired) Span
+ */
+ public static Span init(long span, TimeUnit unit) {
return new Span(span, unit);
}
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20598?usp=email
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: asterixdb
Gerrit-Branch: trinity
Gerrit-Change-Id: I492d341e84675cca57cef937fcbf4851379981cf
Gerrit-Change-Number: 20598
Gerrit-PatchSet: 1
Gerrit-Owner: Michael Blow <mb...@apache.org>