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/06/17 16:10:33 UTC
Change in asterixdb[ionic]: [ASTERIXDB-3601][STO] added config for default writer
From Ritik Raj <ri...@couchbase.com>:
Ritik Raj has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19951 )
Change subject: [ASTERIXDB-3601][STO] added config for default writer
......................................................................
[ASTERIXDB-3601][STO] added config for default writer
Change-Id: Iab9bf2459f550a8f08e1c86aa027720507a2e0a7
---
M asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/flush/FlushColumnTupleWriter.java
M asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/PageZeroWriterFlavorSelector.java
M hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/btree/IColumnPageZeroWriterFlavorSelector.java
M hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/btree/ColumnBTreeBulkloader.java
4 files changed, 21 insertions(+), 4 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/51/19951/1
diff --git a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/flush/FlushColumnTupleWriter.java b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/flush/FlushColumnTupleWriter.java
index 018c604..f89d2ff 100644
--- a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/flush/FlushColumnTupleWriter.java
+++ b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/flush/FlushColumnTupleWriter.java
@@ -231,7 +231,8 @@
finalizer.finalizeBatchColumns(columnMetadata, presentColumnsIndexes, pageZeroWriter);
int afterColumns = presentColumnsIndexes.size();
int diff = afterColumns - beforeColumns;
- if (diff > 0 && diff > transformerForCurrentTuple.getExtraColumnsCount()) {
+ if (pageZeroWriterFlavorSelector.getWriterFlag() != IColumnPageZeroWriter.ColumnPageZeroWriterType.DEFAULT
+ .getWriterFlag() && diff > 0 && diff > transformerForCurrentTuple.getExtraColumnsCount()) {
throw new IllegalStateException(
"Expected Columns: " + (beforeColumns + transformerForCurrentTuple.getExtraColumnsCount())
+ " but got " + afterColumns + " columns");
diff --git a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/PageZeroWriterFlavorSelector.java b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/PageZeroWriterFlavorSelector.java
index add4039..a2cda25 100644
--- a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/PageZeroWriterFlavorSelector.java
+++ b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/zero/PageZeroWriterFlavorSelector.java
@@ -50,7 +50,7 @@
*/
public class PageZeroWriterFlavorSelector implements IColumnPageZeroWriterFlavorSelector {
// Flag indicating which writer type is currently selected (DEFAULT_WRITER_FLAG=default, SPARSE_WRITER_FLAG=sparse)
- protected byte writerFlag = MULTI_PAGE_DEFAULT_WRITER_FLAG;
+ protected byte writerFlag = IColumnPageZeroWriter.ColumnPageZeroWriterType.ADAPTIVE.getWriterFlag();
// Cache of writer instances to avoid repeated object creation
private final Byte2ObjectArrayMap<IColumnPageZeroWriter> writers;
@@ -106,6 +106,11 @@
};
}
+ @Override
+ public byte getWriterFlag() {
+ return writerFlag;
+ }
+
/**
* Creates a page zero reader instance based on the provided flag.
* This method is used during deserialization to create the appropriate reader
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/btree/ColumnBTreeBulkloader.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/btree/ColumnBTreeBulkloader.java
index beb1a64..8dc83be 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/btree/ColumnBTreeBulkloader.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/btree/ColumnBTreeBulkloader.java
@@ -87,8 +87,8 @@
// Writer config
maxColumnsInPageZerothSegment = storageConfig.getStorageMaxColumnsInZerothSegment();
- pageZeroWriterType =
- IColumnPageZeroWriter.ColumnPageZeroWriterType.valueOf(storageConfig.getStoragePageZeroWriter());
+ pageZeroWriterType = IColumnPageZeroWriter.ColumnPageZeroWriterType
+ .valueOf(storageConfig.getStoragePageZeroWriter().toUpperCase());
// For logging. Starts with 1 for page0
numberOfPagesInCurrentLeafNode = 1;
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/btree/IColumnPageZeroWriterFlavorSelector.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/btree/IColumnPageZeroWriterFlavorSelector.java
index e3f1098..0dc4d4d 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/btree/IColumnPageZeroWriterFlavorSelector.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/impls/btree/IColumnPageZeroWriterFlavorSelector.java
@@ -44,6 +44,8 @@
*/
void switchPageZeroWriterIfNeeded(int spaceOccupiedByDefaultWriter, int spaceOccupiedBySparseWriter);
+ byte getWriterFlag();
+
/**
* Creates the appropriate page zero reader for the given writer type.
* <p>
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19951
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: ionic
Gerrit-Change-Id: Iab9bf2459f550a8f08e1c86aa027720507a2e0a7
Gerrit-Change-Number: 19951
Gerrit-PatchSet: 1
Gerrit-Owner: Ritik Raj <ri...@couchbase.com>
Gerrit-MessageType: newchange