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
Modifier and TypeFieldDescriptionprivate final StoreFileListFile
private static final org.slf4j.Logger
private final Map<String,
StoreFileInfo> Fields inherited from class org.apache.hadoop.hbase.regionserver.storefiletracker.StoreFileTrackerBase
conf, ctx, isPrimaryReplica
-
Constructor Summary
ConstructorDescriptionFileBasedStoreFileTracker
(org.apache.hadoop.conf.Configuration conf, boolean isPrimaryReplica, StoreContext ctx) -
Method Summary
Modifier and TypeMethodDescriptionprotected void
doAddCompactionResults
(Collection<StoreFileInfo> compactedFiles, Collection<StoreFileInfo> newFiles) protected void
doAddNewStoreFiles
(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 void
doSetStoreFiles
(Collection<StoreFileInfo> files) boolean
Whether 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.StoreFileEntry
Methods inherited from class org.apache.hadoop.hbase.regionserver.storefiletracker.StoreFileTrackerBase
add, createReference, createWriter, getStoreFileInfo, getStoreFileInfo, getTrackerName, hasReferences, load, readReference, replace, set, updateWithTrackerConfigs
-
Field Details
-
backedFile
-
storefiles
-
LOG
-
-
Constructor Details
-
FileBasedStoreFileTracker
public FileBasedStoreFileTracker(org.apache.hadoop.conf.Configuration conf, boolean isPrimaryReplica, StoreContext ctx)
-
-
Method Details
-
doLoadStoreFiles
Description copied from class:StoreFileTrackerBase
For primary replica, we will call load once when opening a region, and the implementation could choose to do some cleanup work. So here we usereadOnly
to indicate that whether you are allowed to do the cleanup work. For secondary replicas, we will setreadOnly
totrue
.- Specified by:
doLoadStoreFiles
in classStoreFileTrackerBase
- Throws:
IOException
-
requireWritingToTmpDirFirst
Description copied from interface:StoreFileTracker
Whether 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:
doAddNewStoreFiles
in classStoreFileTrackerBase
- Throws:
IOException
-
doAddCompactionResults
protected void doAddCompactionResults(Collection<StoreFileInfo> compactedFiles, Collection<StoreFileInfo> newFiles) throws IOException - Specified by:
doAddCompactionResults
in classStoreFileTrackerBase
- Throws:
IOException
-
doSetStoreFiles
- Specified by:
doSetStoreFiles
in classStoreFileTrackerBase
- Throws:
IOException
-