>From Preetham Poluparthi <[email protected]>:

Preetham Poluparthi has uploaded this change for review. ( 
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20470?usp=email )


Change subject: WIP: Storage debug
......................................................................

WIP: Storage debug

Change-Id: I87e8c54deb257fa28ff7b2730adcb682783a2338
---
M asterixdb/asterix-app/src/test/resources/cc-main.conf
M 
asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/AbstractColumnValuesWriter.java
M 
asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/BooleanColumnValuesWriter.java
M 
asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/DoubleColumnValuesWriter.java
M 
asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/FloatColumnValuesWriter.java
M 
asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/LongColumnValuesWriter.java
M 
asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/NullMissingColumnValuesWriter.java
M 
asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/StringColumnValuesWriter.java
8 files changed, 95 insertions(+), 1 deletion(-)



  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/70/20470/1

diff --git a/asterixdb/asterix-app/src/test/resources/cc-main.conf 
b/asterixdb/asterix-app/src/test/resources/cc-main.conf
index cdc3e6b..f5a3dfe 100644
--- a/asterixdb/asterix-app/src/test/resources/cc-main.conf
+++ b/asterixdb/asterix-app/src/test/resources/cc-main.conf
@@ -41,6 +41,7 @@
 jvm.args=-Xmx4096m 
-Dnode.Resolver="org.apache.asterix.external.util.IdentitiyResolverFactory"
 storage.buffercache.size=128MB
 storage.memorycomponent.globalbudget=512MB
+storage.max.columns.in.zeroth.segment=800

 [cc]
 address = 127.0.0.1
diff --git 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/AbstractColumnValuesWriter.java
 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/AbstractColumnValuesWriter.java
index accf4a0..5dd9d78 100644
--- 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/AbstractColumnValuesWriter.java
+++ 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/AbstractColumnValuesWriter.java
@@ -20,8 +20,12 @@

 import java.io.DataInput;
 import java.io.DataOutput;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
 import java.io.IOException;
 import java.io.OutputStream;
+import java.util.List;

 import 
org.apache.asterix.column.bytes.encoder.ParquetRunLengthBitPackingHybridEncoder;
 import org.apache.asterix.column.util.ColumnValuesUtil;
@@ -40,11 +44,12 @@
 import org.apache.parquet.bytes.BytesUtils;

 public abstract class AbstractColumnValuesWriter implements 
