This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch add-java-doc
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/add-java-doc by this push:
new f70b5e4 add java docs for cache, queryContext, PartialPath,
SeriesReader
f70b5e4 is described below
commit f70b5e4e5fa0591a8e054f9162bf1e8878e2e624
Author: JackieTien97 <[email protected]>
AuthorDate: Wed Jun 9 11:02:04 2021 +0800
add java docs for cache, queryContext, PartialPath, SeriesReader
---
.../apache/iotdb/db/engine/cache/ChunkCache.java | 5 +++++
.../db/engine/cache/TimeSeriesMetadataCache.java | 13 ++++++++++++
.../db/engine/querycontext/QueryDataSource.java | 5 +++++
.../db/engine/querycontext/ReadOnlyMemChunk.java | 4 ++++
.../iotdb/db/metadata/VectorPartialPath.java | 6 ++++++
.../iotdb/db/query/reader/series/SeriesReader.java | 24 ++++++++++++++++++++++
6 files changed, 57 insertions(+)
diff --git
a/server/src/main/java/org/apache/iotdb/db/engine/cache/ChunkCache.java
b/server/src/main/java/org/apache/iotdb/db/engine/cache/ChunkCache.java
index 556075f..6a126cf 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/cache/ChunkCache.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/cache/ChunkCache.java
@@ -63,6 +63,11 @@ public class ChunkCache {
lruCache =
new LRULinkedHashMap<ChunkMetadata,
Chunk>(MEMORY_THRESHOLD_IN_CHUNK_CACHE) {
+ /**
+ * The calculation is time consuming, so we won't calculate each
entry' size each time.
+ * Every 100,000 entry, we will calculate the average size of the
first 10 entries, and
+ * use that to represent the next 99,990 entries' size.
+ */
@Override
protected long calEntrySize(ChunkMetadata key, Chunk value) {
long currentSize;
diff --git
a/server/src/main/java/org/apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java
b/server/src/main/java/org/apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java
index 123fe97..66e3974 100644
---
a/server/src/main/java/org/apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java
+++
b/server/src/main/java/org/apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java
@@ -81,6 +81,11 @@ public class TimeSeriesMetadataCache {
new LRULinkedHashMap<TimeSeriesMetadataCacheKey, TimeseriesMetadata>(
MEMORY_THRESHOLD_IN_TIME_SERIES_METADATA_CACHE) {
+ /**
+ * The calculation is time consuming, so we won't calculate each
entry' size each time.
+ * Every 100,000 entry, we will calculate the average size of the
first 10 entries, and
+ * use that to represent the next 99,990 entries' size.
+ */
@Override
protected long calEntrySize(TimeSeriesMetadataCacheKey key,
TimeseriesMetadata value) {
long currentSize;
@@ -226,6 +231,14 @@ public class TimeSeriesMetadataCache {
}
}
+ /**
+ * Support for vector
+ *
+ * @param key vector's own fullPath, e.g. root.sg1.d1.vector
+ * @param subSensorList all subSensors of this vector in one query, e.g.
[s1, s2, s3]
+ * @param allSensors all sensors of the device in one device, to vector,
this should contain both
+ * vector name and subSensors' name, e.g. [vector, s1, s2, s3]
+ */
// Suppress synchronize warning
// Suppress high Cognitive Complexity warning
@SuppressWarnings({"squid:S1860", "squid:S3776"})
diff --git
a/server/src/main/java/org/apache/iotdb/db/engine/querycontext/QueryDataSource.java
b/server/src/main/java/org/apache/iotdb/db/engine/querycontext/QueryDataSource.java
index 60a6de5..dea19eb 100644
---
a/server/src/main/java/org/apache/iotdb/db/engine/querycontext/QueryDataSource.java
+++
b/server/src/main/java/org/apache/iotdb/db/engine/querycontext/QueryDataSource.java
@@ -26,7 +26,12 @@ import
org.apache.iotdb.tsfile.read.filter.operator.AndFilter;
import java.util.List;
+/**
+ * The QueryDataSource contains all the seq and unseq TsFileResources for one
timeseries in one
+ * query
+ */
public class QueryDataSource {
+
private List<TsFileResource> seqResources;
private List<TsFileResource> unseqResources;
diff --git
a/server/src/main/java/org/apache/iotdb/db/engine/querycontext/ReadOnlyMemChunk.java
b/server/src/main/java/org/apache/iotdb/db/engine/querycontext/ReadOnlyMemChunk.java
index d3b5029..e7e83db 100644
---
a/server/src/main/java/org/apache/iotdb/db/engine/querycontext/ReadOnlyMemChunk.java
+++
b/server/src/main/java/org/apache/iotdb/db/engine/querycontext/ReadOnlyMemChunk.java
@@ -42,6 +42,10 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+/**
+ * ReadOnlyMemChunk is a snapshot of the working MemTable and flushing
memtable in the memory used
+ * for querying
+ */
public class ReadOnlyMemChunk {
// deletion list for this chunk
diff --git
a/server/src/main/java/org/apache/iotdb/db/metadata/VectorPartialPath.java
b/server/src/main/java/org/apache/iotdb/db/metadata/VectorPartialPath.java
index b4cdcc4..65ef534 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/VectorPartialPath.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/VectorPartialPath.java
@@ -24,6 +24,12 @@ import
org.apache.iotdb.db.exception.metadata.IllegalPathException;
import java.util.List;
import java.util.Objects;
+/**
+ * VectorPartialPath represents a vector's fullPath. It not only contains the
full path of vector's
+ * own name, but also has subSensorsPathList which contain all the fullPath of
vector's sub sensors.
+ * e.g. VectorPartialPath1(root.sg1.d1.vector1, [root.sg1.d1.vector1.s1,
root.sg1.d1.vector1.s2])
+ * VectorPartialPath2(root.sg1.d1.vector2, [root.sg1.d1.vector2.s1,
root.sg1.d1.vector2.s2])
+ */
public class VectorPartialPath extends PartialPath {
private List<PartialPath> subSensorsPathList;
diff --git
a/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesReader.java
b/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesReader.java
index e4e0894..8589b95 100644
---
a/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesReader.java
+++
b/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesReader.java
@@ -112,6 +112,30 @@ public class SeriesReader {
protected boolean hasCachedNextOverlappedPage;
protected BatchData cachedBatchData;
+ /**
+ * @param seriesPath For querying vector, the seriesPath should be
VectorPartialPath. If the query
+ * is raw query without value filter, all sensors belonging to one
vector should be all in
+ * this one VectorPartialPath's subSensorsPathList, VectorPartialPath's
own fullPath
+ * represents the name of vector itself. Other queries, each sensor in
one vector will have
+ * its own SeriesReader, seriesPath's subSensorsPathList contains only
one sensor.
+ * @param allSensors For querying vector, allSensors contains vector name
and all subSensors'
+ * names in the seriesPath
+ * <p>e.g. we have two vectors: root.sg1.d1.vector1(s1, s2) and
root.sg1.d1.vector2(s1, s2),
+ * If the sql is select * from root, we will construct two SeriesReader,
The first one's
+ * seriesPath is VectorPartialPath(root.sg1.d1.vector1,
[root.sg1.d1.vector1.s1,
+ * root.sg1.d1.vector1.s2]) The first one's allSensors is [vector1, s1,
s2] The second one's
+ * seriesPath is VectorPartialPath(root.sg1.d1.vector2,
[root.sg1.d1.vector2.s1,
+ * root.sg1.d1.vector2.s2]) The second one's allSensors is [vector2, s1,
s2]
+ * <p>If the sql is not RawQueryWithoutValueFilter, like select count(*)
from root group by
+ * ([1, 100), 5ms), we will construct four SeriesReader The first one's
seriesPath is
+ * VectorPartialPath(root.sg1.d1.vector1, [root.sg1.d1.vector1.s1]) The
first one's allSensors
+ * is [vector1, s1] The second one's seriesPath is
VectorPartialPath(root.sg1.d1.vector1,
+ * [root.sg1.d1.vector1.s2]) The second one's allSensors is [vector1,
s2] The third one's
+ * seriesPath is VectorPartialPath(root.sg1.d1.vector2,
[root.sg1.d1.vector2.s1]) The third
+ * one's allSensors is [vector2, s1] The fourth one's seriesPath is
+ * VectorPartialPath(root.sg1.d1.vector2, [root.sg1.d1.vector2.s2]) The
fourth one's
+ * allSensors is [vector2, s2]
+ */
public SeriesReader(
PartialPath seriesPath,
Set<String> allSensors,