You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by el...@apache.org on 2014/11/17 03:57:16 UTC
accumulo git commit: ACCUMULO-3282 Read file column for tablet from
map instead of re-scanning metadata table.
Repository: accumulo
Updated Branches:
refs/heads/master e912cdde0 -> 0412f7b55
ACCUMULO-3282 Read file column for tablet from map instead of re-scanning metadata table.
Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/0412f7b5
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/0412f7b5
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/0412f7b5
Branch: refs/heads/master
Commit: 0412f7b559bbc9678e175489ed8b70f4b9a46ba9
Parents: e912cdd
Author: Josh Elser <el...@apache.org>
Authored: Thu Nov 13 10:42:14 2014 -0800
Committer: Josh Elser <el...@apache.org>
Committed: Sun Nov 16 20:13:49 2014 -0500
----------------------------------------------------------------------
.../apache/accumulo/tserver/tablet/Tablet.java | 36 +++++++-------------
1 file changed, 13 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/0412f7b5/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java
----------------------------------------------------------------------
diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java
index 9490903..1f3306e 100644
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java
@@ -46,7 +46,6 @@ import org.apache.accumulo.core.Constants;
import org.apache.accumulo.core.client.Durability;
import org.apache.accumulo.core.client.IteratorSetting;
import org.apache.accumulo.core.client.impl.DurabilityImpl;
-import org.apache.accumulo.core.client.impl.ScannerImpl;
import org.apache.accumulo.core.client.impl.Tables;
import org.apache.accumulo.core.conf.AccumuloConfiguration;
import org.apache.accumulo.core.conf.ConfigurationCopy;
@@ -74,7 +73,6 @@ import org.apache.accumulo.core.metadata.MetadataTable;
import org.apache.accumulo.core.metadata.RootTable;
import org.apache.accumulo.core.metadata.schema.DataFileValue;
import org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection;
-import org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.DataFileColumnFamily;
import org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.LogColumnFamily;
import org.apache.accumulo.core.metadata.schema.MetadataSchema.TabletsSection.ScanFileColumnFamily;
import org.apache.accumulo.core.protobuf.ProtobufUtil;
@@ -352,29 +350,21 @@ public class Tablet implements TabletCommitter {
datafiles.put(ref, dfv);
}
} else {
+ final Text buffer = new Text();
+ final Text row = extent.getMetadataEntry();
- Text rowName = extent.getMetadataEntry();
-
- String tableId = extent.isMeta() ? RootTable.ID : MetadataTable.ID;
- ScannerImpl mdScanner = new ScannerImpl(HdfsZooInstance.getInstance(), SystemCredentials.get(), tableId, Authorizations.EMPTY);
-
- // Commented out because when no data file is present, each tablet will scan through metadata table and return nothing
- // reduced batch size to improve performance
- // changed here after endKeys were implemented from 10 to 1000
- mdScanner.setBatchSize(1000);
-
- // leave these in, again, now using endKey for safety
- mdScanner.fetchColumnFamily(DataFileColumnFamily.NAME);
-
- mdScanner.setRange(new Range(rowName));
-
- for (Entry<Key,Value> entry : mdScanner) {
- if (entry.getKey().compareRow(rowName) != 0) {
- break;
+ for (Entry<Key,Value> entry : tabletsKeyValues.entrySet()) {
+ Key k = entry.getKey();
+ k.getRow(buffer);
+ // Double-check that we have the expected row
+ if (row.equals(buffer)) {
+ k.getColumnFamily(buffer);
+ // Ignore anything but file:
+ if (TabletsSection.DataFileColumnFamily.NAME.equals(buffer)) {
+ FileRef ref = new FileRef(fs, k);
+ datafiles.put(ref, new DataFileValue(entry.getValue().get()));
+ }
}
-
- FileRef ref = new FileRef(fs, entry.getKey());
- datafiles.put(ref, new DataFileValue(entry.getValue().get()));
}
}
return datafiles;