Package org.apache.bookkeeper.bookie
Class SyncThread
java.lang.Object
org.apache.bookkeeper.bookie.SyncThread
- All Implemented Interfaces:
Checkpointer
SyncThread is a background thread which help checkpointing ledger storage
when a checkpoint is requested. After a ledger storage is checkpointed,
the journal files added before checkpoint will be garbage collected.
After all data has been persisted to ledger index files and entry loggers, it is safe to complete a checkpoint by persisting the log marker to disk. If bookie failed after persist log mark, bookie is able to relay journal entries started from last log mark without losing any entries.
Those journal files whose id are less than the log id in last log mark, could be removed safely after persisting last log mark. We provide a setting to let user keeping number of old journal files which may be used for manual recovery in critical disaster.
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) final CheckpointSource(package private) final LedgerDirsManager.LedgerDirsListener(package private) final ScheduledExecutorService(package private) final LedgerStorageFields inherited from interface org.apache.bookkeeper.bookie.Checkpointer
NULL -
Constructor Summary
ConstructorsConstructorDescriptionSyncThread(ServerConfiguration conf, LedgerDirsManager.LedgerDirsListener dirsListener, LedgerStorage ledgerStorage, CheckpointSource checkpointSource, StatsLogger statsLogger) -
Method Summary
Modifier and TypeMethodDescriptionvoidcheckpoint(CheckpointSource.Checkpoint checkpoint) voidprotected voiddoCheckpoint(CheckpointSource.Checkpoint checkpoint) (package private) ScheduledExecutorService(package private) static ScheduledExecutorServicevoidResume sync thread.(package private) voidshutdown()voidstart()voidstartCheckpoint(CheckpointSource.Checkpoint checkpoint) Start checkpointing for a given checkpoint location.voidSuspend sync thread.
-
Field Details
-
executor
-
ledgerStorage
-
dirsListener
-
checkpointSource
-
-
Constructor Details
-
SyncThread
public SyncThread(ServerConfiguration conf, LedgerDirsManager.LedgerDirsListener dirsListener, LedgerStorage ledgerStorage, CheckpointSource checkpointSource, StatsLogger statsLogger)
-
-
Method Details
-
newExecutor
-
startCheckpoint
Description copied from interface:CheckpointerStart checkpointing for a given checkpoint location.- Specified by:
startCheckpointin interfaceCheckpointer- Parameters:
checkpoint- the checkpoint location to checkpoint.
-
doCheckpoint
-
requestFlush
-
checkpoint
-
start
public void start()- Specified by:
startin interfaceCheckpointer
-
suspendSync
public void suspendSync()Suspend sync thread. (for testing) -
resumeSync
public void resumeSync()Resume sync thread. (for testing) -
disableCheckpoint
public void disableCheckpoint() -
shutdown
- Throws:
InterruptedException
-
getExecutor
ScheduledExecutorService getExecutor()
-