IColumnValuesWriter {
-    private static final Logger LOGGER = LogManager.getLogger();
+    private static final Logger LOGGER = 
LogManager.getLogger(AbstractColumnValuesWriter.class);
     // For 3 integers (count, defSize, and valueSize)
     private static final int COUNT_DEF_SIZE_VALUE_SIZE = Integer.BYTES * 3;
     protected final AbstractColumnFilterWriter filterWriter;
     protected final ParquetRunLengthBitPackingHybridEncoder definitionLevels;
+    protected final List<Integer> definitionLevelsList = new 
java.util.ArrayList<>();
     protected final int level;

     private final int columnIndex;
@@ -111,6 +116,7 @@
         try {
             for (int i = 0; i < count; i++) {
                 definitionLevels.writeInt(level);
+                definitionLevelsList.add(level);
             }
         } catch (IOException e) {
             throw HyracksDataException.create(e);
@@ -174,9 +180,17 @@
     public final void flush(OutputStream out) throws HyracksDataException {
         BytesInput values;
         BytesInput defLevelBytes;
+
+        LOGGER.info("@{} Flushing columnIndex {} at level {} with null bit 
mask {}",this.hashCode() ,columnIndex, level, nullBitMask);
+
         try {
             BytesUtils.writeZigZagVarInt(level, out);
             defLevelBytes = definitionLevels.toBytes();
+
+            LOGGER.info("@{} LEVEL: {}, COUNT: {}",this.hashCode(), level, 
count);
+            LOGGER.info("@{} DEFINITION LEVELS: {}",this.hashCode() 
,definitionLevelsList);
+            LOGGER.info("@{} VALUES: {}",this.hashCode(), getValuesString());
+
             BytesUtils.writeZigZagVarInt((int) defLevelBytes.size(), out);
             BytesUtils.writeZigZagVarInt(count, out);
             defLevelBytes.writeAllTo(out);
@@ -230,6 +244,7 @@
         try {
             writeValues = writeValues || this.level == level;
             definitionLevels.writeInt(level);
+            definitionLevelsList.add(level);
             count++;
         } catch (IOException e) {
             throw HyracksDataException.create(e);
@@ -255,4 +270,7 @@
     protected abstract void resetValues() throws HyracksDataException;

     protected abstract void closeValues();
+
+    protected abstract String getValuesString();
+
 }
diff --git 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/BooleanColumnValuesWriter.java
 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/BooleanColumnValuesWriter.java
index 7d50cb1..5cba64a 100644
--- 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/BooleanColumnValuesWriter.java
+++ 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/BooleanColumnValuesWriter.java
@@ -19,6 +19,7 @@
 package org.apache.asterix.column.values.writer;

 import java.io.IOException;
+import java.util.List;

 import 
org.apache.asterix.column.bytes.encoder.ParquetRunLengthBitPackingHybridEncoder;
 import org.apache.asterix.column.values.IColumnValuesReader;
@@ -30,6 +31,10 @@

 public final class BooleanColumnValuesWriter extends 
AbstractColumnValuesWriter {
     private final ParquetRunLengthBitPackingHybridEncoder booleanWriter;
+    private final List<Boolean> booleanList = new java.util.ArrayList<>();
+
+
+

     public BooleanColumnValuesWriter(int columnIndex, int level, boolean 
collection, boolean filtered) {
         super(columnIndex, level, collection, filtered);
@@ -40,6 +45,7 @@
     protected void addValue(ATypeTag tag, IValueReference value) throws 
IOException {
         byte booleanValue = value.getByteArray()[value.getStartOffset()];
         booleanWriter.writeInt(booleanValue);
+            booleanList.add(booleanValue!=0);
         filterWriter.addLong(booleanValue);
     }

@@ -72,6 +78,7 @@
     protected void addValue(IColumnValuesReader reader) throws IOException {
         int value = reader.getBoolean() ? 1 : 0;
         booleanWriter.writeInt(value);
+        booleanList.add(value!=0);
         filterWriter.addLong(value);
     }

@@ -86,6 +93,11 @@
     }

     @Override
+    protected String getValuesString() {
+        return booleanList.toString();
+    }
+
+    @Override
     protected ATypeTag getTypeTag() {
         return ATypeTag.BOOLEAN;
     }
diff --git 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/DoubleColumnValuesWriter.java
 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/DoubleColumnValuesWriter.java
index 9e6f906..52c7f4a 100644
--- 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/DoubleColumnValuesWriter.java
+++ 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/DoubleColumnValuesWriter.java
@@ -18,7 +18,11 @@
  */
 package org.apache.asterix.column.values.writer;

+import java.io.File;
+import java.io.FileWriter;
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;

 import 
org.apache.asterix.column.bytes.encoder.ParquetPlainFixedLengthValuesWriter;
 import org.apache.asterix.column.values.IColumnValuesReader;
@@ -38,6 +42,7 @@

 public final class DoubleColumnValuesWriter extends AbstractColumnValuesWriter 
{
     private final ParquetPlainFixedLengthValuesWriter doubleWriter;
+    private final List<Double> doubleList = new ArrayList<>();

     public DoubleColumnValuesWriter(Mutable<IColumnWriteMultiPageOp> 
multiPageOpRef, int columnIndex, int level,
             boolean collection, boolean filtered) {
@@ -49,6 +54,7 @@
     protected void addValue(ATypeTag tag, IValueReference value) throws 
IOException {
         final double normalizedDouble = getValue(tag, value.getByteArray(), 
value.getStartOffset());
         doubleWriter.writeDouble(normalizedDouble);
+        doubleList.add(normalizedDouble);
         filterWriter.addDouble(normalizedDouble);
     }

@@ -100,6 +106,7 @@
     protected void addValue(IColumnValuesReader reader) throws IOException {
         double value = reader.getDouble();
         doubleWriter.writeDouble(value);
+        doubleList.add(value);
         filterWriter.addDouble(value);
     }

@@ -114,6 +121,11 @@
     }

     @Override
+    protected String getValuesString() {
+        return doubleList.toString();
+    }
+
+    @Override
     protected ATypeTag getTypeTag() {
         return ATypeTag.DOUBLE;
     }
diff --git 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/FloatColumnValuesWriter.java
 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/FloatColumnValuesWriter.java
index 39abcad..1f05f4f 100644
--- 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/FloatColumnValuesWriter.java
+++ 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/FloatColumnValuesWriter.java
@@ -18,7 +18,11 @@
  */
 package org.apache.asterix.column.values.writer;

+import java.io.File;
+import java.io.FileWriter;
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;

 import 
org.apache.asterix.column.bytes.encoder.ParquetPlainFixedLengthValuesWriter;
 import org.apache.asterix.column.values.IColumnValuesReader;
@@ -38,6 +42,7 @@

 public final class FloatColumnValuesWriter extends AbstractColumnValuesWriter {
     private final ParquetPlainFixedLengthValuesWriter floatWriter;
+    private final List<Float> floatList= new ArrayList<>();

     public FloatColumnValuesWriter(Mutable<IColumnWriteMultiPageOp> 
multiPageOpRef, int columnIndex, int level,
             boolean collection, boolean filtered) {
@@ -49,6 +54,7 @@
     protected void addValue(ATypeTag tag, IValueReference value) throws 
IOException {
         final float normalizedDouble = getValue(tag, value.getByteArray(), 
value.getStartOffset());
         floatWriter.writeFloat(normalizedDouble);
+        floatList.add(normalizedDouble);
         filterWriter.addDouble(normalizedDouble);
     }

@@ -100,6 +106,7 @@
     protected void addValue(IColumnValuesReader reader) throws IOException {
         float value = reader.getFloat();
         floatWriter.writeFloat(value);
+        floatList.add(value);
         filterWriter.addDouble(value);
     }

@@ -114,6 +121,11 @@
     }

     @Override
+    protected String getValuesString() {
+        return floatList.toString();
+    }
+
+    @Override
     protected ATypeTag getTypeTag() {
         return ATypeTag.FLOAT;
     }
diff --git 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/LongColumnValuesWriter.java
 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/LongColumnValuesWriter.java
index 516f56d..b0dd3aa9 100644
--- 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/LongColumnValuesWriter.java
+++ 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/LongColumnValuesWriter.java
@@ -20,7 +20,12 @@

 import static 
org.apache.asterix.column.util.ColumnValuesUtil.getNormalizedTypeTag;

+import java.io.File;
+import java.io.FileWriter;
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;

 import org.apache.asterix.column.bytes.encoder.AbstractParquetValuesWriter;
 import 
org.apache.asterix.column.bytes.encoder.ParquetDeltaBinaryPackingValuesWriterForLong;
@@ -41,6 +46,7 @@
 final class LongColumnValuesWriter extends AbstractColumnValuesWriter {
     private final AbstractParquetValuesWriter longWriter;
     private final ATypeTag typeTag;
+    private final List<Long> longList = new ArrayList<>();

     public LongColumnValuesWriter(Mutable<IColumnWriteMultiPageOp> 
multiPageOpRef, int columnIndex, int level,
             boolean collection, boolean filtered, ATypeTag typeTag) {
@@ -55,6 +61,7 @@
     protected void addValue(ATypeTag tag, IValueReference value) {
         final long normalizedInt = getValue(tag, value.getByteArray(), 
value.getStartOffset());
         longWriter.writeLong(normalizedInt);
+        longList.add(normalizedInt);
         filterWriter.addLong(normalizedInt);
     }

@@ -102,6 +109,7 @@
     protected void addValue(IColumnValuesReader reader) throws IOException {
         long value = reader.getLong();
         longWriter.writeLong(value);
+        longList.add(value);
         filterWriter.addLong(value);
     }

@@ -116,6 +124,11 @@
     }

     @Override
+    protected String getValuesString() {
+        return longList.toString();
+    }
+
+    @Override
     protected ATypeTag getTypeTag() {
         return typeTag;
     }
diff --git 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/NullMissingColumnValuesWriter.java
 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/NullMissingColumnValuesWriter.java
index 2d9f5bf..0375473 100644
--- 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/NullMissingColumnValuesWriter.java
+++ 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/NullMissingColumnValuesWriter.java
@@ -18,13 +18,19 @@
  */
 package org.apache.asterix.column.values.writer;

+import java.io.File;
+import java.io.FileWriter;
 import java.io.IOException;
+import java.util.List;
+import java.util.UUID;

+import jnr.ffi.annotations.In;
 import org.apache.asterix.column.util.RunLengthIntArray;
 import org.apache.asterix.column.values.IColumnValuesReader;
 import 
org.apache.asterix.column.values.writer.filters.AbstractColumnFilterWriter;
 import org.apache.asterix.column.values.writer.filters.NoOpColumnFilterWriter;
 import org.apache.asterix.om.types.ATypeTag;
+import org.apache.commons.lang3.tuple.Pair;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
 import org.apache.hyracks.data.std.api.IValueReference;
 import org.apache.parquet.bytes.BytesInput;
@@ -32,6 +38,7 @@
 public class NullMissingColumnValuesWriter extends AbstractColumnValuesWriter {
     private static final BytesInput EMPTY = BytesInput.empty();
     private final RunLengthIntArray defLevelsIntArray;
+    private final List<Pair<Integer, Integer>> definitionLevelsList = new 
java.util.ArrayList<>();

     NullMissingColumnValuesWriter(int columnIndex, int level, boolean 
collection, boolean filtered) {
         super(columnIndex, level, collection, filtered);
@@ -41,12 +48,14 @@
     @Override
     protected void addLevel(int level) throws HyracksDataException {
         defLevelsIntArray.add(level);
+        definitionLevelsList.add(Pair.of(level,1));
         super.addLevel(level);
     }

     @Override
     public void writeLevels(int level, int count) throws HyracksDataException {
         defLevelsIntArray.add(level, count);
+        definitionLevelsList.add(Pair.of(level,count));
         super.writeLevels(level, count);
     }

@@ -101,6 +110,11 @@
     }

     @Override
+    protected String getValuesString() {
+        return definitionLevelsList.toString();
+    }
+
+    @Override
     public RunLengthIntArray getDefinitionLevelsIntArray() {
         return defLevelsIntArray;
     }
diff --git 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/StringColumnValuesWriter.java
 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/StringColumnValuesWriter.java
index 5b1977f..d9c0d47 100644
--- 
a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/StringColumnValuesWriter.java
+++ 
b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/writer/StringColumnValuesWriter.java
@@ -18,7 +18,11 @@
  */
 package org.apache.asterix.column.values.writer;

+import java.io.File;
+import java.io.FileWriter;
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;

 import org.apache.asterix.column.bytes.encoder.AbstractParquetValuesWriter;
 import org.apache.asterix.column.bytes.encoder.ParquetDeltaByteArrayWriter;
@@ -35,6 +39,7 @@

 public class StringColumnValuesWriter extends AbstractColumnValuesWriter {
     private final AbstractParquetValuesWriter stringWriter;
+    private final List<String> stringList = new ArrayList<>();
     private final boolean skipLengthBytes;

     public StringColumnValuesWriter(Mutable<IColumnWriteMultiPageOp> 
multiPageOpRef, int columnIndex, int level,
@@ -53,6 +58,7 @@
     @Override
     protected final void addValue(ATypeTag tag, IValueReference value) throws 
IOException {
         stringWriter.writeBytes(value, skipLengthBytes);
+        stringList.add(new String(value.getByteArray(), 
value.getStartOffset(), value.getLength()));
         filterWriter.addValue(value);
     }

@@ -86,6 +92,7 @@
         IValueReference value = reader.getBytes();
         stringWriter.writeBytes(value, skipLengthBytes);
         filterWriter.addValue(value);
+        stringList.add(new String(value.getByteArray(), 
value.getStartOffset(), value.getLength()));
     }

     @Override
@@ -99,6 +106,11 @@
     }

     @Override
+    protected String getValuesString() {
+        return stringList.toString();
+    }
+
+    @Override
     protected ATypeTag getTypeTag() {
         return ATypeTag.STRING;
     }

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20470?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: master
Gerrit-Change-Id: I87e8c54deb257fa28ff7b2730adcb682783a2338
Gerrit-Change-Number: 20470
Gerrit-PatchSet: 1
Gerrit-Owner: Preetham Poluparthi <[email protected]>

Reply via email to