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/07 21:53:43 UTC

[accumulo] branch 1.8 updated: ACCUMULO-4790 Avoid creating FileRef

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 2331423  ACCUMULO-4790 Avoid creating FileRef
2331423 is described below

commit 233142368861bea620e6c7b8899140cc7108c385
Author: Keith Turner <kt...@apache.org>
AuthorDate: Thu Feb 1 23:59:12 2018 -0500

    ACCUMULO-4790 Avoid creating FileRef
---
 .../java/org/apache/accumulo/tserver/FileManager.java  | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 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 8bc0fed..a707251 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
@@ -510,6 +510,14 @@ public class FileManager {
 
       ArrayList<InterruptibleIterator> iters = new ArrayList<>();
 
+      boolean sawTimeSet = false;
+      for (DataFileValue dfv : files.values()) {
+        if (dfv.isTimeSet()) {
+          sawTimeSet = true;
+          break;
+        }
+      }
+
       for (FileSKVIterator reader : newlyReservedReaders) {
         String filename = getReservedReadeFilename(reader);
         InterruptibleIterator iter;
@@ -530,9 +538,13 @@ public class FileManager {
         } else {
           iter = new ProblemReportingIterator(context, tablet.getTableId(), filename, continueOnFailure, source);
         }
-        DataFileValue value = files.get(new FileRef(filename));
-        if (value.isTimeSet()) {
-          iter = new TimeSettingIterator(iter, value.getTime());
+
+        if (sawTimeSet) {
+          // constucting FileRef is expensive so avoid if not needed
+          DataFileValue value = files.get(new FileRef(filename));
+          if (value.isTimeSet()) {
+            iter = new TimeSettingIterator(iter, value.getTime());
+          }
         }
 
         iters.add(iter);

-- 
To stop receiving notification emails like this one, please contact
kturner@apache.org.