This is an automated email from the ASF dual-hosted git repository.
hxd pushed a commit to branch improve_memtable_sort
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
The following commit(s) were added to refs/heads/improve_memtable_sort by this
push:
new de87b06 reduce memory cost when sorting data in memory
de87b06 is described below
commit de87b06d144e3d48aafc868c5ed68ea208137bdf
Author: xiangdong huang <[email protected]>
AuthorDate: Wed Mar 20 15:11:09 2019 +0800
reduce memory cost when sorting data in memory
---
.../java/org/apache/iotdb/db/engine/memtable/WritableMemChunk.java | 4 ++--
iotdb/src/main/java/org/apache/iotdb/db/utils/PrimitiveArrayList.java | 2 +-
iotdb/src/main/java/org/apache/iotdb/db/utils/TimeValuePair.java | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git
a/iotdb/src/main/java/org/apache/iotdb/db/engine/memtable/WritableMemChunk.java
b/iotdb/src/main/java/org/apache/iotdb/db/engine/memtable/WritableMemChunk.java
index 543c025..2353df7 100644
---
a/iotdb/src/main/java/org/apache/iotdb/db/engine/memtable/WritableMemChunk.java
+++
b/iotdb/src/main/java/org/apache/iotdb/db/engine/memtable/WritableMemChunk.java
@@ -101,12 +101,12 @@ public class WritableMemChunk implements
IWritableMemChunk {
// TODO: Consider using arrays to sort and remove duplicates
public List<TimeValuePair> getSortedTimeValuePairList() {
int length = list.size();
- List<TimeValuePair> ret = new ArrayList<>(length);
+
Map<Long, TsPrimitiveType> treeMap = new HashMap<>(length, 1.0f);
- //Map<Long, TsPrimitiveType> treeMap = new TreeMap<>();
for (int i = 0; i < length; i++) {
treeMap.put(list.getTimestamp(i), TsPrimitiveType.getByType(dataType,
list.getValue(i)));
}
+ List<TimeValuePair> ret = new ArrayList<>(treeMap.size());
treeMap.forEach((k, v) -> ret.add(new TimeValuePairInMemTable(k, v)));
ret.sort(TimeValuePair::compareTo);
return ret;
diff --git
a/iotdb/src/main/java/org/apache/iotdb/db/utils/PrimitiveArrayList.java
b/iotdb/src/main/java/org/apache/iotdb/db/utils/PrimitiveArrayList.java
index d5a1c3e..a473152 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/utils/PrimitiveArrayList.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/utils/PrimitiveArrayList.java
@@ -22,7 +22,7 @@ import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;
-public class PrimitiveArrayList {
+public class PrimitiveArrayList {
private static final int MAX_SIZE_OF_ONE_ARRAY = 512;
private static final int INITIAL_SIZE = 1;
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/utils/TimeValuePair.java
b/iotdb/src/main/java/org/apache/iotdb/db/utils/TimeValuePair.java
index dd068ec..472109b 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/utils/TimeValuePair.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/utils/TimeValuePair.java
@@ -20,7 +20,7 @@ package org.apache.iotdb.db.utils;
import java.io.Serializable;
-public class TimeValuePair implements Serializable, Comparable<TimeValuePair>{
+public class TimeValuePair implements Serializable, Comparable<TimeValuePair> {
private long timestamp;
private TsPrimitiveType value;