Skip to content

Commit

Permalink
HBASE-27017: MOB snapshot is broken when FileBased SFT is used (#4466)
Browse files Browse the repository at this point in the history
Signed-off-by: Duo Zhang <zhangduo@apache.org>
Signed-off-by: Wellington Chevreuil <wchevreuil@apache.org>
  • Loading branch information
BukrosSzabolcs authored and wchevreuil committed Jun 5, 2022
1 parent 5a13ad8 commit 8139cf6
Showing 1 changed file with 12 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;
import org.apache.hadoop.hbase.client.RegionInfo;
import org.apache.hadoop.hbase.client.TableDescriptor;
import org.apache.hadoop.hbase.errorhandling.ForeignExceptionSnare;
Expand Down Expand Up @@ -310,7 +311,17 @@ protected void addRegion(Path tableDir, RegionInfo regionInfo, RegionVisitor vis
for (ColumnFamilyDescriptor cfd : htd.getColumnFamilies()) {
Object familyData = visitor.familyOpen(regionData, cfd.getName());
monitor.rethrowException();
StoreFileTracker tracker = StoreFileTrackerFactory.create(conf, htd, cfd, regionFs);
StoreFileTracker tracker = null;
if (isMobRegion) {
// MOB regions are always using the default SFT implementation
ColumnFamilyDescriptor defaultSFTCfd = ColumnFamilyDescriptorBuilder.newBuilder(cfd)
.setValue(StoreFileTrackerFactory.TRACKER_IMPL,
StoreFileTrackerFactory.Trackers.DEFAULT.name())
.build();
tracker = StoreFileTrackerFactory.create(conf, htd, defaultSFTCfd, regionFs);
} else {
tracker = StoreFileTrackerFactory.create(conf, htd, cfd, regionFs);
}
List<StoreFileInfo> storeFiles = tracker.load();
if (storeFiles.isEmpty()) {
LOG.debug("No files under family: {}", cfd.getNameAsString());
Expand Down

0 comments on commit 8139cf6

Please sign in to comment.