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 <[email protected]>
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();

Reply via email to