You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by li...@apache.org on 2013/06/12 20:35:59 UTC
svn commit: r1492339 - in /hbase/branches/0.89-fb/src:
main/java/org/apache/hadoop/hbase/client/ClientLocalScanner.java
test/java/org/apache/hadoop/hbase/client/TestClientLocalScanner.java
Author: liyin
Date: Wed Jun 12 18:35:59 2013
New Revision: 1492339
URL: http://svn.apache.org/r1492339
Log:
[HBASE-8185] Fixing 'ClientLocalScanner without creating Hardlinks' to not delete the hardlinks.
Author: manukranthk
Summary: Fixing ClientLocalScanner's 'without hardlinks' case to not delete the hardlinks. Earlier, these hardlinks used to be deleted since they are created by the ClientLocalScanner itself. But in this approach the hardlinks should be assumed to be created externally and so they cannot be deleted.
Test Plan: Unit test.
Reviewers: rshroff, shaneh
Reviewed By: rshroff
CC: hbase-eng@
Differential Revision: https://phabricator.fb.com/D842232
Task ID: 2483974
Modified:
hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/client/ClientLocalScanner.java
hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/client/TestClientLocalScanner.java
Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/client/ClientLocalScanner.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/client/ClientLocalScanner.java?rev=1492339&r1=1492338&r2=1492339&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/client/ClientLocalScanner.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/client/ClientLocalScanner.java Wed Jun 12 18:35:59 2013
@@ -220,7 +220,7 @@ public class ClientLocalScanner extends
protected void closeCurrentScanner() {
try {
for (Store store : stores.values()) {
- store.close(true);
+ store.close(areHardlinksCreated);
}
stores.clear();
if (currentScanner != null) {
Modified: hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/client/TestClientLocalScanner.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/client/TestClientLocalScanner.java?rev=1492339&r1=1492338&r2=1492339&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/client/TestClientLocalScanner.java (original)
+++ hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/client/TestClientLocalScanner.java Wed Jun 12 18:35:59 2013
@@ -33,15 +33,18 @@ import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.HBaseTestingUtility;
+import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.HRegionInfo;
import org.apache.hadoop.hbase.HServerAddress;
+import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.filter.BinaryComparator;
import org.apache.hadoop.hbase.filter.CompareFilter;
import org.apache.hadoop.hbase.filter.Filter;
import org.apache.hadoop.hbase.filter.RowFilter;
import org.apache.hadoop.hbase.filter.WhileMatchFilter;
+import org.apache.hadoop.hbase.regionserver.Store;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.util.InjectionEvent;
import org.apache.hadoop.hbase.util.InjectionHandler;
@@ -267,14 +270,26 @@ public class TestClientLocalScanner {
ResultScanner scanner = t.getLocalScanner(scan);
assertTrue(fs.exists(folder));
assertTrue(fs.listStatus(folder).length > 0);
- fs.delete(folder, true);
+ scanner.close();
+
+ Path rootdir = new Path(TEST_UTIL.getConfiguration().get("hbase.rootdir"));
+ HRegionInfo info = t.getRegionsInfo().keySet().iterator().next();
+ HColumnDescriptor family = info.getTableDesc().getFamily(FAMILY);
+ Path tableDir = HTableDescriptor.getTableDir(rootdir, info.getTableDesc().getName());
+ Path homedir = Store.getStoreHomedir(tableDir, info.getEncodedName(), family.getName());
+
+ assertTrue(fs.exists(homedir));
+ int files = fs.listStatus(homedir).length;
scanner = t.getLocalScanner(scan, false);
assertTrue(compareScanners(tmpTable.getScanner(scan),
scanner));
- assertTrue(!fs.exists(folder));
- scanner.close();
+ assertTrue(fs.exists(folder));
+ assertTrue(fs.listStatus(folder).length <= 0);
scanner.close();
+
+ assertTrue(fs.exists(homedir));
+ assertTrue(fs.listStatus(homedir).length == files);
}
public Scan getScan(int caching, int batching,