You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ja...@apache.org on 2020/12/22 05:25:01 UTC
[iotdb] branch LastBug updated: change some
This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch LastBug
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/LastBug by this push:
new 25ae8e0 change some
25ae8e0 is described below
commit 25ae8e02bdb17f7b7d0032a927c052786aa25ad0
Author: JackieTien97 <Ja...@foxmail.com>
AuthorDate: Tue Dec 22 13:24:04 2020 +0800
change some
---
grafana/pom.xml | 2 +-
jdbc/pom.xml | 2 +-
pom.xml | 6 +++---
.../apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java | 10 +++++++++-
service-rpc/pom.xml | 2 +-
.../org/apache/iotdb/tsfile/read/TsFileSequenceReader.java | 2 ++
6 files changed, 17 insertions(+), 7 deletions(-)
diff --git a/grafana/pom.xml b/grafana/pom.xml
index cd0a7ce..76633ce 100644
--- a/grafana/pom.xml
+++ b/grafana/pom.xml
@@ -165,7 +165,7 @@
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transformer>
- <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
+ <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>${start-class}</mainClass>
</transformer>
diff --git a/jdbc/pom.xml b/jdbc/pom.xml
index f2f3cc3..a6fddbe 100644
--- a/jdbc/pom.xml
+++ b/jdbc/pom.xml
@@ -223,7 +223,7 @@
</goals>
</pluginExecutionFilter>
<action>
- <ignore />
+ <ignore/>
</action>
</pluginExecution>
</pluginExecutions>
diff --git a/pom.xml b/pom.xml
index eec68bd..b23d776 100644
--- a/pom.xml
+++ b/pom.xml
@@ -133,7 +133,7 @@
<!-- Exclude all generated code -->
<sonar.exclusions>**/generated-sources</sonar.exclusions>
<!-- By default, the argLine is empty-->
- <argLine />
+ <argLine/>
</properties>
<!--
if we claim dependencies in dependencyManagement, then we do not claim
@@ -1004,7 +1004,7 @@
<id>enforce-version-convergence</id>
<configuration>
<rules>
- <dependencyConvergence />
+ <dependencyConvergence/>
</rules>
</configuration>
<goals>
@@ -1050,7 +1050,7 @@
</requireJavaVersion>
<!-- Disabled for now as it breaks the ability to build single modules -->
<!--reactorModuleConvergence/-->
- <banVulnerable implementation="org.sonatype.ossindex.maven.enforcer.BanVulnerableDependencies" />
+ <banVulnerable implementation="org.sonatype.ossindex.maven.enforcer.BanVulnerableDependencies"/>
</rules>
</configuration>
</execution>
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 03d5d01..e2f21db 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
@@ -20,9 +20,13 @@
package org.apache.iotdb.db.engine.cache;
import java.io.IOException;
+import java.lang.ref.WeakReference;
+import java.util.Collections;
import java.util.List;
+import java.util.Map;
import java.util.Objects;
import java.util.Set;
+import java.util.WeakHashMap;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
@@ -59,6 +63,9 @@ public class TimeSeriesMetadataCache {
private final ReadWriteLock lock = new ReentrantReadWriteLock();
+ private final Map<String, WeakReference<String>> devices = Collections
+ .synchronizedMap(new WeakHashMap<>());
+ private static final String SEPARATOR = "$";
private TimeSeriesMetadataCache() {
if (CACHE_ENABLE) {
@@ -125,7 +132,8 @@ public class TimeSeriesMetadataCache {
printCacheLog(true);
} else {
// allow for the parallelism of different devices
- synchronized (key.device.intern()) {
+ synchronized (devices
+ .computeIfAbsent(key.device + SEPARATOR + key.filePath, WeakReference::new)) {
// double check
lock.readLock().lock();
try {
diff --git a/service-rpc/pom.xml b/service-rpc/pom.xml
index b6f9a7d..dad2dd7 100644
--- a/service-rpc/pom.xml
+++ b/service-rpc/pom.xml
@@ -208,7 +208,7 @@
</goals>
</pluginExecutionFilter>
<action>
- <ignore />
+ <ignore/>
</action>
</pluginExecution>
<pluginExecution>
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
index 0affa42..2960742 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java
@@ -579,6 +579,7 @@ public class TsFileSequenceReader implements AutoCloseable {
}
private List<TimeseriesMetadata> getDeviceTimeseriesMetadata(String device) throws IOException {
+ readFileMetadata();
MetadataIndexNode metadataIndexNode = tsFileMetaData.getMetadataIndex();
Pair<MetadataIndexEntry, Long> metadataIndexPair = getMetadataAndEndOffset(
metadataIndexNode, device, MetadataIndexNodeType.INTERNAL_DEVICE, false);
@@ -980,6 +981,7 @@ public class TsFileSequenceReader implements AutoCloseable {
*/
public List<ChunkMetadata> readChunkMetaDataList(TimeseriesMetadata timeseriesMetaData)
throws IOException {
+ readFileMetadata();
List<Pair<Long, Long>> versionInfo = tsFileMetaData.getVersionInfo();
ArrayList<ChunkMetadata> chunkMetadataList = new ArrayList<>();
long startOffsetOfChunkMetadataList = timeseriesMetaData.getOffsetOfChunkMetaDataList();