Class ReplicationLogCleaner
java.lang.Object
org.apache.hadoop.hbase.BaseConfigurable
org.apache.hadoop.hbase.master.cleaner.BaseFileCleanerDelegate
org.apache.hadoop.hbase.master.cleaner.BaseLogCleanerDelegate
org.apache.hadoop.hbase.replication.master.ReplicationLogCleaner
- All Implemented Interfaces:
org.apache.hadoop.conf.Configurable
,FileCleanerDelegate
,Stoppable
Implementation of a log cleaner that checks if a log is still scheduled for replication before
deleting it when its TTL is over.
The logic is a bit complicated after we switch to use table based replication queue storage, see
the design doc in HBASE-27109 and the comments in HBASE-27214 for more details.
-
Field Summary
Modifier and TypeFieldDescriptionprivate ReplicationLogCleanerBarrier
private boolean
private Supplier<Set<ServerName>>
private static final org.slf4j.Logger
private Set<ServerName>
private Map<ServerName,
Map<String, Map<String, ReplicationGroupOffset>>> private ReplicationPeerManager
private boolean
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprivate boolean
filterForDeadRegionServer
(ServerName serverName, org.apache.hadoop.fs.FileStatus file) private boolean
filterForLiveRegionServer
(ServerName serverName, org.apache.hadoop.fs.FileStatus file) Iterable<org.apache.hadoop.fs.FileStatus>
getDeletableFiles
(Iterable<org.apache.hadoop.fs.FileStatus> files) Determines which of the given files are safe to deleteprivate Set<ServerName>
getNotFullyDeadServers
(MasterServices services) void
this method is used to pass some instance into subclassboolean
Returns True ifStoppable.stop(String)
has been closed.void
Will be called after cleaner run.void
preClean()
Used to do some initialize work before every period cleanprivate boolean
shouldDelete
(ReplicationGroupOffset offset, org.apache.hadoop.fs.FileStatus file) void
Stop this service.Methods inherited from class org.apache.hadoop.hbase.master.cleaner.BaseLogCleanerDelegate
isFileDeletable
Methods inherited from class org.apache.hadoop.hbase.BaseConfigurable
getConf, setConf
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.hadoop.conf.Configurable
getConf, setConf
Methods inherited from interface org.apache.hadoop.hbase.master.cleaner.FileCleanerDelegate
isEmptyDirDeletable
-
Field Details
-
LOG
-
notFullyDeadServers
-
peerIds
-
replicationOffsets
-
barrier
-
rpm
-
getNotFullyDeadServers
-
canFilter
-
stopped
-
-
Constructor Details
-
ReplicationLogCleaner
public ReplicationLogCleaner()
-
-
Method Details
-
preClean
Description copied from interface:FileCleanerDelegate
Used to do some initialize work before every period clean -
postClean
Description copied from interface:FileCleanerDelegate
Will be called after cleaner run. -
shouldDelete
-
filterForLiveRegionServer
private boolean filterForLiveRegionServer(ServerName serverName, org.apache.hadoop.fs.FileStatus file) -
filterForDeadRegionServer
private boolean filterForDeadRegionServer(ServerName serverName, org.apache.hadoop.fs.FileStatus file) -
getDeletableFiles
public Iterable<org.apache.hadoop.fs.FileStatus> getDeletableFiles(Iterable<org.apache.hadoop.fs.FileStatus> files) Description copied from interface:FileCleanerDelegate
Determines which of the given files are safe to delete- Specified by:
getDeletableFiles
in interfaceFileCleanerDelegate
- Overrides:
getDeletableFiles
in classBaseFileCleanerDelegate
- Parameters:
files
- files to check for deletion- Returns:
- files that are ok to delete according to this cleaner
-
getNotFullyDeadServers
-
init
Description copied from interface:FileCleanerDelegate
this method is used to pass some instance into subclass- Specified by:
init
in interfaceFileCleanerDelegate
- Overrides:
init
in classBaseFileCleanerDelegate
-
stop
Description copied from interface:Stoppable
Stop this service. Implementers should favor logging errors over throwing RuntimeExceptions.- Parameters:
why
- Why we're stopping.
-
isStopped
Description copied from interface:Stoppable
Returns True ifStoppable.stop(String)
has been closed.
-