You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by la...@apache.org on 2011/01/27 10:09:41 UTC
svn commit: r1064042 - in /hbase/branches/0.90: CHANGES.txt
src/main/java/org/apache/hadoop/hbase/io/hfile/HFile.java
Author: larsgeorge
Date: Thu Jan 27 09:09:40 2011
New Revision: 1064042
URL: http://svn.apache.org/viewvc?rev=1064042&view=rev
Log:
HBASE-3476 HFile -m option need not scan key values (Prakash Khemani via Lars George)
Modified:
hbase/branches/0.90/CHANGES.txt
hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/io/hfile/HFile.java
Modified: hbase/branches/0.90/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/branches/0.90/CHANGES.txt?rev=1064042&r1=1064041&r2=1064042&view=diff
==============================================================================
--- hbase/branches/0.90/CHANGES.txt (original)
+++ hbase/branches/0.90/CHANGES.txt Thu Jan 27 09:09:40 2011
@@ -5,6 +5,9 @@ Release 0.90.1 - Unreleased
HBASE-3445 Master crashes on data that was moved from different host
HBASE-3449 Server shutdown handlers deadlocked waiting for META
HBASE-3456 Fix hardcoding of 20 second socket timeout down in HBaseClient
+ HBASE-3476 HFile -m option need not scan key values
+ (Prakash Khemani via Lars George)
+
IMPROVEMENTS
Modified: hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/io/hfile/HFile.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/io/hfile/HFile.java?rev=1064042&r1=1064041&r2=1064042&view=diff
==============================================================================
--- hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/io/hfile/HFile.java (original)
+++ hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/io/hfile/HFile.java Thu Jan 27 09:09:40 2011
@@ -1900,45 +1900,47 @@ public class HFile {
// create reader and load file info
HFile.Reader reader = new HFile.Reader(fs, file, null, false);
Map<byte[],byte[]> fileInfo = reader.loadFileInfo();
- // scan over file and read key/value's and check if requested
- HFileScanner scanner = reader.getScanner(false, false);
- scanner.seekTo();
- KeyValue pkv = null;
int count = 0;
- do {
- KeyValue kv = scanner.getKeyValue();
- // dump key value
- if (printKeyValue) {
- System.out.println("K: " + kv +
- " V: " + Bytes.toStringBinary(kv.getValue()));
- }
- // check if rows are in order
- if (checkRow && pkv != null) {
- if (Bytes.compareTo(pkv.getRow(), kv.getRow()) > 0) {
- System.err.println("WARNING, previous row is greater then" +
- " current row\n\tfilename -> " + file +
- "\n\tprevious -> " + Bytes.toStringBinary(pkv.getKey()) +
- "\n\tcurrent -> " + Bytes.toStringBinary(kv.getKey()));
+ if (verbose || printKeyValue || checkRow || checkFamily) {
+ // scan over file and read key/value's and check if requested
+ HFileScanner scanner = reader.getScanner(false, false);
+ scanner.seekTo();
+ KeyValue pkv = null;
+ do {
+ KeyValue kv = scanner.getKeyValue();
+ // dump key value
+ if (printKeyValue) {
+ System.out.println("K: " + kv +
+ " V: " + Bytes.toStringBinary(kv.getValue()));
}
- }
- // check if families are consistent
- if (checkFamily) {
- String fam = Bytes.toString(kv.getFamily());
- if (!file.toString().contains(fam)) {
- System.err.println("WARNING, filename does not match kv family," +
- "\n\tfilename -> " + file +
- "\n\tkeyvalue -> " + Bytes.toStringBinary(kv.getKey()));
+ // check if rows are in order
+ if (checkRow && pkv != null) {
+ if (Bytes.compareTo(pkv.getRow(), kv.getRow()) > 0) {
+ System.err.println("WARNING, previous row is greater then" +
+ " current row\n\tfilename -> " + file +
+ "\n\tprevious -> " + Bytes.toStringBinary(pkv.getKey()) +
+ "\n\tcurrent -> " + Bytes.toStringBinary(kv.getKey()));
+ }
}
- if (pkv != null && Bytes.compareTo(pkv.getFamily(), kv.getFamily()) != 0) {
- System.err.println("WARNING, previous kv has different family" +
- " compared to current key\n\tfilename -> " + file +
- "\n\tprevious -> " + Bytes.toStringBinary(pkv.getKey()) +
- "\n\tcurrent -> " + Bytes.toStringBinary(kv.getKey()));
+ // check if families are consistent
+ if (checkFamily) {
+ String fam = Bytes.toString(kv.getFamily());
+ if (!file.toString().contains(fam)) {
+ System.err.println("WARNING, filename does not match kv family," +
+ "\n\tfilename -> " + file +
+ "\n\tkeyvalue -> " + Bytes.toStringBinary(kv.getKey()));
+ }
+ if (pkv != null && Bytes.compareTo(pkv.getFamily(), kv.getFamily()) != 0) {
+ System.err.println("WARNING, previous kv has different family" +
+ " compared to current key\n\tfilename -> " + file +
+ "\n\tprevious -> " + Bytes.toStringBinary(pkv.getKey()) +
+ "\n\tcurrent -> " + Bytes.toStringBinary(kv.getKey()));
+ }
}
- }
- pkv = kv;
- count++;
- } while (scanner.next());
+ pkv = kv;
+ count++;
+ } while (scanner.next());
+ }
if (verbose || printKeyValue) {
System.out.println("Scanned kv count -> " + count);
}