This is an automated email from the ASF dual-hosted git repository.
hxd pushed a commit to branch aggregate
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
The following commit(s) were added to refs/heads/aggregate by this push:
new 8bf528f degrade public functions in query.control package as default
8bf528f is described below
commit 8bf528f4872b64c64fd660244bb0782b8abeb900
Author: xiangdong huang <[email protected]>
AuthorDate: Thu Mar 28 18:39:36 2019 +0800
degrade public functions in query.control package as default
---
.../java/org/apache/iotdb/db/query/control/FileReaderManager.java | 4 ++--
.../org/apache/iotdb/db/query/control/OpenedFilePathsManager.java | 5 +++--
.../java/org/apache/iotdb/db/query/control/QueryTokenManager.java | 5 +----
3 files changed, 6 insertions(+), 8 deletions(-)
diff --git
a/iotdb/src/main/java/org/apache/iotdb/db/query/control/FileReaderManager.java
b/iotdb/src/main/java/org/apache/iotdb/db/query/control/FileReaderManager.java
index 90e1932..629e536 100644
---
a/iotdb/src/main/java/org/apache/iotdb/db/query/control/FileReaderManager.java
+++
b/iotdb/src/main/java/org/apache/iotdb/db/query/control/FileReaderManager.java
@@ -150,7 +150,7 @@ public class FileReaderManager implements IService {
* Increase the reference count of the reader specified by filePath. Only
when the reference count
* of a reader equals zero, the reader can be closed and removed.
*/
- public synchronized void increaseFileReaderReference(String filePath,
boolean isClosed) {
+ synchronized void increaseFileReaderReference(String filePath, boolean
isClosed) {
if (!isClosed) {
unclosedReferenceMap.computeIfAbsent(filePath, k -> new
AtomicInteger()).getAndIncrement();
} else {
@@ -162,7 +162,7 @@ public class FileReaderManager implements IService {
* Decrease the reference count of the reader specified by filePath. This
method is latch-free.
* Only when the reference count of a reader equals zero, the reader can be
closed and removed.
*/
- public synchronized void decreaseFileReaderReference(String filePath,
boolean isClosed) {
+ synchronized void decreaseFileReaderReference(String filePath, boolean
isClosed) {
if (!isClosed && unclosedReferenceMap.containsKey(filePath)) {
unclosedReferenceMap.get(filePath).getAndDecrement();
} else if (closedReferenceMap.containsKey(filePath)){
diff --git
a/iotdb/src/main/java/org/apache/iotdb/db/query/control/OpenedFilePathsManager.java
b/iotdb/src/main/java/org/apache/iotdb/db/query/control/OpenedFilePathsManager.java
index 585d85d..e6ffba3 100644
---
a/iotdb/src/main/java/org/apache/iotdb/db/query/control/OpenedFilePathsManager.java
+++
b/iotdb/src/main/java/org/apache/iotdb/db/query/control/OpenedFilePathsManager.java
@@ -65,7 +65,7 @@ public class OpenedFilePathsManager {
/**
* Add the unique file paths to closedFilePathsMap and unclosedFilePathsMap.
*/
- public void addUsedFilesForCurrentRequestThread(long jobId, QueryDataSource
dataSource) {
+ void addUsedFilesForCurrentRequestThread(long jobId, QueryDataSource
dataSource) {
for (TsFileResource tsFileResource :
dataSource.getSeqDataSource().getSealedTsFiles()) {
String sealedFilePath = tsFileResource.getFilePath();
addFilePathToMap(jobId, sealedFilePath, true);
@@ -110,9 +110,10 @@ public class OpenedFilePathsManager {
* so <code>closedFilePathsMap.get(jobId)</code> or
<code>unclosedFilePathsMap.get(jobId)</code>
* must not return null.
*/
- public void addFilePathToMap(long jobId, String filePath, boolean isClosed) {
+ void addFilePathToMap(long jobId, String filePath, boolean isClosed) {
ConcurrentHashMap<Long, Set<String>> pathMap = !isClosed ?
unclosedFilePathsMap :
closedFilePathsMap;
+ //TODO this is not an atomic operation, is there concurrent problem?
if (!pathMap.get(jobId).contains(filePath)) {
pathMap.get(jobId).add(filePath);
FileReaderManager.getInstance().increaseFileReaderReference(filePath,
isClosed);
diff --git
a/iotdb/src/main/java/org/apache/iotdb/db/query/control/QueryTokenManager.java
b/iotdb/src/main/java/org/apache/iotdb/db/query/control/QueryTokenManager.java
index e304675..50a2cb4 100644
---
a/iotdb/src/main/java/org/apache/iotdb/db/query/control/QueryTokenManager.java
+++
b/iotdb/src/main/java/org/apache/iotdb/db/query/control/QueryTokenManager.java
@@ -161,10 +161,7 @@ public class QueryTokenManager {
}
private void putQueryTokenForCurrentRequestThread(long jobId, String
deviceId, int queryToken) {
- if (!queryTokensMap.get(jobId).containsKey(deviceId)) {
- queryTokensMap.get(jobId).put(deviceId, new ArrayList<>());
- }
- queryTokensMap.get(jobId).get(deviceId).add(queryToken);
+ queryTokensMap.get(jobId).computeIfPresent(deviceId, (x, y) -> new
ArrayList<>()).add(queryToken);
}
private static class QueryTokenManagerHelper {