You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by kt...@apache.org on 2018/02/21 17:11:07 UTC
[accumulo] branch 1.8 updated: ACCUMULO-4805 Optimize file manager
when no files to open (#389)
This is an automated email from the ASF dual-hosted git repository.
kturner pushed a commit to branch 1.8
in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/1.8 by this push:
new fb72991 ACCUMULO-4805 Optimize file manager when no files to open (#389)
fb72991 is described below
commit fb7299118fbe16f41e969fccbc8aadaa30bd0d88
Author: Keith Turner <ke...@deenlo.com>
AuthorDate: Wed Feb 21 12:11:04 2018 -0500
ACCUMULO-4805 Optimize file manager when no files to open (#389)
---
.../org/apache/accumulo/tserver/FileManager.java | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/FileManager.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/FileManager.java
index 2aaad39..9833232 100644
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/FileManager.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/FileManager.java
@@ -245,10 +245,8 @@ public class FileManager {
}
private List<String> takeOpenFiles(Collection<String> files, Map<FileSKVIterator,String> readersReserved) {
- List<String> filesToOpen = new LinkedList<>(files);
- for (Iterator<String> iterator = filesToOpen.iterator(); iterator.hasNext();) {
- String file = iterator.next();
-
+ List<String> filesToOpen = Collections.emptyList();
+ for (String file : files) {
List<OpenReader> ofl = openFiles.get(file);
if (ofl != null && ofl.size() > 0) {
OpenReader openReader = ofl.remove(ofl.size() - 1);
@@ -256,9 +254,12 @@ public class FileManager {
if (ofl.size() == 0) {
openFiles.remove(file);
}
- iterator.remove();
+ } else {
+ if (filesToOpen.isEmpty()) {
+ filesToOpen = new ArrayList<>(files.size());
+ }
+ filesToOpen.add(file);
}
-
}
return filesToOpen;
}
@@ -291,10 +292,12 @@ public class FileManager {
filesToOpen = takeOpenFiles(files, readersReserved);
- int numOpen = countReaders(openFiles);
+ if (!filesToOpen.isEmpty()) {
+ int numOpen = countReaders(openFiles);
- if (filesToOpen.size() + numOpen + reservedReaders.size() > maxOpen) {
- filesToClose = takeLRUOpenFiles((filesToOpen.size() + numOpen + reservedReaders.size()) - maxOpen);
+ if (filesToOpen.size() + numOpen + reservedReaders.size() > maxOpen) {
+ filesToClose = takeLRUOpenFiles((filesToOpen.size() + numOpen + reservedReaders.size()) - maxOpen);
+ }
}
}
--
To stop receiving notification emails like this one, please contact
kturner@apache.org.