Class FileBasedStoreFileTracker
java.lang.Object
org.apache.hadoop.hbase.regionserver.storefiletracker.StoreFileTrackerBase
org.apache.hadoop.hbase.regionserver.storefiletracker.FileBasedStoreFileTracker
- All Implemented Interfaces:
StoreFileTracker
A file based store file tracker.
For this tracking way, the store file list will be persistent into a file, so we can write the
new store files directly to the final data directory, as we will not load the broken files. This
will greatly reduce the time for flush and compaction on some object storages as a rename is
actual a copy on them. And it also avoid listing when loading store file list, which could also
speed up the loading of store files as listing is also not a fast operation on most object
storages.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final StoreFileListFileprivate final Map<String,StoreFileInfo> Fields inherited from class org.apache.hadoop.hbase.regionserver.storefiletracker.StoreFileTrackerBase
conf, ctx, isPrimaryReplica -
Constructor Summary
ConstructorsConstructorDescriptionFileBasedStoreFileTracker(org.apache.hadoop.conf.Configuration conf, boolean isPrimaryReplica, StoreContext ctx) -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddoAddCompactionResults(Collection<StoreFileInfo> compactedFiles, Collection<StoreFileInfo> newFiles) protected voiddoAddNewStoreFiles(Collection<StoreFileInfo> newFiles) protected List<StoreFileInfo>doLoadStoreFiles(boolean readOnly) For primary replica, we will call load once when opening a region, and the implementation could choose to do some cleanup work.protected voiddoSetStoreFiles(Collection<StoreFileInfo> files) booleanWhether the implementation of this tracker requires you to write to temp directory first, i.e, does not allow broken store files under the actual data directory.private org.apache.hadoop.hbase.shaded.protobuf.generated.StoreFileTrackerProtos.StoreFileEntryMethods inherited from class org.apache.hadoop.hbase.regionserver.storefiletracker.StoreFileTrackerBase
add, createWriter, getTrackerName, load, replace, set, updateWithTrackerConfigs
-
Field Details
-
backedFile
-
storefiles
-
-
Constructor Details
-
FileBasedStoreFileTracker
public FileBasedStoreFileTracker(org.apache.hadoop.conf.Configuration conf, boolean isPrimaryReplica, StoreContext ctx)
-
-
Method Details
-
doLoadStoreFiles
Description copied from class:StoreFileTrackerBaseFor primary replica, we will call load once when opening a region, and the implementation could choose to do some cleanup work. So here we usereadOnlyto indicate that whether you are allowed to do the cleanup work. For secondary replicas, we will setreadOnlytotrue.- Specified by:
doLoadStoreFilesin classStoreFileTrackerBase- Throws:
IOException
-
requireWritingToTmpDirFirst
Description copied from interface:StoreFileTrackerWhether the implementation of this tracker requires you to write to temp directory first, i.e, does not allow broken store files under the actual data directory. -
toStoreFileEntry
private org.apache.hadoop.hbase.shaded.protobuf.generated.StoreFileTrackerProtos.StoreFileEntry toStoreFileEntry(StoreFileInfo info) -
doAddNewStoreFiles
- Specified by:
doAddNewStoreFilesin classStoreFileTrackerBase- Throws:
IOException
-
doAddCompactionResults
protected void doAddCompactionResults(Collection<StoreFileInfo> compactedFiles, Collection<StoreFileInfo> newFiles) throws IOException - Specified by:
doAddCompactionResultsin classStoreFileTrackerBase- Throws:
IOException
-
doSetStoreFiles
- Specified by:
doSetStoreFilesin classStoreFileTrackerBase- Throws:
IOException
-