From 48b37d99bff444562915a1378de7834de820ad93 Mon Sep 17 00:00:00 2001 From: Michael Stack Date: Mon, 13 Aug 2012 08:34:07 +0000 Subject: [PATCH] HBASE-6529 With HFile v2, the region server will always perform an extra copy of source files git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1372313 13f79535-47bb-0310-9956-ffa450edef68 --- .../main/java/org/apache/hadoop/hbase/regionserver/Store.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java index 87a1c13f88d..ab90034d256 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java @@ -53,6 +53,7 @@ import org.apache.hadoop.hbase.KeyValue.KVComparator; import org.apache.hadoop.hbase.RemoteExceptionHandler; import org.apache.hadoop.hbase.backup.HFileArchiver; import org.apache.hadoop.hbase.client.Scan; +import org.apache.hadoop.hbase.fs.HFileSystem; import org.apache.hadoop.hbase.io.HeapSize; import org.apache.hadoop.hbase.io.hfile.CacheConfig; import org.apache.hadoop.hbase.io.hfile.Compression; @@ -564,7 +565,8 @@ public class Store extends SchemaConfigured implements HeapSize { // Copy the file if it's on another filesystem FileSystem srcFs = srcPath.getFileSystem(conf); - if (!srcFs.equals(fs)) { + FileSystem desFs = fs instanceof HFileSystem ? ((HFileSystem)fs).getBackingFs() : fs; + if (!srcFs.equals(desFs)) { LOG.info("Bulk-load file " + srcPath + " is on different filesystem than " + "the destination store. Copying file over to destination filesystem."); Path tmpPath = getTmpPath();