Class BlobStoreManagedLedgerOffloader

  • All Implemented Interfaces:
    org.apache.bookkeeper.mledger.LedgerOffloader

    public class BlobStoreManagedLedgerOffloader
    extends java.lang.Object
    implements org.apache.bookkeeper.mledger.LedgerOffloader
    Tiered Storage Offloader that is backed by a JCloud Blob Store.

    The constructor takes an instance of TieredStorageConfiguration, which contains all of the configuration data necessary to connect to a JCloud Provider service.

    • Nested Class Summary

      • Nested classes/interfaces inherited from interface org.apache.bookkeeper.mledger.LedgerOffloader

        org.apache.bookkeeper.mledger.LedgerOffloader.OffloadHandle, org.apache.bookkeeper.mledger.LedgerOffloader.OffloadResult
    • Field Summary

      • Fields inherited from interface org.apache.bookkeeper.mledger.LedgerOffloader

        METADATA_PULSAR_CLUSTER_NAME, METADATA_SOFTWARE_GITSHA_KEY, METADATA_SOFTWARE_VERSION_KEY
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()  
      static BlobStoreManagedLedgerOffloader create​(TieredStorageConfiguration config, java.util.Map<java.lang.String,​java.lang.String> userMetadata, org.apache.bookkeeper.common.util.OrderedScheduler scheduler)  
      java.util.concurrent.CompletableFuture<java.lang.Void> deleteOffloaded​(long ledgerId, java.util.UUID uid, java.util.Map<java.lang.String,​java.lang.String> offloadDriverMetadata)  
      java.util.concurrent.CompletableFuture<java.lang.Void> deleteOffloaded​(java.util.UUID uid, java.util.Map<java.lang.String,​java.lang.String> offloadDriverMetadata)  
      java.util.Map<java.lang.String,​java.lang.String> getOffloadDriverMetadata()  
      java.lang.String getOffloadDriverName()  
      org.apache.pulsar.common.policies.data.OffloadPoliciesImpl getOffloadPolicies()  
      java.util.concurrent.CompletableFuture<java.lang.Void> offload​(org.apache.bookkeeper.client.api.ReadHandle readHandle, java.util.UUID uuid, java.util.Map<java.lang.String,​java.lang.String> extraMetadata)
      Upload the DataBlocks associated with the given ReadHandle using MultiPartUpload, Creating indexBlocks for each corresponding DataBlock that is uploaded.
      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)  
      java.util.concurrent.CompletableFuture<org.apache.bookkeeper.client.api.ReadHandle> readOffloaded​(long ledgerId, org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext ledgerContext, java.util.Map<java.lang.String,​java.lang.String> offloadDriverMetadata)  
      java.util.concurrent.CompletableFuture<org.apache.bookkeeper.mledger.LedgerOffloader.OffloadHandle> streamingOffload​(@NonNull org.apache.bookkeeper.mledger.ManagedLedger ml, java.util.UUID uuid, long beginLedger, long beginEntry, java.util.Map<java.lang.String,​java.lang.String> driverMetadata)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • create

        public static BlobStoreManagedLedgerOffloader create​(TieredStorageConfiguration config,
                                                             java.util.Map<java.lang.String,​java.lang.String> userMetadata,
                                                             org.apache.bookkeeper.common.util.OrderedScheduler scheduler)
                                                      throws java.io.IOException
        Throws:
        java.io.IOException
      • getOffloadDriverName

        public java.lang.String getOffloadDriverName()
        Specified by:
        getOffloadDriverName in interface org.apache.bookkeeper.mledger.LedgerOffloader
      • getOffloadDriverMetadata

        public java.util.Map<java.lang.String,​java.lang.String> getOffloadDriverMetadata()
        Specified by:
        getOffloadDriverMetadata in interface org.apache.bookkeeper.mledger.LedgerOffloader
      • offload

        public java.util.concurrent.CompletableFuture<java.lang.Void> offload​(org.apache.bookkeeper.client.api.ReadHandle readHandle,
                                                                              java.util.UUID uuid,
                                                                              java.util.Map<java.lang.String,​java.lang.String> extraMetadata)
        Upload the DataBlocks associated with the given ReadHandle using MultiPartUpload, Creating indexBlocks for each corresponding DataBlock that is uploaded.
        Specified by:
        offload in interface org.apache.bookkeeper.mledger.LedgerOffloader
      • streamingOffload

        public java.util.concurrent.CompletableFuture<org.apache.bookkeeper.mledger.LedgerOffloader.OffloadHandle> streamingOffload​(@NonNull
                                                                                                                                    @NonNull org.apache.bookkeeper.mledger.ManagedLedger ml,
                                                                                                                                    java.util.UUID uuid,
                                                                                                                                    long beginLedger,
                                                                                                                                    long beginEntry,
                                                                                                                                    java.util.Map<java.lang.String,​java.lang.String> driverMetadata)
        Specified by:
        streamingOffload in interface org.apache.bookkeeper.mledger.LedgerOffloader
      • 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)
        Specified by:
        readOffloaded in interface org.apache.bookkeeper.mledger.LedgerOffloader
      • readOffloaded

        public java.util.concurrent.CompletableFuture<org.apache.bookkeeper.client.api.ReadHandle> readOffloaded​(long ledgerId,
                                                                                                                 org.apache.bookkeeper.mledger.proto.MLDataFormats.OffloadContext ledgerContext,
                                                                                                                 java.util.Map<java.lang.String,​java.lang.String> offloadDriverMetadata)
        Specified by:
        readOffloaded in interface org.apache.bookkeeper.mledger.LedgerOffloader
      • 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)
        Specified by:
        deleteOffloaded in interface org.apache.bookkeeper.mledger.LedgerOffloader
      • deleteOffloaded

        public java.util.concurrent.CompletableFuture<java.lang.Void> deleteOffloaded​(java.util.UUID uid,
                                                                                      java.util.Map<java.lang.String,​java.lang.String> offloadDriverMetadata)
        Specified by:
        deleteOffloaded in interface org.apache.bookkeeper.mledger.LedgerOffloader
      • getOffloadPolicies

        public org.apache.pulsar.common.policies.data.OffloadPoliciesImpl getOffloadPolicies()
        Specified by:
        getOffloadPolicies in interface org.apache.bookkeeper.mledger.LedgerOffloader
      • close

        public void close()
        Specified by:
        close in interface org.apache.bookkeeper.mledger.LedgerOffloader