Class NullLedgerOffloader

  • All Implemented Interfaces:
    LedgerOffloader

    public class NullLedgerOffloader
    extends java.lang.Object
    implements LedgerOffloader
    Null implementation that throws an error on any invokation.
    • Constructor Detail

      • NullLedgerOffloader

        public NullLedgerOffloader()
    • Method Detail

      • offload

        public java.util.concurrent.CompletableFuture<java.lang.Void> offload​(org.apache.bookkeeper.client.api.ReadHandle ledger,
                                                                              java.util.UUID uid,
                                                                              java.util.Map<java.lang.String,​java.lang.String> extraMetadata)
        Description copied from interface: LedgerOffloader
        Offload the passed in ledger to longterm storage. Metadata passed in is for inspection purposes only and should be stored alongside the ledger data. When the returned future completes, the ledger has been persisted to the longterm storage, so it is safe to delete the original copy in bookkeeper. The uid is used to identify an attempt to offload. The implementation should use this to deterministically generate a unique name for the offloaded object. This uid will be stored in the managed ledger metadata before attempting the call to offload(). If a subsequent or concurrent call to offload() finds a uid in the metadata, it will attempt to cleanup this attempt with a call to #deleteOffloaded(ReadHandle,UUID). Once the offload attempt completes, the managed ledger will update its metadata again, to record the completion, ensuring that subsequent calls will not attempt to offload the same ledger again.
        Specified by:
        offload in interface LedgerOffloader
        Parameters:
        ledger - the ledger to offload
        uid - unique id to identity this offload attempt
        extraMetadata - metadata to be stored with the offloaded ledger for informational purposes
        Returns:
        a future, which when completed, denotes that the offload has been successful.
      • readOffloaded

        public java.util.concurrent.CompletableFuture<org.apache.bookkeeper.client.api.ReadHandle> readOffloaded​(long ledgerId,
                                                                                                                 java.util.UUID uid,
                                                                                                                 java.util.Map<java.lang.String,​java.lang.String> offloadDriverMetadata)
        Description copied from interface: LedgerOffloader
        Create a ReadHandle which can be used to read a ledger back from longterm storage. The passed uid, will be match the uid of a previous successful call to #offload(ReadHandle,UUID,Map).
        Specified by:
        readOffloaded in interface LedgerOffloader
        Parameters:
        ledgerId - the ID of the ledger to load from longterm storage
        uid - unique ID for previous successful offload attempt
        offloadDriverMetadata - offload driver metadata
        Returns:
        a future, which when completed, returns a ReadHandle
      • deleteOffloaded

        public java.util.concurrent.CompletableFuture<java.lang.Void> deleteOffloaded​(long ledgerId,
                                                                                      java.util.UUID uid,
                                                                                      java.util.Map<java.lang.String,​java.lang.String> offloadDriverMetadata)
        Description copied from interface: LedgerOffloader
        Delete a ledger from long term storage. The passed uid, will be match the uid of a previous call to #offload(ReadHandle,UUID,Map), which may or may not have been successful.
        Specified by:
        deleteOffloaded in interface LedgerOffloader
        Parameters:
        ledgerId - the ID of the ledger to delete from longterm storage
        uid - unique ID for previous offload attempt
        offloadDriverMetadata - offload driver metadata
        Returns:
        a future, which when completed, signifies that the ledger has been deleted
      • getOffloadPolicies

        public org.apache.pulsar.common.policies.data.OffloadPoliciesImpl getOffloadPolicies()
        Description copied from interface: LedgerOffloader
        Get offload policies of this LedgerOffloader
        Specified by:
        getOffloadPolicies in interface LedgerOffloader
        Returns:
        offload policies