This is an automated email from the ASF dual-hosted git repository. east pushed a commit to branch nvmlogging in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
commit 158f790415d2e57df179c30232092eb8c4f3061c Author: mdf369 <[email protected]> AuthorDate: Wed Jan 8 21:52:18 2020 +0800 fix bugs --- .../apache/iotdb/db/nvm/metadata/DataTypeMemo.java | 22 ++++++++---- .../iotdb/db/nvm/metadata/NVMSpaceMetadata.java | 11 ++++-- .../apache/iotdb/db/nvm/metadata/OffsetMemo.java | 20 ++++++++--- .../apache/iotdb/db/nvm/metadata/SpaceCount.java | 19 +++++++--- .../iotdb/db/nvm/metadata/SpaceStatusBitMap.java | 22 ++++++++---- .../iotdb/db/nvm/metadata/TimeValueMapper.java | 20 ++++++++--- .../db/nvm/metadata/TimeseriesTimeIndexMapper.java | 31 ++++++++++------- .../nvm/recover/NVMMemtableRecoverPerformer.java | 3 +- .../apache/iotdb/db/nvm/space/NVMDataSpace.java | 26 +++++++++----- .../org/apache/iotdb/db/nvm/space/NVMSpace.java | 40 ++++++++++++++++++++-- .../apache/iotdb/db/nvm/space/NVMSpaceManager.java | 5 ++- .../db/nvm/space/NVMSpaceMetadataManager.java | 24 ++++--------- .../apache/iotdb/db/nvm/space/NVMStringBuffer.java | 12 +++---- .../db/utils/datastructure/NVMBooleanTVList.java | 6 ++-- .../db/utils/datastructure/NVMDoubleTVList.java | 6 ++-- .../db/utils/datastructure/NVMFloatTVList.java | 6 ++-- .../iotdb/db/utils/datastructure/NVMIntTVList.java | 6 ++-- .../db/utils/datastructure/NVMLongTVList.java | 6 ++-- .../iotdb/db/utils/datastructure/NVMTVList.java | 10 +++--- 19 files changed, 195 insertions(+), 100 deletions(-) diff --git a/server/src/main/java/org/apache/iotdb/db/nvm/metadata/DataTypeMemo.java b/server/src/main/java/org/apache/iotdb/db/nvm/metadata/DataTypeMemo.java index 5fd7761..357b63b 100644 --- a/server/src/main/java/org/apache/iotdb/db/nvm/metadata/DataTypeMemo.java +++ b/server/src/main/java/org/apache/iotdb/db/nvm/metadata/DataTypeMemo.java @@ -1,19 +1,29 @@ package org.apache.iotdb.db.nvm.metadata; -import org.apache.iotdb.db.nvm.space.NVMSpace; +import java.io.IOException; +import org.apache.iotdb.db.nvm.space.NVMSpaceManager; import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; public class DataTypeMemo extends NVMSpaceMetadata { - public DataTypeMemo(NVMSpace space) { - super(space); + public DataTypeMemo() throws IOException { } - + public void set(int index, TSDataType dataType) { - space.getByteBuffer().putShort(index, dataType.serialize()); + space.putShort(index, dataType.serialize()); } public TSDataType get(int index) { - return TSDataType.deserialize(space.getByteBuffer().getShort(index)); + return TSDataType.deserialize(space.getShort(index)); + } + + @Override + int getUnitSize() { + return Short.BYTES; + } + + @Override + int getUnitNum() { + return NVMSpaceManager.NVMSPACE_NUM_MAX; } } diff --git a/server/src/main/java/org/apache/iotdb/db/nvm/metadata/NVMSpaceMetadata.java b/server/src/main/java/org/apache/iotdb/db/nvm/metadata/NVMSpaceMetadata.java index d5ef0be..9541bdc 100644 --- a/server/src/main/java/org/apache/iotdb/db/nvm/metadata/NVMSpaceMetadata.java +++ b/server/src/main/java/org/apache/iotdb/db/nvm/metadata/NVMSpaceMetadata.java @@ -1,12 +1,19 @@ package org.apache.iotdb.db.nvm.metadata; +import java.io.IOException; import org.apache.iotdb.db.nvm.space.NVMSpace; +import org.apache.iotdb.db.nvm.space.NVMSpaceManager; public abstract class NVMSpaceMetadata { protected NVMSpace space; - public NVMSpaceMetadata(NVMSpace space) { - this.space = space; + public NVMSpaceMetadata() throws IOException { + long size = getUnitSize() * getUnitNum(); + space = NVMSpaceManager.getInstance().allocateSpace(size); } + + abstract int getUnitSize(); + + abstract int getUnitNum(); } diff --git a/server/src/main/java/org/apache/iotdb/db/nvm/metadata/OffsetMemo.java b/server/src/main/java/org/apache/iotdb/db/nvm/metadata/OffsetMemo.java index ecb2554..114e6e4 100644 --- a/server/src/main/java/org/apache/iotdb/db/nvm/metadata/OffsetMemo.java +++ b/server/src/main/java/org/apache/iotdb/db/nvm/metadata/OffsetMemo.java @@ -1,18 +1,28 @@ package org.apache.iotdb.db.nvm.metadata; -import org.apache.iotdb.db.nvm.space.NVMSpace; +import java.io.IOException; +import org.apache.iotdb.db.nvm.space.NVMSpaceManager; public class OffsetMemo extends NVMSpaceMetadata { - public OffsetMemo(NVMSpace space) { - super(space); + public OffsetMemo() throws IOException { } public void set(int index, long offset) { - space.getByteBuffer().putLong(index, offset); + space.putLong(index, offset); } public long get(int index) { - return space.getByteBuffer().getLong(index); + return space.getLong(index); + } + + @Override + int getUnitSize() { + return Long.BYTES; + } + + @Override + int getUnitNum() { + return NVMSpaceManager.NVMSPACE_NUM_MAX; } } diff --git a/server/src/main/java/org/apache/iotdb/db/nvm/metadata/SpaceCount.java b/server/src/main/java/org/apache/iotdb/db/nvm/metadata/SpaceCount.java index b3c7474..951a3e6 100644 --- a/server/src/main/java/org/apache/iotdb/db/nvm/metadata/SpaceCount.java +++ b/server/src/main/java/org/apache/iotdb/db/nvm/metadata/SpaceCount.java @@ -1,18 +1,27 @@ package org.apache.iotdb.db.nvm.metadata; -import org.apache.iotdb.db.nvm.space.NVMSpace; +import java.io.IOException; public class SpaceCount extends NVMSpaceMetadata { - public SpaceCount(NVMSpace space) { - super(space); + public SpaceCount() throws IOException { } public void put(int v) { - space.getByteBuffer().putInt(0, v); + space.putInt(0, v); } public int get() { - return space.getByteBuffer().getInt(0); + return space.getInt(0); + } + + @Override + int getUnitSize() { + return Integer.BYTES; + } + + @Override + int getUnitNum() { + return 1; } } diff --git a/server/src/main/java/org/apache/iotdb/db/nvm/metadata/SpaceStatusBitMap.java b/server/src/main/java/org/apache/iotdb/db/nvm/metadata/SpaceStatusBitMap.java index 783df57..aae6ac0 100644 --- a/server/src/main/java/org/apache/iotdb/db/nvm/metadata/SpaceStatusBitMap.java +++ b/server/src/main/java/org/apache/iotdb/db/nvm/metadata/SpaceStatusBitMap.java @@ -1,27 +1,27 @@ package org.apache.iotdb.db.nvm.metadata; +import java.io.IOException; import java.util.ArrayList; import java.util.List; -import org.apache.iotdb.db.nvm.space.NVMSpace; +import org.apache.iotdb.db.nvm.space.NVMSpaceManager; public class SpaceStatusBitMap extends NVMSpaceMetadata { - public SpaceStatusBitMap(NVMSpace space) { - super(space); + public SpaceStatusBitMap() throws IOException { } public void setUse(int index, boolean isTime) { - space.getByteBuffer().put(index, isTime ? (byte) 1 : (byte) 2); + space.put(index, isTime ? (byte) 1 : (byte) 2); } public void setFree(int index) { - space.getByteBuffer().put(index, (byte) 0); + space.put(index, (byte) 0); } public List<Integer> getValidTimeSpaceIndexList(int count) { List<Integer> validTimeSpaceIndexList = new ArrayList<>(); for (int i = 0; i < space.getSize(); i++) { - byte flag = space.getByteBuffer().get(i); + byte flag = space.get(i); if (flag == 1) { validTimeSpaceIndexList.add(i); if (validTimeSpaceIndexList.size() == count) { @@ -31,4 +31,14 @@ public class SpaceStatusBitMap extends NVMSpaceMetadata { } return validTimeSpaceIndexList; } + + @Override + int getUnitSize() { + return Byte.BYTES; + } + + @Override + int getUnitNum() { + return NVMSpaceManager.NVMSPACE_NUM_MAX; + } } diff --git a/server/src/main/java/org/apache/iotdb/db/nvm/metadata/TimeValueMapper.java b/server/src/main/java/org/apache/iotdb/db/nvm/metadata/TimeValueMapper.java index 9736b27..03dc93b 100644 --- a/server/src/main/java/org/apache/iotdb/db/nvm/metadata/TimeValueMapper.java +++ b/server/src/main/java/org/apache/iotdb/db/nvm/metadata/TimeValueMapper.java @@ -1,18 +1,28 @@ package org.apache.iotdb.db.nvm.metadata; -import org.apache.iotdb.db.nvm.space.NVMSpace; +import java.io.IOException; +import org.apache.iotdb.db.nvm.space.NVMSpaceManager; public class TimeValueMapper extends NVMSpaceMetadata { - public TimeValueMapper(NVMSpace space) { - super(space); + public TimeValueMapper() throws IOException { } public void map(int timeSpaceIndex, int valueSpaceIndex) { - space.getByteBuffer().putInt(timeSpaceIndex, valueSpaceIndex); + space.putInt(timeSpaceIndex, valueSpaceIndex); } public int get(int timeSpaceIndex) { - return space.getByteBuffer().getInt(timeSpaceIndex); + return space.getInt(timeSpaceIndex); + } + + @Override + int getUnitSize() { + return Integer.BYTES; + } + + @Override + int getUnitNum() { + return NVMSpaceManager.NVMSPACE_NUM_MAX; } } diff --git a/server/src/main/java/org/apache/iotdb/db/nvm/metadata/TimeseriesTimeIndexMapper.java b/server/src/main/java/org/apache/iotdb/db/nvm/metadata/TimeseriesTimeIndexMapper.java index 15ba4b7..2a6d7d9 100644 --- a/server/src/main/java/org/apache/iotdb/db/nvm/metadata/TimeseriesTimeIndexMapper.java +++ b/server/src/main/java/org/apache/iotdb/db/nvm/metadata/TimeseriesTimeIndexMapper.java @@ -1,8 +1,7 @@ package org.apache.iotdb.db.nvm.metadata; import java.io.IOException; -import java.nio.ByteBuffer; -import org.apache.iotdb.db.nvm.space.NVMSpace; +import org.apache.iotdb.db.nvm.space.NVMSpaceManager; import org.apache.iotdb.db.nvm.space.NVMStringBuffer; public class TimeseriesTimeIndexMapper extends NVMSpaceMetadata { @@ -14,9 +13,7 @@ public class TimeseriesTimeIndexMapper extends NVMSpaceMetadata { private NVMStringBuffer deviceIdBuffer; private NVMStringBuffer measurementIdBuffer; - public TimeseriesTimeIndexMapper(NVMSpace space) throws IOException { - super(space); - + public TimeseriesTimeIndexMapper() throws IOException { initTimeseriesSpaces(); } @@ -37,19 +34,27 @@ public class TimeseriesTimeIndexMapper extends NVMSpaceMetadata { private void mapTimeIndexToTimeSeries(int timeSpaceIndex, int sgIndex, int deviceIndex, int measurementIndex) { int index = timeSpaceIndex * 3; - ByteBuffer byteBuffer = space.getByteBuffer(); - byteBuffer.putInt(index, sgIndex); - byteBuffer.putInt(index + 1, deviceIndex); - byteBuffer.putInt(index + 2, measurementIndex); + space.putInt(index, sgIndex); + space.putInt(index + 1, deviceIndex); + space.putInt(index + 2, measurementIndex); } public String[] getTimeseries(int timeSpaceIndex) { - ByteBuffer byteBuffer = space.getByteBuffer(); int index = timeSpaceIndex * 3; String[] timeseries = new String[3]; - timeseries[0] = sgIdBuffer.get(byteBuffer.getInt(index)); - timeseries[1] = deviceIdBuffer.get(byteBuffer.getInt(index + 1)); - timeseries[2] = measurementIdBuffer.get(byteBuffer.getInt(index + 2)); + timeseries[0] = sgIdBuffer.get(space.getInt(index)); + timeseries[1] = deviceIdBuffer.get(space.getInt(index + 1)); + timeseries[2] = measurementIdBuffer.get(space.getInt(index + 2)); return timeseries; } + + @Override + int getUnitSize() { + return Integer.BYTES * 3; + } + + @Override + int getUnitNum() { + return NVMSpaceManager.NVMSPACE_NUM_MAX; + } } diff --git a/server/src/main/java/org/apache/iotdb/db/nvm/recover/NVMMemtableRecoverPerformer.java b/server/src/main/java/org/apache/iotdb/db/nvm/recover/NVMMemtableRecoverPerformer.java index f439314..73c51b4 100644 --- a/server/src/main/java/org/apache/iotdb/db/nvm/recover/NVMMemtableRecoverPerformer.java +++ b/server/src/main/java/org/apache/iotdb/db/nvm/recover/NVMMemtableRecoverPerformer.java @@ -6,7 +6,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; -import org.apache.iotdb.db.engine.memtable.AbstractMemTable; import org.apache.iotdb.db.engine.storagegroup.TsFileResource; import org.apache.iotdb.db.exception.StartupException; import org.apache.iotdb.db.nvm.memtable.NVMPrimitiveMemTable; @@ -91,7 +90,7 @@ public class NVMMemtableRecoverPerformer { } for (int j = 0; j < unitNum; j++) { - long time = (long) timeSpace.get(j); + long time = (long) timeSpace.getData(j); minTime = Math.min(minTime, time); maxTime = Math.max(maxTime, time); } diff --git a/server/src/main/java/org/apache/iotdb/db/nvm/space/NVMDataSpace.java b/server/src/main/java/org/apache/iotdb/db/nvm/space/NVMDataSpace.java index b9e3d76..b600e87 100644 --- a/server/src/main/java/org/apache/iotdb/db/nvm/space/NVMDataSpace.java +++ b/server/src/main/java/org/apache/iotdb/db/nvm/space/NVMDataSpace.java @@ -46,12 +46,12 @@ public class NVMDataSpace extends NVMSpace { return count; } - public Object get(int index) { + public Object getData(int index) { index *= unitSize; Object object = null; switch (dataType) { case BOOLEAN: - object = byteBuffer.get(index); + object = byteToBoolean(byteBuffer.get(index)); break; case INT32: object = byteBuffer.getInt(index); @@ -72,11 +72,15 @@ public class NVMDataSpace extends NVMSpace { return object; } - public void set(int index, Object object) { + private boolean byteToBoolean(byte v) { + return v == 1; + } + + public void setData(int index, Object object) { index *= unitSize; switch (dataType) { case BOOLEAN: - byteBuffer.put(index, (byte) object); + byteBuffer.put(index, booleanToByte((boolean) object)); break; case INT32: byteBuffer.putInt(index, (int) object); @@ -96,6 +100,10 @@ public class NVMDataSpace extends NVMSpace { } } + private byte booleanToByte(boolean v) { + return v ? (byte) 1 : (byte) 0; + } + public int getIndex() { return index; } @@ -110,31 +118,31 @@ public class NVMDataSpace extends NVMSpace { case BOOLEAN: boolean[] boolArray = new boolean[arraySize]; for (int i = 0; i < arraySize; i++) { - boolArray[i] = ((byte) get(i) == 1); + boolArray[i] = (boolean) getData(i); } return boolArray; case INT32: int[] intArray = new int[arraySize]; for (int i = 0; i < arraySize; i++) { - intArray[i] = (int) get(i); + intArray[i] = (int) getData(i); } return intArray; case INT64: long[] longArray = new long[arraySize]; for (int i = 0; i < arraySize; i++) { - longArray[i] = (long) get(i); + longArray[i] = (long) getData(i); } return longArray; case FLOAT: float[] floatArray = new float[arraySize]; for (int i = 0; i < arraySize; i++) { - floatArray[i] = (float) get(i); + floatArray[i] = (float) getData(i); } return floatArray; case DOUBLE: double[] doubleArray = new double[arraySize]; for (int i = 0; i < arraySize; i++) { - doubleArray[i] = (double) get(i); + doubleArray[i] = (double) getData(i); } return doubleArray; case TEXT: diff --git a/server/src/main/java/org/apache/iotdb/db/nvm/space/NVMSpace.java b/server/src/main/java/org/apache/iotdb/db/nvm/space/NVMSpace.java index 30c41c2..1f4c224 100644 --- a/server/src/main/java/org/apache/iotdb/db/nvm/space/NVMSpace.java +++ b/server/src/main/java/org/apache/iotdb/db/nvm/space/NVMSpace.java @@ -22,7 +22,43 @@ public class NVMSpace { return size; } - public ByteBuffer getByteBuffer() { - return byteBuffer; + public void put(int index, byte v) { + byteBuffer.put(index, v); + } + + public byte get(int index) { + return byteBuffer.get(index); + } + + public void putShort(int index, short v) { + byteBuffer.putShort(index * Short.BYTES, v); + } + + public short getShort(int index) { + return byteBuffer.getShort(index * Short.BYTES); + } + + public void putInt(int index, int v) { + byteBuffer.putInt(index * Integer.BYTES, v); + } + + public int getInt(int index) { + return byteBuffer.getInt(index * Integer.BYTES); + } + + public void putLong(int index, long v) { + byteBuffer.putLong(index * Long.BYTES, v); + } + + public long getLong(int index) { + return byteBuffer.getLong(index * Long.BYTES); + } + + public void put(byte[] v) { + byteBuffer.put(v); + } + + public void get(byte[] src) { + byteBuffer.get(src); } } diff --git a/server/src/main/java/org/apache/iotdb/db/nvm/space/NVMSpaceManager.java b/server/src/main/java/org/apache/iotdb/db/nvm/space/NVMSpaceManager.java index c17729b..119881d 100644 --- a/server/src/main/java/org/apache/iotdb/db/nvm/space/NVMSpaceManager.java +++ b/server/src/main/java/org/apache/iotdb/db/nvm/space/NVMSpaceManager.java @@ -5,6 +5,7 @@ import static org.apache.iotdb.db.nvm.rescon.NVMPrimitiveArrayPool.ARRAY_SIZE; import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; +import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import java.nio.channels.FileChannel.MapMode; import java.util.concurrent.atomic.AtomicInteger; @@ -58,6 +59,7 @@ public class NVMSpaceManager { } public synchronized NVMSpace allocateSpace(long size) throws IOException { + logger.debug("Try to allocate NVMSpace from {} to {}", curOffset, curOffset + size); NVMSpace nvmSpace = new NVMSpace(curOffset, size, nvmFileChannel.map(MAP_MODE, curOffset, size)); curOffset += size; return nvmSpace; @@ -67,7 +69,7 @@ public class NVMSpaceManager { checkIsFull(); try { - logger.trace("Try to allocate {} nvm space at {}.", size, curOffset); + logger.debug("Try to allocate NVMDataSpace from {} to {}", curOffset, curOffset + size); int index = curDataSpaceIndex.getAndIncrement(); NVMDataSpace nvmSpace = new NVMDataSpace( curOffset, size, nvmFileChannel.map(MAP_MODE, curOffset, size), index, dataType); @@ -99,6 +101,7 @@ public class NVMSpaceManager { } private synchronized NVMDataSpace recoverData(long offset, long size, int index, TSDataType dataType) throws IOException { + logger.debug("Try to recover NVMSpace from {} to {}", offset, offset + size); NVMDataSpace nvmSpace = new NVMDataSpace(offset, size, nvmFileChannel.map(MAP_MODE, offset, size), index, dataType); return nvmSpace; } diff --git a/server/src/main/java/org/apache/iotdb/db/nvm/space/NVMSpaceMetadataManager.java b/server/src/main/java/org/apache/iotdb/db/nvm/space/NVMSpaceMetadataManager.java index 871af82..d6d9d02 100644 --- a/server/src/main/java/org/apache/iotdb/db/nvm/space/NVMSpaceMetadataManager.java +++ b/server/src/main/java/org/apache/iotdb/db/nvm/space/NVMSpaceMetadataManager.java @@ -14,13 +14,6 @@ import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; public class NVMSpaceMetadataManager { - private static final long SPACE_COUNT_FIELD_BYTE_SIZE = Integer.BYTES; - private static final long BITMAP_FIELD_BYTE_SIZE = Byte.BYTES * NVMSPACE_NUM_MAX; - private static final long OFFSET_FIELD_BYTE_SIZE = Long.BYTES * NVMSPACE_NUM_MAX; - private static final long DATATYPE_FIELD_BYTE_SIZE = Short.BYTES * NVMSPACE_NUM_MAX; - private static final long TVMAP_FIELD_BYTE_SIZE = NVMSpaceManager.getPrimitiveTypeByteSize(TSDataType.INT32) * NVMSPACE_NUM_MAX; - private static final long TSTIMEMAP_FIELD_BYTE_SIZE = NVMSpaceManager.getPrimitiveTypeByteSize(TSDataType.INT32) * 3 * NVMSPACE_NUM_MAX; - private final static NVMSpaceMetadataManager INSTANCE = new NVMSpaceMetadataManager(); private SpaceCount spaceCount; @@ -30,20 +23,15 @@ public class NVMSpaceMetadataManager { private TimeValueMapper timeValueMapper; private TimeseriesTimeIndexMapper timeseriesTimeIndexMapper; - private NVMSpaceManager spaceManager; - private NVMSpaceMetadataManager() {} public void init() throws IOException { - spaceManager = NVMSpaceManager.getInstance(); - - spaceCount = new SpaceCount(spaceManager.allocateSpace(SPACE_COUNT_FIELD_BYTE_SIZE)); - spaceStatusBitMap = new SpaceStatusBitMap(spaceManager.allocateSpace(BITMAP_FIELD_BYTE_SIZE)); - offsetMemo = new OffsetMemo(spaceManager.allocateSpace(OFFSET_FIELD_BYTE_SIZE)); - dataTypeMemo = new DataTypeMemo(spaceManager.allocateSpace(DATATYPE_FIELD_BYTE_SIZE)); - timeValueMapper = new TimeValueMapper(spaceManager.allocateSpace(TVMAP_FIELD_BYTE_SIZE)); - timeseriesTimeIndexMapper = new TimeseriesTimeIndexMapper(spaceManager.allocateSpace( - TSTIMEMAP_FIELD_BYTE_SIZE)); + spaceCount = new SpaceCount(); + spaceStatusBitMap = new SpaceStatusBitMap(); + offsetMemo = new OffsetMemo(); + dataTypeMemo = new DataTypeMemo(); + timeValueMapper = new TimeValueMapper(); + timeseriesTimeIndexMapper = new TimeseriesTimeIndexMapper(); } public static NVMSpaceMetadataManager getInstance() { diff --git a/server/src/main/java/org/apache/iotdb/db/nvm/space/NVMStringBuffer.java b/server/src/main/java/org/apache/iotdb/db/nvm/space/NVMStringBuffer.java index 8400679..8ab06b2 100644 --- a/server/src/main/java/org/apache/iotdb/db/nvm/space/NVMStringBuffer.java +++ b/server/src/main/java/org/apache/iotdb/db/nvm/space/NVMStringBuffer.java @@ -26,12 +26,12 @@ public class NVMStringBuffer { } private void recover() { - int stringListLen = count.getByteBuffer().getInt(0); + int stringListLen = count.getInt(0); existStringList = new ArrayList<>(stringListLen); for (int i = 0; i < stringListLen; i++) { - int stringLen = lens.getByteBuffer().getInt(i); + int stringLen = lens.getInt(i); byte[] bytes = new byte[stringLen]; - values.getByteBuffer().get(bytes); + values.get(bytes); existStringList.add(new String(bytes)); } } @@ -47,9 +47,9 @@ public class NVMStringBuffer { } private void serialize(String s) { - count.getByteBuffer().putInt(0, existStringList.size()); - lens.getByteBuffer().putInt(existStringList.size() - 1, s.length()); - values.getByteBuffer().put(s.getBytes()); + count.putInt(0, existStringList.size()); + lens.putInt(existStringList.size() - 1, s.length()); + values.put(s.getBytes()); } public String get(int index) { diff --git a/server/src/main/java/org/apache/iotdb/db/utils/datastructure/NVMBooleanTVList.java b/server/src/main/java/org/apache/iotdb/db/utils/datastructure/NVMBooleanTVList.java index 508f08c..2a4ca8e 100644 --- a/server/src/main/java/org/apache/iotdb/db/utils/datastructure/NVMBooleanTVList.java +++ b/server/src/main/java/org/apache/iotdb/db/utils/datastructure/NVMBooleanTVList.java @@ -24,8 +24,8 @@ public class NVMBooleanTVList extends NVMTVList { int arrayIndex = size / ARRAY_SIZE; int elementIndex = size % ARRAY_SIZE; minTime = minTime <= timestamp ? minTime : timestamp; - timestamps.get(arrayIndex).set(elementIndex, timestamp); - values.get(arrayIndex).set(elementIndex, value ? (byte) 1 : (byte) 0); + timestamps.get(arrayIndex).setData(elementIndex, timestamp); + values.get(arrayIndex).setData(elementIndex, value); size++; if (sorted && size > 1 && timestamp < getTime(size - 2)) { sorted = false; @@ -39,7 +39,7 @@ public class NVMBooleanTVList extends NVMTVList { } int arrayIndex = index / ARRAY_SIZE; int elementIndex = index % ARRAY_SIZE; - return ((byte) values.get(arrayIndex).get(elementIndex)) == 1; + return (boolean) values.get(arrayIndex).getData(elementIndex); } @Override diff --git a/server/src/main/java/org/apache/iotdb/db/utils/datastructure/NVMDoubleTVList.java b/server/src/main/java/org/apache/iotdb/db/utils/datastructure/NVMDoubleTVList.java index 62cc640..ac61d8e 100644 --- a/server/src/main/java/org/apache/iotdb/db/utils/datastructure/NVMDoubleTVList.java +++ b/server/src/main/java/org/apache/iotdb/db/utils/datastructure/NVMDoubleTVList.java @@ -24,8 +24,8 @@ public class NVMDoubleTVList extends NVMTVList { int arrayIndex = size / ARRAY_SIZE; int elementIndex = size % ARRAY_SIZE; minTime = minTime <= timestamp ? minTime : timestamp; - timestamps.get(arrayIndex).set(elementIndex, timestamp); - values.get(arrayIndex).set(elementIndex, value); + timestamps.get(arrayIndex).setData(elementIndex, timestamp); + values.get(arrayIndex).setData(elementIndex, value); size++; if (sorted && size > 1 && timestamp < getTime(size - 2)) { sorted = false; @@ -39,7 +39,7 @@ public class NVMDoubleTVList extends NVMTVList { } int arrayIndex = index / ARRAY_SIZE; int elementIndex = index % ARRAY_SIZE; - return (double) values.get(arrayIndex).get(elementIndex); + return (double) values.get(arrayIndex).getData(elementIndex); } @Override diff --git a/server/src/main/java/org/apache/iotdb/db/utils/datastructure/NVMFloatTVList.java b/server/src/main/java/org/apache/iotdb/db/utils/datastructure/NVMFloatTVList.java index 202785f..c200cfd 100644 --- a/server/src/main/java/org/apache/iotdb/db/utils/datastructure/NVMFloatTVList.java +++ b/server/src/main/java/org/apache/iotdb/db/utils/datastructure/NVMFloatTVList.java @@ -24,8 +24,8 @@ public class NVMFloatTVList extends NVMTVList { int arrayIndex = size / ARRAY_SIZE; int elementIndex = size % ARRAY_SIZE; minTime = minTime <= timestamp ? minTime : timestamp; - timestamps.get(arrayIndex).set(elementIndex, timestamp); - values.get(arrayIndex).set(elementIndex, value); + timestamps.get(arrayIndex).setData(elementIndex, timestamp); + values.get(arrayIndex).setData(elementIndex, value); size++; if (sorted && size > 1 && timestamp < getTime(size - 2)) { sorted = false; @@ -39,7 +39,7 @@ public class NVMFloatTVList extends NVMTVList { } int arrayIndex = index / ARRAY_SIZE; int elementIndex = index % ARRAY_SIZE; - return (float) values.get(arrayIndex).get(elementIndex); + return (float) values.get(arrayIndex).getData(elementIndex); } @Override diff --git a/server/src/main/java/org/apache/iotdb/db/utils/datastructure/NVMIntTVList.java b/server/src/main/java/org/apache/iotdb/db/utils/datastructure/NVMIntTVList.java index a194206..bbcf381 100644 --- a/server/src/main/java/org/apache/iotdb/db/utils/datastructure/NVMIntTVList.java +++ b/server/src/main/java/org/apache/iotdb/db/utils/datastructure/NVMIntTVList.java @@ -24,8 +24,8 @@ public class NVMIntTVList extends NVMTVList { int arrayIndex = size / ARRAY_SIZE; int elementIndex = size % ARRAY_SIZE; minTime = minTime <= timestamp ? minTime : timestamp; - timestamps.get(arrayIndex).set(elementIndex, timestamp); - values.get(arrayIndex).set(elementIndex, value); + timestamps.get(arrayIndex).setData(elementIndex, timestamp); + values.get(arrayIndex).setData(elementIndex, value); size++; if (sorted && size > 1 && timestamp < getTime(size - 2)) { sorted = false; @@ -39,7 +39,7 @@ public class NVMIntTVList extends NVMTVList { } int arrayIndex = index / ARRAY_SIZE; int elementIndex = index % ARRAY_SIZE; - return (int) values.get(arrayIndex).get(elementIndex); + return (int) values.get(arrayIndex).getData(elementIndex); } @Override diff --git a/server/src/main/java/org/apache/iotdb/db/utils/datastructure/NVMLongTVList.java b/server/src/main/java/org/apache/iotdb/db/utils/datastructure/NVMLongTVList.java index 484b309..4cffd35 100644 --- a/server/src/main/java/org/apache/iotdb/db/utils/datastructure/NVMLongTVList.java +++ b/server/src/main/java/org/apache/iotdb/db/utils/datastructure/NVMLongTVList.java @@ -24,8 +24,8 @@ public class NVMLongTVList extends NVMTVList { int arrayIndex = size / ARRAY_SIZE; int elementIndex = size % ARRAY_SIZE; minTime = minTime <= timestamp ? minTime : timestamp; - timestamps.get(arrayIndex).set(elementIndex, timestamp); - values.get(arrayIndex).set(elementIndex, value); + timestamps.get(arrayIndex).setData(elementIndex, timestamp); + values.get(arrayIndex).setData(elementIndex, value); size++; if (sorted && size > 1 && timestamp < getTime(size - 2)) { sorted = false; @@ -39,7 +39,7 @@ public class NVMLongTVList extends NVMTVList { } int arrayIndex = index / ARRAY_SIZE; int elementIndex = index % ARRAY_SIZE; - return (long) values.get(arrayIndex).get(elementIndex); + return (long) values.get(arrayIndex).getData(elementIndex); } @Override diff --git a/server/src/main/java/org/apache/iotdb/db/utils/datastructure/NVMTVList.java b/server/src/main/java/org/apache/iotdb/db/utils/datastructure/NVMTVList.java index d84a87a..0eda8b8 100644 --- a/server/src/main/java/org/apache/iotdb/db/utils/datastructure/NVMTVList.java +++ b/server/src/main/java/org/apache/iotdb/db/utils/datastructure/NVMTVList.java @@ -36,7 +36,7 @@ public abstract class NVMTVList extends AbstractTVList { } int arrayIndex = index / ARRAY_SIZE; int elementIndex = index % ARRAY_SIZE; - return (long) timestamps.get(arrayIndex).get(elementIndex); + return (long) timestamps.get(arrayIndex).getData(elementIndex); } protected void set(int index, long timestamp, Object value) { @@ -45,8 +45,8 @@ public abstract class NVMTVList extends AbstractTVList { } int arrayIndex = index / ARRAY_SIZE; int elementIndex = index % ARRAY_SIZE; - timestamps.get(arrayIndex).set(elementIndex, timestamp); - values.get(arrayIndex).set(elementIndex, value); + timestamps.get(arrayIndex).setData(elementIndex, timestamp); + values.get(arrayIndex).setData(elementIndex, value); } protected Object cloneValue(NVMDataSpace valueSpace) { @@ -195,11 +195,11 @@ public abstract class NVMTVList extends AbstractTVList { for (int i = 0; i < spaceList.size() - 1; i++) { NVMDataSpace space = spaceList.get(i); for (int j = 0; j < space.getUnitNum(); j++) { - minTime = Math.min(minTime, (Long) space.get(j)); + minTime = Math.min(minTime, (Long) space.getData(j)); } } for (int i = 0; i < lastSpaceUnitSize; i++) { - minTime = Math.min(minTime, (Long) lastSpace.get(i)); + minTime = Math.min(minTime, (Long) lastSpace.getData(i)); } // sorted
