You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ea...@apache.org on 2020/01/08 13:52:43 UTC
[incubator-iotdb] 03/03: fix bugs
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 <95...@qq.com>
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