Class LegacyCheckpointCompactor


  • @Deprecated(since="1.88.0")
    public class LegacyCheckpointCompactor
    extends Compactor
    Deprecated.
    Use CheckpointCompactor instead.
    Note: this implementation is a copy of the code before the fix for OAK-11985. This implementation is left here in case of new issues introduced with OAK-11985. In org.apache.jackrabbit.oak.segment.file.AbstractCompactionStrategy a system property based toggle ("oak.compaction.legacy", boolean, default value "false") is implemented to switch between CheckpointCompactor and LegacyCheckpointCompactor. This compactor implementation is aware of the checkpoints in the repository. It uses this information to further optimise the compaction result by
    • Rebasing the checkpoints and subsequently the root on top of each other in chronological order. This results minimises the deltas that need to be processed and stored.
    • Caching the compacted checkpoints and root states for deduplication should the same checkpoint or root state occur again in a later compaction retry cycle.
    Since:
    1.86.0 (OAK-11985)
    See Also:
    CheckpointCompactor
    • Field Detail

      • gcListener

        @NotNull
        protected final @NotNull GCMonitor gcListener
        Deprecated.
      • compactor

        @NotNull
        protected final @NotNull ClassicCompactor compactor
        Deprecated.
    • Constructor Detail

      • LegacyCheckpointCompactor

        public LegacyCheckpointCompactor​(@NotNull
                                         @NotNull GCMonitor gcListener,
                                         @NotNull
                                         @NotNull ClassicCompactor compactor)
        Deprecated.
        Create a new instance based on the passed arguments.
        Parameters:
        gcListener - listener receiving notifications about the garbage collection process
        compactor - the delegate compactor to use for the actual compaction work
    • Method Detail

      • compactDown

        @Nullable
        public @Nullable CompactedNodeState compactDown​(@NotNull
                                                        @NotNull NodeState before,
                                                        @NotNull
                                                        @NotNull NodeState after,
                                                        @NotNull
                                                        @NotNull Canceller hardCanceller,
                                                        @NotNull
                                                        @NotNull Canceller softCanceller)
                                                 throws IOException
        Deprecated.
        Description copied from class: Compactor
        compact the differences between after and before on top of after.
        Specified by:
        compactDown in class Compactor
        Parameters:
        before - the node state to diff against from after
        after - the node state diffed against before
        hardCanceller - the trigger for hard cancellation, will abandon compaction if cancelled
        softCanceller - the trigger for soft cancellation, will return partially compacted state if cancelled
        Returns:
        the compacted node state or null if hard-cancelled
        Throws:
        IOException - will throw exception if any errors occur during compaction
      • compact

        @Nullable
        public @Nullable CompactedNodeState compact​(@NotNull
                                                    @NotNull NodeState before,
                                                    @NotNull
                                                    @NotNull NodeState after,
                                                    @NotNull
                                                    @NotNull NodeState onto,
                                                    @NotNull
                                                    @NotNull Canceller canceller)
                                             throws IOException
        Deprecated.
        Description copied from class: Compactor
        compact the differences between after and before on top of onto.
        Specified by:
        compact in class Compactor
        Parameters:
        before - the node state to diff against from after
        after - the node state diffed against before
        onto - the node state to compact to apply the diff to
        canceller - the trigger for hard cancellation, will abandon compaction if cancelled
        Returns:
        the compacted node state or null if hard-cancelled
        Throws:
        IOException - will throw exception if any errors occur during compaction