This is an automated email from the ASF dual-hosted git repository.
haonan pushed a commit to branch new_vector
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/new_vector by this push:
new 0adae7e reduce more usage of ifisAligned
0adae7e is described below
commit 0adae7e38aec5a6c07bc3adb125f33bdc916cc6f
Author: HTHou <[email protected]>
AuthorDate: Thu Oct 28 17:23:53 2021 +0800
reduce more usage of ifisAligned
---
.../iotdb/db/engine/memtable/AbstractMemTable.java | 23 ++++++++++++++++++----
.../db/engine/memtable/PrimitiveMemTable.java | 9 +++++----
2 files changed, 24 insertions(+), 8 deletions(-)
diff --git
a/server/src/main/java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java
b/server/src/main/java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java
index eb8dcd4..e9707ae 100644
---
a/server/src/main/java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java
+++
b/server/src/main/java/org/apache/iotdb/db/engine/memtable/AbstractMemTable.java
@@ -113,14 +113,29 @@ public abstract class AbstractMemTable implements
IMemTable {
schema.getMeasurementId(),
k -> {
seriesNumber++;
- totalPointsNumThreshold +=
- ((long) avgSeriesPointNumThreshold *
schema.getSubMeasurementsCount());
+ totalPointsNumThreshold += avgSeriesPointNumThreshold;
return genMemSeries(schema);
});
}
+ private IWritableMemChunk createVectorMemChunkIfNotExistAndGet(
+ String deviceId, IMeasurementSchema schema) {
+ Map<String, IWritableMemChunk> memSeries =
+ memTableMap.computeIfAbsent(deviceId, k -> new HashMap<>());
+
+ return memSeries.computeIfAbsent(
+ schema.getMeasurementId(),
+ k -> {
+ seriesNumber++;
+ totalPointsNumThreshold += avgSeriesPointNumThreshold +
schema.getSubMeasurementsCount();
+ return genVectorMemSeries(schema);
+ });
+ }
+
protected abstract IWritableMemChunk genMemSeries(IMeasurementSchema schema);
+ protected abstract IWritableMemChunk genVectorMemSeries(IMeasurementSchema
schema);
+
@Override
public void insert(InsertRowPlan insertRowPlan) {
updatePlanIndexes(insertRowPlan.getIndex());
@@ -220,7 +235,7 @@ public abstract class AbstractMemTable implements IMemTable
{
@Override
public void writeAlignedRow(
String deviceId, IMeasurementSchema schema, long insertTime, Object
objectValue) {
- IWritableMemChunk memSeries = createMemChunkIfNotExistAndGet(deviceId,
schema);
+ IWritableMemChunk memSeries =
createVectorMemChunkIfNotExistAndGet(deviceId, schema);
memSeries.write(insertTime, objectValue);
}
@@ -270,7 +285,7 @@ public abstract class AbstractMemTable implements IMemTable
{
encodings.toArray(new TSEncoding[measurements.size()]),
compressionType);
IWritableMemChunk memSeries =
- createMemChunkIfNotExistAndGet(
+ createVectorMemChunkIfNotExistAndGet(
insertTabletPlan.getPrefixPath().getFullPath(), vectorSchema);
memSeries.writeVector(
insertTabletPlan.getTimes(),
diff --git
a/server/src/main/java/org/apache/iotdb/db/engine/memtable/PrimitiveMemTable.java
b/server/src/main/java/org/apache/iotdb/db/engine/memtable/PrimitiveMemTable.java
index 2b85280..a827a1f 100644
---
a/server/src/main/java/org/apache/iotdb/db/engine/memtable/PrimitiveMemTable.java
+++
b/server/src/main/java/org/apache/iotdb/db/engine/memtable/PrimitiveMemTable.java
@@ -19,7 +19,6 @@
package org.apache.iotdb.db.engine.memtable;
-import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.write.schema.IMeasurementSchema;
import java.util.HashMap;
@@ -39,13 +38,15 @@ public class PrimitiveMemTable extends AbstractMemTable {
@Override
protected IWritableMemChunk genMemSeries(IMeasurementSchema schema) {
- if (schema.getType() == TSDataType.VECTOR) {
- return new VectorWritableMemChunk(schema);
- }
return new WritableMemChunk(schema);
}
@Override
+ protected IWritableMemChunk genVectorMemSeries(IMeasurementSchema schema) {
+ return new VectorWritableMemChunk(schema);
+ }
+
+ @Override
public IMemTable copy() {
Map<String, Map<String, IWritableMemChunk>> newMap = new
HashMap<>(getMemTableMap());