You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2009/07/07 20:09:50 UTC
svn commit: r791923 - in /hadoop/hbase/trunk: CHANGES.txt
src/java/org/apache/hadoop/hbase/regionserver/Store.java
src/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java
Author: stack
Date: Tue Jul 7 18:09:50 2009
New Revision: 791923
URL: http://svn.apache.org/viewvc?rev=791923&view=rev
Log:
HBASE-1620 Need to use special StoreScanner constructor for major compactions (passed sf, no caching, etc)
Modified:
hadoop/hbase/trunk/CHANGES.txt
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Store.java
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java
Modified: hadoop/hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/CHANGES.txt?rev=791923&r1=791922&r2=791923&view=diff
==============================================================================
--- hadoop/hbase/trunk/CHANGES.txt (original)
+++ hadoop/hbase/trunk/CHANGES.txt Tue Jul 7 18:09:50 2009
@@ -443,6 +443,8 @@
HBASE-1218 Implement in-memory column (Jon Gray via Stack)
HBASE-1606 Remove zoo.cfg, put config options into hbase-site.xml
HBASE-1575 HMaster does not handle ZK session expiration
+ HBASE-1620 Need to use special StoreScanner constructor for major compactions
+ (passed sf, no caching, etc) (Jon Gray via Stack)
OPTIMIZATIONS
HBASE-1412 Change values for delete column and column family in KeyValue
Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Store.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Store.java?rev=791923&r1=791922&r2=791923&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Store.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Store.java Tue Jul 7 18:09:50 2009
@@ -859,8 +859,7 @@
try {
Scan scan = new Scan();
scan.setMaxVersions(family.getMaxVersions());
- // TODO pass in the scanners/store files.
- scanner = new StoreScanner(this, scan, null);
+ scanner = new StoreScanner(this, scan, scanners);
// since scanner.next() can return 'false' but still be delivering data,
// we have to use a do/while loop.
Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java?rev=791923&r1=791922&r2=791923&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java Tue Jul 7 18:09:50 2009
@@ -70,6 +70,26 @@
this.store.addChangedReaderObserver(this);
}
+ /**
+ * Used for major compactions.<p>
+ *
+ * Opens a scanner across specified StoreFiles.
+ */
+ StoreScanner(Store store, Scan scan, KeyValueScanner [] scanners) {
+ this.store = store;
+ matcher = new ScanQueryMatcher(scan, store.getFamily().getName(),
+ null, store.ttl, store.comparator.getRawComparator(),
+ store.versionsToReturn(scan.getMaxVersions()));
+
+ // Seek all scanners to the initial key
+ for(KeyValueScanner scanner : scanners) {
+ scanner.seek(matcher.getStartKey());
+ }
+
+ // Combine all seeked scanners with a heap
+ heap = new KeyValueHeap(scanners, store.comparator);
+ }
+
// Constructor for testing.
StoreScanner(final Scan scan, final byte [] colFamily, final long ttl,
final KeyValue.KVComparator comparator,