Package org.apache.hadoop.ozone.om
Class SnapshotDefragService
java.lang.Object
org.apache.hadoop.hdds.utils.BackgroundService
org.apache.hadoop.ozone.om.SnapshotDefragService
- All Implemented Interfaces:
org.apache.hadoop.ozone.lock.BootstrapStateHandler
public class SnapshotDefragService
extends org.apache.hadoop.hdds.utils.BackgroundService
implements org.apache.hadoop.ozone.lock.BootstrapStateHandler
Background service for defragmenting snapshots in the active snapshot chain.
When snapshots are taken, they capture the entire OM RocksDB state but may contain
fragmented data. This service defragments snapshots by creating new compacted
RocksDB instances with only the necessary data for tracked column families.
The service processes snapshots in the active chain sequentially, starting with the first non-defragmented snapshot. For the first snapshot in the chain, it performs a full defragmentation by copying all keys. For subsequent snapshots, it uses incremental defragmentation based on diffs from the previous defragmented snapshot.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.hadoop.hdds.utils.BackgroundService
org.apache.hadoop.hdds.utils.BackgroundService.PeriodicalTaskNested classes/interfaces inherited from interface org.apache.hadoop.ozone.lock.BootstrapStateHandler
org.apache.hadoop.ozone.lock.BootstrapStateHandler.Lock -
Constructor Summary
ConstructorsConstructorDescriptionSnapshotDefragService(long interval, TimeUnit unit, long serviceTimeout, OzoneManager ozoneManager, org.apache.hadoop.hdds.conf.OzoneConfiguration configuration) -
Method Summary
Methods inherited from class org.apache.hadoop.hdds.utils.BackgroundService
execTaskCompletion, getExecutorService, getFuture, getIntervalMillis, getThreadCount, runPeriodicalTaskNow, setInterval, setPoolSize, setServiceTimeoutInNanos
-
Constructor Details
-
SnapshotDefragService
public SnapshotDefragService(long interval, TimeUnit unit, long serviceTimeout, OzoneManager ozoneManager, org.apache.hadoop.hdds.conf.OzoneConfiguration configuration)
-
-
Method Details
-
start
public void start()- Overrides:
startin classorg.apache.hadoop.hdds.utils.BackgroundService
-
pause
public void pause() -
resume
public void resume() -
triggerSnapshotDefragOnce
- Throws:
IOException
-
getTasks
public org.apache.hadoop.hdds.utils.BackgroundTaskQueue getTasks()- Specified by:
getTasksin classorg.apache.hadoop.hdds.utils.BackgroundService
-
getSnapshotsDefraggedCount
-
getBootstrapStateLock
public org.apache.hadoop.ozone.lock.BootstrapStateHandler.Lock getBootstrapStateLock()- Specified by:
getBootstrapStateLockin interfaceorg.apache.hadoop.ozone.lock.BootstrapStateHandler
-
shutdown
public void shutdown()- Overrides:
shutdownin classorg.apache.hadoop.hdds.utils.BackgroundService
-