Class TieredStorageConfiguration


  • public class TieredStorageConfiguration
    extends java.lang.Object
    Class responsible for holding all of the tiered storage configuration data that is set in the global Pulsar broker.conf file.

    This class is used by the BlobStoreManagedLedgerOffloader to determine which JCloud provider to use for Tiered Storage offloand, along with the associated properties such as region, bucket, user credentials, etc.

    • Field Detail

      • BLOB_STORE_PROVIDER_KEY

        public static final java.lang.String BLOB_STORE_PROVIDER_KEY
        See Also:
        Constant Field Values
      • METADATA_FIELD_BUCKET

        public static final java.lang.String METADATA_FIELD_BUCKET
        See Also:
        Constant Field Values
      • METADATA_FIELD_REGION

        public static final java.lang.String METADATA_FIELD_REGION
        See Also:
        Constant Field Values
      • METADATA_FIELD_ENDPOINT

        public static final java.lang.String METADATA_FIELD_ENDPOINT
        See Also:
        Constant Field Values
      • METADATA_FIELD_MAX_BLOCK_SIZE

        public static final java.lang.String METADATA_FIELD_MAX_BLOCK_SIZE
        See Also:
        Constant Field Values
      • METADATA_FIELD_MIN_BLOCK_SIZE

        public static final java.lang.String METADATA_FIELD_MIN_BLOCK_SIZE
        See Also:
        Constant Field Values
      • METADATA_FIELD_READ_BUFFER_SIZE

        public static final java.lang.String METADATA_FIELD_READ_BUFFER_SIZE
        See Also:
        Constant Field Values
      • METADATA_FIELD_WRITE_BUFFER_SIZE

        public static final java.lang.String METADATA_FIELD_WRITE_BUFFER_SIZE
        See Also:
        Constant Field Values
      • OFFLOADER_PROPERTY_PREFIX

        public static final java.lang.String OFFLOADER_PROPERTY_PREFIX
        See Also:
        Constant Field Values
      • MAX_OFFLOAD_SEGMENT_ROLLOVER_TIME_SEC

        public static final java.lang.String MAX_OFFLOAD_SEGMENT_ROLLOVER_TIME_SEC
        See Also:
        Constant Field Values
      • MIN_OFFLOAD_SEGMENT_ROLLOVER_TIME_SEC

        public static final java.lang.String MIN_OFFLOAD_SEGMENT_ROLLOVER_TIME_SEC
        See Also:
        Constant Field Values
      • DEFAULT_MAX_SEGMENT_TIME_IN_SECOND

        public static final long DEFAULT_MAX_SEGMENT_TIME_IN_SECOND
        See Also:
        Constant Field Values
      • DEFAULT_MIN_SEGMENT_TIME_IN_SECOND

        public static final long DEFAULT_MIN_SEGMENT_TIME_IN_SECOND
        See Also:
        Constant Field Values
      • MAX_OFFLOAD_SEGMENT_SIZE_IN_BYTES

        public static final java.lang.String MAX_OFFLOAD_SEGMENT_SIZE_IN_BYTES
        See Also:
        Constant Field Values
      • DEFAULT_MAX_SEGMENT_SIZE_IN_BYTES

        public static final long DEFAULT_MAX_SEGMENT_SIZE_IN_BYTES
        See Also:
        Constant Field Values
      • GCS_ACCOUNT_KEY_FILE_FIELD

        public static final java.lang.String GCS_ACCOUNT_KEY_FILE_FIELD
        See Also:
        Constant Field Values
      • S3_ROLE_SESSION_NAME_FIELD

        public static final java.lang.String S3_ROLE_SESSION_NAME_FIELD
        See Also:
        Constant Field Values
    • Constructor Detail

      • TieredStorageConfiguration

        public TieredStorageConfiguration​(java.util.Map<java.lang.String,​java.lang.String> configProperties)
    • Method Detail

      • create

        public static TieredStorageConfiguration create​(java.util.Properties props)
                                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • getKeys

        public java.util.List<java.lang.String> getKeys​(java.lang.String property)
      • getBlobStoreProviderKey

        public java.lang.String getBlobStoreProviderKey()
      • getDriver

        public java.lang.String getDriver()
      • getRegion

        public java.lang.String getRegion()
      • setRegion

        public void setRegion​(java.lang.String s)
      • getBucket

        public java.lang.String getBucket()
      • getServiceEndpoint

        public java.lang.String getServiceEndpoint()
      • getMaxSegmentTimeInSecond

        public long getMaxSegmentTimeInSecond()
      • getMinSegmentTimeInSecond

        public long getMinSegmentTimeInSecond()
      • getMaxSegmentSizeInBytes

        public long getMaxSegmentSizeInBytes()
      • setServiceEndpoint

        public void setServiceEndpoint​(java.lang.String s)
      • getConfigProperty

        public java.lang.String getConfigProperty​(java.lang.String propertyName)
        Used to find a specific configuration property other than one of the predefined ones. This allows for any number of provider specific, or new properties to added in the future.
        Parameters:
        propertyName -
        Returns:
      • getMaxBlockSizeInBytes

        public java.lang.Integer getMaxBlockSizeInBytes()
      • getMinBlockSizeInBytes

        public java.lang.Integer getMinBlockSizeInBytes()
      • getReadBufferSizeInBytes

        public java.lang.Integer getReadBufferSizeInBytes()
      • getWriteBufferSizeInBytes

        public java.lang.Integer getWriteBufferSizeInBytes()
      • getProviderCredentials

        public java.util.function.Supplier<org.jclouds.domain.Credentials> getProviderCredentials()
      • setProviderCredentials

        public void setProviderCredentials​(java.util.function.Supplier<org.jclouds.domain.Credentials> credentials)
      • validate

        public void validate()
      • getProviderMetadata

        public org.jclouds.providers.ProviderMetadata getProviderMetadata()
      • getBlobStore

        public org.jclouds.blobstore.BlobStore getBlobStore()
      • getOffloadDriverMetadata

        public java.util.Map<java.lang.String,​java.lang.String> getOffloadDriverMetadata()
      • getOverrides

        protected java.util.Properties getOverrides()