diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotManifest.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotManifest.java index 8f5a4e32c6b1..7dbf5b0655e0 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotManifest.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotManifest.java @@ -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; @@ -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 storeFiles = tracker.load(); if (storeFiles.isEmpty()) { LOG.debug("No files under family: {}", cfd.getNameAsString());