You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by su...@apache.org on 2019/07/09 15:14:03 UTC
[incubator-iotdb] 02/03: merge master
This is an automated email from the ASF dual-hosted git repository.
suyue pushed a commit to branch feature_query_cache
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
commit c4d9b7b43048ae94dc707fa3b047858a17154062
Merge: 7722289 d7a9e35
Author: suyue <23...@qq.com>
AuthorDate: Tue Jul 9 23:12:55 2019 +0800
merge master
docs/Development.md | 12 +
.../Frequently asked questions.md} | 7 +-
docs/Documentation-CHN/OtherMaterial-Examples.md | 83 ++++
docs/Documentation-CHN/OtherMaterial-Reference.md | 31 ++
.../OtherMaterial-ReleaseNotesV0.7.0.md} | 7 +-
docs/Documentation-CHN/QuickStart.md | 290 ++++++++++++
.../UserGuideV0.7.0/1-Overview/1-What is IoTDB.md} | 7 +-
.../UserGuideV0.7.0/1-Overview/2-Architecture.md | 36 ++
.../UserGuideV0.7.0/1-Overview/3-Scenario.md | 78 ++++
.../UserGuideV0.7.0/1-Overview/4-Features.md | 51 +++
.../1-Key Concepts and Terminology.md | 179 ++++++++
.../2-Data Type.md | 34 ++
.../3-Encoding.md | 63 +++
.../4-Compression.md | 28 ++
.../3-Operation Manual/1-Sample Data.md} | 9 +-
.../3-Operation Manual/2-Data Model Selection.md | 118 +++++
.../3-Operation Manual/3-Data Import.md | 85 ++++
.../3-Operation Manual/4-Data Query.md | 508 +++++++++++++++++++++
.../3-Operation Manual/5-Data Maintenance.md | 83 ++++
.../3-Operation Manual/6-Priviledge Management.md | 134 ++++++
.../4-Deployment and Management/1-Deployment.md | 99 ++++
.../4-Deployment and Management/2-Configuration.md | 414 +++++++++++++++++
.../3-System Monitor.md | 152 ++++++
.../4-Deployment and Management/4-System log.md | 64 +++
.../5-Data Management.md | 74 +++
.../6-Build and use IoTDB by Dockerfile.md} | 7 +-
.../1-IoTDB Query Statement.md} | 233 ++--------
.../5-IoTDB SQL Documentation/2-Reference.md | 137 ++++++
.../UserGuideV0.7.0/6-JDBC API/1-JDBC API.md} | 7 +-
.../UserGuideV0.7.0/7-Tools-Cli.md | 77 ++++
.../UserGuideV0.7.0/7-Tools-Grafana.md | 118 +++++
.../UserGuideV0.7.0/7-Tools-Hadoop.md} | 7 +-
.../UserGuideV0.7.0/7-Tools-spark.md} | 7 +-
.../{6-JDBC Documentation.md => 0-Content.md} | 35 +-
.../1-What is IoTDB.md} | 7 +-
.../UserGuideV0.7.0/1-Overview/2-Architecture.md | 36 ++
.../{1-Overview.md => 1-Overview/3-Scenario.md} | 42 --
.../UserGuideV0.7.0/1-Overview/4-Features.md | 33 ++
.../1-Key Concepts and Terminology.md} | 75 +--
.../2-Data Type.md | 38 ++
.../3-Encoding.md | 62 +++
.../4-Compression.md | 28 ++
.../1-Sample Data.md} | 9 +-
.../3-Operation Manual/2-Data Model Selection.md | 115 +++++
.../3-Operation Manual/3-Data Import.md | 87 ++++
.../4-Data Query.md} | 395 +---------------
.../3-Operation Manual/5-Data Maintenance.md | 82 ++++
.../3-Operation Manual/6-Priviledge Management.md | 124 +++++
.../4-Deployment and Management/1-Deployment.md | 169 +++++++
.../4-Deployment and Management/2-Configuration.md | 329 +++++++++++++
.../3-System Monitor.md | 359 +++++++++++++++
.../4-Deployment and Management/4-System log.md | 66 +++
.../5-Data Management.md | 77 ++++
.../6-Build and use IoTDB by Dockerfile.md | 92 ++++
.../1-IoTDB Query Statement.md} | 129 ------
.../5-IoTDB SQL Documentation/2-Reference.md | 137 ++++++
.../1-JDBC API.md} | 7 +-
hadoop/src/test/resources/logback.xml | 41 ++
iotdb/iotdb/conf/iotdb-env.sh | 2 +-
.../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 39 ++
.../iotdb/db/engine/cache/DeviceMetaDataCache.java | 4 +-
.../qp/executor/AbstractQueryProcessExecutor.java | 6 +-
.../iotdb/db/query/executor/EngineExecutor.java | 4 +
.../reader/sequence/SequenceSeriesReader.java | 1 -
.../sequence/SequenceSeriesReaderByTimestamp.java | 6 +-
.../FileSeriesReaderByTimestampAdapter.java | 46 ++
.../writelog/recover/TsFileRecoverPerformer.java | 24 +-
tsfile/example/readme.md | 39 +-
.../java/org/apache/iotdb/tsfile/TsFileWrite.java | 236 ++++++----
.../apache/iotdb/tsfile/write/TsFileWriter.java | 2 +-
70 files changed, 5225 insertions(+), 997 deletions(-)
diff --cc iotdb/src/main/java/org/apache/iotdb/db/engine/cache/DeviceMetaDataCache.java
index 1598afc,994622a..a7a8270
--- a/iotdb/src/main/java/org/apache/iotdb/db/engine/cache/DeviceMetaDataCache.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/engine/cache/DeviceMetaDataCache.java
@@@ -58,15 -53,17 +58,15 @@@ public class DeviceMetaDataCache
}
/**
-- * get {@link TsDeviceMetadata}. THREAD SAFE.
++ * get {@link ChunkMetaData}. THREAD SAFE.
*/
- public TsDeviceMetadata get(String filePath, String deviceId, TsFileMetaData fileMetaData)
+ public List<ChunkMetaData> get(String filePath, Path seriesPath)
throws IOException {
- // The key(the tsfile path and deviceId) for the lruCache
- String jointPath = filePath + deviceId;
- Object jointPathObject = jointPath.intern();
+ Object jointPathObject = filePath.intern();
synchronized (lruCache) {
cacheRequestNum.incrementAndGet();
- if (lruCache.containsKey(jointPath)) {
+ if (lruCache.containsKey(filePath) && lruCache.get(filePath).containsKey(seriesPath)) {
cacheHintNum.incrementAndGet();
if (logger.isDebugEnabled()) {
logger.debug(
@@@ -137,4 -111,57 +137,4 @@@
private static final DeviceMetaDataCache INSTANCE = new
DeviceMetaDataCache(CACHE_SIZE);
}
-
- /**
- * This class is a map used to cache the <code>RowGroupBlockMetaData</code>. The caching strategy
- * is LRU.
- *
- */
- private class LruLinkedHashMap extends LinkedHashMap<String, TsDeviceMetadata> {
-
- private static final long serialVersionUID = 1290160928914532649L;
- private static final float LOAD_FACTOR_MAP = 0.75f;
- private int maxCapacity;
-
- public LruLinkedHashMap(int maxCapacity, boolean isLru) {
- super(maxCapacity, LOAD_FACTOR_MAP, isLru);
- this.maxCapacity = maxCapacity;
- }
-
- @Override
- protected boolean removeEldestEntry(Map.Entry<String, TsDeviceMetadata> eldest) {
- return size() > maxCapacity;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
- return super.equals(o);
- }
-
- @Override
- public int hashCode() {
- return super.hashCode();
- }
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
- DeviceMetaDataCache that = (DeviceMetaDataCache) o;
- return Objects.equals(lruCache, that.lruCache) &&
- Objects.equals(cacheHintNum, that.cacheHintNum) &&
- Objects.equals(cacheRequestNum, that.cacheRequestNum);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(lruCache, cacheHintNum, cacheRequestNum);
- }
--}
++}
diff --cc iotdb/src/main/java/org/apache/iotdb/db/qp/executor/AbstractQueryProcessExecutor.java
index 8d75065,65e476a..d853a6a
--- a/iotdb/src/main/java/org/apache/iotdb/db/qp/executor/AbstractQueryProcessExecutor.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/qp/executor/AbstractQueryProcessExecutor.java
@@@ -65,8 -65,6 +65,7 @@@ public abstract class AbstractQueryProc
private QueryDataSet processDataQuery(QueryPlan queryPlan, QueryContext context)
throws StorageEngineException, QueryFilterOptimizationException, PathErrorException, ProcessorException, IOException {
- QueryExpression queryExpression = QueryExpression.create().setSelectSeries(queryPlan.getPaths())
- .setExpression(queryPlan.getExpression());
++
if (queryPlan instanceof GroupByPlan) {
GroupByPlan groupByPlan = (GroupByPlan) queryPlan;
return groupBy(groupByPlan.getPaths(), groupByPlan.getAggregations(),
@@@ -84,6 -82,8 +83,9 @@@
return fill(queryPlan.getPaths(), fillQueryPlan.getQueryTime(),
fillQueryPlan.getFillType(), context);
}
++
+ QueryExpression queryExpression = QueryExpression.create().setSelectSeries(queryPlan.getPaths())
+ .setExpression(queryPlan.getExpression());
return queryRouter.query(queryExpression, context);
}
diff --cc iotdb/src/main/java/org/apache/iotdb/db/query/executor/EngineExecutor.java
index 0203e6b,ca6e7aa..cdc3306
--- a/iotdb/src/main/java/org/apache/iotdb/db/query/executor/EngineExecutor.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/query/executor/EngineExecutor.java
@@@ -40,7 -40,7 +40,11 @@@ import org.apache.iotdb.tsfile.read.fil
import org.apache.iotdb.tsfile.read.query.dataset.QueryDataSet;
/**
++<<<<<<< HEAD
+ * IoTDB query executor of Stand-alone version with global time filter.
++=======
+ * IoTDB query executor.
++>>>>>>> origin/master
*/
public class EngineExecutor {
diff --cc iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/SequenceSeriesReader.java
index b68ab53,da4571e..94842b0
--- a/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/SequenceSeriesReader.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/SequenceSeriesReader.java
@@@ -33,7 -32,7 +33,6 @@@ import org.apache.iotdb.tsfile.read.TsF
import org.apache.iotdb.tsfile.read.common.Path;
import org.apache.iotdb.tsfile.read.controller.ChunkLoader;
import org.apache.iotdb.tsfile.read.controller.ChunkLoaderImpl;
--import org.apache.iotdb.tsfile.read.controller.MetadataQuerierByFileImpl;
import org.apache.iotdb.tsfile.read.filter.basic.Filter;
import org.apache.iotdb.tsfile.read.reader.series.FileSeriesReader;
import org.apache.iotdb.tsfile.read.reader.series.FileSeriesReaderWithFilter;
diff --cc iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/SequenceSeriesReaderByTimestamp.java
index 8fdecc7,8aa61c9..dee48a6
--- a/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/SequenceSeriesReaderByTimestamp.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/query/reader/sequence/SequenceSeriesReaderByTimestamp.java
@@@ -19,7 -19,6 +19,8 @@@
package org.apache.iotdb.db.query.reader.sequence;
++
+import org.apache.iotdb.db.engine.cache.DeviceMetaDataCache;
import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
import org.apache.iotdb.db.engine.modification.Modification;
import org.apache.iotdb.db.query.context.QueryContext;
@@@ -32,7 -31,7 +33,6 @@@ import org.apache.iotdb.tsfile.read.TsF
import org.apache.iotdb.tsfile.read.common.Path;
import org.apache.iotdb.tsfile.read.controller.ChunkLoader;
import org.apache.iotdb.tsfile.read.controller.ChunkLoaderImpl;
--import org.apache.iotdb.tsfile.read.controller.MetadataQuerierByFileImpl;
import org.apache.iotdb.tsfile.read.reader.series.FileSeriesReaderByTimestamp;
import java.io.IOException;