Class CloudConfig


  • public class CloudConfig
    extends java.lang.Object
    The configs for cloud related configurations.
    • Field Detail

      • VIRTUAL_REPLICATOR_CLUSTER_FACTORY_CLASS

        public static final java.lang.String VIRTUAL_REPLICATOR_CLUSTER_FACTORY_CLASS
        See Also:
        Constant Field Values
      • CLOUD_DESTINATION_FACTORY_CLASS

        public static final java.lang.String CLOUD_DESTINATION_FACTORY_CLASS
        See Also:
        Constant Field Values
      • VCR_CLUSTER_ZK_CONNECT_STRING

        public static final java.lang.String VCR_CLUSTER_ZK_CONNECT_STRING
        See Also:
        Constant Field Values
      • VCR_CLUSTER_NAME

        public static final java.lang.String VCR_CLUSTER_NAME
        See Also:
        Constant Field Values
      • VCR_REQUIRE_ENCRYPTION

        public static final java.lang.String VCR_REQUIRE_ENCRYPTION
        See Also:
        Constant Field Values
      • VCR_CRYPTO_SERVICE_FACTORY

        public static final java.lang.String VCR_CRYPTO_SERVICE_FACTORY
        See Also:
        Constant Field Values
      • VCR_MIN_TTL_DAYS

        public static final java.lang.String VCR_MIN_TTL_DAYS
        See Also:
        Constant Field Values
      • CLOUD_DELETED_BLOB_RETENTION_DAYS

        public static final java.lang.String CLOUD_DELETED_BLOB_RETENTION_DAYS
        See Also:
        Constant Field Values
      • CLOUD_BLOB_COMPACTION_ENABLED

        public static final java.lang.String CLOUD_BLOB_COMPACTION_ENABLED
        See Also:
        Constant Field Values
      • CLOUD_CONTAINER_COMPACTION_ENABLED

        public static final java.lang.String CLOUD_CONTAINER_COMPACTION_ENABLED
        See Also:
        Constant Field Values
      • CLOUD_BLOB_COMPACTION_INTERVAL_HOURS

        public static final java.lang.String CLOUD_BLOB_COMPACTION_INTERVAL_HOURS
        See Also:
        Constant Field Values
      • CLOUD_CONTAINER_COMPACTION_INTERVAL_HOURS

        public static final java.lang.String CLOUD_CONTAINER_COMPACTION_INTERVAL_HOURS
        See Also:
        Constant Field Values
      • CLOUD_BLOB_COMPACTION_STARTUP_DELAY_SECS

        public static final java.lang.String CLOUD_BLOB_COMPACTION_STARTUP_DELAY_SECS
        See Also:
        Constant Field Values
      • CLOUD_CONTAINER_COMPACTION_STARTUP_DELAY_SECS

        public static final java.lang.String CLOUD_CONTAINER_COMPACTION_STARTUP_DELAY_SECS
        See Also:
        Constant Field Values
      • CLOUD_BLOB_COMPACTION_QUERY_LIMIT

        public static final java.lang.String CLOUD_BLOB_COMPACTION_QUERY_LIMIT
        See Also:
        Constant Field Values
      • CLOUD_COMPACTION_LOOKBACK_DAYS

        public static final java.lang.String CLOUD_COMPACTION_LOOKBACK_DAYS
        See Also:
        Constant Field Values
      • CLOUD_COMPACTION_QUERY_BUCKET_DAYS

        public static final java.lang.String CLOUD_COMPACTION_QUERY_BUCKET_DAYS
        See Also:
        Constant Field Values
      • CLOUD_BLOB_COMPACTION_SHUTDOWN_TIMEOUT_SECS

        public static final java.lang.String CLOUD_BLOB_COMPACTION_SHUTDOWN_TIMEOUT_SECS
        See Also:
        Constant Field Values
      • CLOUD_COMPACTION_PURGE_LIMIT

        public static final java.lang.String CLOUD_COMPACTION_PURGE_LIMIT
        See Also:
        Constant Field Values
      • CLOUD_RECENT_BLOB_CACHE_LIMIT

        public static final java.lang.String CLOUD_RECENT_BLOB_CACHE_LIMIT
        See Also:
        Constant Field Values
      • CLOUD_MAX_ATTEMPTS

        public static final java.lang.String CLOUD_MAX_ATTEMPTS
        See Also:
        Constant Field Values
      • CLOUD_DEFAULT_RETRY_DELAY

        public static final java.lang.String CLOUD_DEFAULT_RETRY_DELAY
        See Also:
        Constant Field Values
      • CLOUD_REQUEST_TIMEOUT

        public static final java.lang.String CLOUD_REQUEST_TIMEOUT
        See Also:
        Constant Field Values
      • CLOUD_UPLOAD_REQUEST_TIMEOUT

        public static final java.lang.String CLOUD_UPLOAD_REQUEST_TIMEOUT
        See Also:
        Constant Field Values
      • CLOUD_QUERY_REQUEST_TIMEOUT

        public static final java.lang.String CLOUD_QUERY_REQUEST_TIMEOUT
        See Also:
        Constant Field Values
      • CLOUD_BATCH_REQUEST_TIMEOUT

        public static final java.lang.String CLOUD_BATCH_REQUEST_TIMEOUT
        See Also:
        Constant Field Values
      • VCR_ASSIGNED_PARTITIONS

        public static final java.lang.String VCR_ASSIGNED_PARTITIONS
        See Also:
        Constant Field Values
      • VCR_CLUSTER_SPECTATOR_FACTORY_CLASS

        public static final java.lang.String VCR_CLUSTER_SPECTATOR_FACTORY_CLASS
        See Also:
        Constant Field Values
      • VCR_SOURCE_DATACENTERS

        public static final java.lang.String VCR_SOURCE_DATACENTERS
        See Also:
        Constant Field Values
      • CLOUD_COMPACTION_NUM_THREADS

        public static final java.lang.String CLOUD_COMPACTION_NUM_THREADS
        See Also:
        Constant Field Values
      • VCR_HELIX_STATE_MODEL_FACTORY_CLASS

        public static final java.lang.String VCR_HELIX_STATE_MODEL_FACTORY_CLASS
        See Also:
        Constant Field Values
      • DEFAULT_VIRTUAL_REPLICATOR_CLUSTER_FACTORY_CLASS

        public static final java.lang.String DEFAULT_VIRTUAL_REPLICATOR_CLUSTER_FACTORY_CLASS
        See Also:
        Constant Field Values
      • DEFAULT_CLOUD_DESTINATION_FACTORY_CLASS

        public static final java.lang.String DEFAULT_CLOUD_DESTINATION_FACTORY_CLASS
        See Also:
        Constant Field Values
      • KMS_SERVICE_KEY_CONTEXT

        public static final java.lang.String KMS_SERVICE_KEY_CONTEXT
        See Also:
        Constant Field Values
      • DEFAULT_KMS_SERVICE_KEY_CONTEXT

        public static final java.lang.String DEFAULT_KMS_SERVICE_KEY_CONTEXT
        See Also:
        Constant Field Values
      • CLOUD_BLOB_CRYPTO_AGENT_FACTORY_CLASS

        public static final java.lang.String CLOUD_BLOB_CRYPTO_AGENT_FACTORY_CLASS
        See Also:
        Constant Field Values
      • DEFAULT_CLOUD_BLOB_CRYPTO_AGENT_FACTORY_CLASS

        public static final java.lang.String DEFAULT_CLOUD_BLOB_CRYPTO_AGENT_FACTORY_CLASS
        See Also:
        Constant Field Values
      • DEFAULT_VCR_CLUSTER_ZK_CONNECT_STRING

        public static final java.lang.String DEFAULT_VCR_CLUSTER_ZK_CONNECT_STRING
        See Also:
        Constant Field Values
      • DEFAULT_VCR_CLUSTER_NAME

        public static final java.lang.String DEFAULT_VCR_CLUSTER_NAME
        See Also:
        Constant Field Values
      • DEFAULT_COMPACTION_QUERY_LIMIT

        public static final int DEFAULT_COMPACTION_QUERY_LIMIT
        See Also:
        Constant Field Values
      • DEFAULT_COMPACTION_QUERY_BUCKET_DAYS

        public static final int DEFAULT_COMPACTION_QUERY_BUCKET_DAYS
        See Also:
        Constant Field Values
      • DEFAULT_COMPACTION_PURGE_LIMIT

        public static final int DEFAULT_COMPACTION_PURGE_LIMIT
        See Also:
        Constant Field Values
      • DEFAULT_COMPACTION_LOOKBACK_DAYS

        public static final int DEFAULT_COMPACTION_LOOKBACK_DAYS
        See Also:
        Constant Field Values
      • DEFAULT_COMPACTION_TIMEOUT

        public static final int DEFAULT_COMPACTION_TIMEOUT
        See Also:
        Constant Field Values
      • DEFAULT_RECENT_BLOB_CACHE_LIMIT

        public static final int DEFAULT_RECENT_BLOB_CACHE_LIMIT
        See Also:
        Constant Field Values
      • DEFAULT_RETRY_DELAY_VALUE

        public static final int DEFAULT_RETRY_DELAY_VALUE
        See Also:
        Constant Field Values
      • DEFAULT_CLOUD_REQUEST_TIMEOUT

        public static final int DEFAULT_CLOUD_REQUEST_TIMEOUT
        See Also:
        Constant Field Values
      • DEFAULT_CLOUD_COMPACTION_NUM_THREADS

        public static final int DEFAULT_CLOUD_COMPACTION_NUM_THREADS
        See Also:
        Constant Field Values
      • DEFAULT_VCR_CLUSTER_SPECTATOR_FACTORY_CLASS

        public static final java.lang.String DEFAULT_VCR_CLUSTER_SPECTATOR_FACTORY_CLASS
        See Also:
        Constant Field Values
      • DEFAULT_VCR_HELIX_STATE_MODEL_FACTORY_CLASS

        public static final java.lang.String DEFAULT_VCR_HELIX_STATE_MODEL_FACTORY_CLASS
        See Also:
        Constant Field Values
      • cloudIsVcr

        @Config("cloud.is.vcr")
        @Default("false")
        public final boolean cloudIsVcr
        True for VCR node, false for live serving node.
      • virtualReplicatorClusterFactoryClass

        @Config("virtual.replicator.cluster.factory.class")
        @Default("com.github.ambry.cloud.StaticVcrClusterFactory")
        public final java.lang.String virtualReplicatorClusterFactoryClass
        The virtual replicator cluster factory class name.
      • cloudDestinationFactoryClass

        @Config("cloud.destination.factory.class")
        @Default("com.github.ambry.cloud.azure.AzureCloudDestinationFactory")
        public final java.lang.String cloudDestinationFactoryClass
        The cloud destination factory class name.
      • vcrClusterZkConnectString

        @Config("vcr.cluster.zk.connect.string")
        @Default("localhost:2181")
        public final java.lang.String vcrClusterZkConnectString
        The ZK connect string of the vcr cluster.
      • vcrClusterName

        @Config("vcr.cluster.name")
        @Default("VCRCluster")
        public final java.lang.String vcrClusterName
        The name of the associated vcr cluster for this node.
      • vcrSslPort

        @Config("vcr.ssl.port")
        @Default("null")
        public final java.lang.Integer vcrSslPort
        The ssl port number associated with this node.
      • vcrHttp2Port

        @Config("vcr.http2.port")
        @Default("null")
        public final java.lang.Integer vcrHttp2Port
        The HTTP2 port number associated with this node.
      • vcrRequireEncryption

        @Config("vcr.require.encryption")
        @Default("false")
        public final boolean vcrRequireEncryption
        Require blobs to be encrypted prior to cloud upload?
      • kmsServiceKeyContext

        @Config("kms.service.key.context")
        @Default("default-backup")
        public final java.lang.String kmsServiceKeyContext
        The kms service factory class name.
      • cloudBlobCryptoAgentFactoryClass

        @Config("cloud.blob.crypto.agent.factory.class")
        @Default("com.github.ambry.cloud.CloudBlobCryptoAgentFactoryImpl")
        public final java.lang.String cloudBlobCryptoAgentFactoryClass
        The cloud blob crypto agent factory class name.
      • vcrKeyManagementServiceFactory

        @Config("vcr.key.management.service.factory")
        @Default("com.github.ambry.router.SingleKeyManagementServiceFactory")
        public final java.lang.String vcrKeyManagementServiceFactory
        The KeyManagementServiceFactory that will be used to fetch KeyManagementService
      • vcrCryptoServiceFactory

        @Config("vcr.crypto.service.factory")
        @Default("com.github.ambry.router.GCMCryptoServiceFactory")
        public final java.lang.String vcrCryptoServiceFactory
        The CryptoServiceFactory that will be used to fetch CryptoService
      • vcrMinTtlDays

        @Config("vcr.min.ttl.days")
        @Default("14")
        public final int vcrMinTtlDays
        Minimum TTL in days required for blobs to be uploaded to cloud.
      • cloudDeletedBlobRetentionDays

        @Config("cloud.deleted.blob.retention.days")
        @Default("7")
        public final int cloudDeletedBlobRetentionDays
        How long (in days) a blob must be in deleted state before it is compacted.
      • cloudBlobCompactionEnabled

        @Config("cloud.blob.compaction.enabled")
        @Default("true")
        public final boolean cloudBlobCompactionEnabled
        Whether dead blob compaction is enabled.
      • cloudContainerCompactionEnabled

        @Config("cloud.container.compaction.enabled")
        @Default("false")
        public final boolean cloudContainerCompactionEnabled
        Whether deprecated container compaction is enabled.
      • cloudBlobCompactionQueryLimit

        @Config("cloud.blob.compaction.query.limit")
        @Default("100")
        public final int cloudBlobCompactionQueryLimit
        The result set limit to set on the dead blobs query used in compaction.
      • cloudBlobCompactionIntervalHours

        @Config("cloud.blob.compaction.interval.hours")
        @Default("24")
        public final int cloudBlobCompactionIntervalHours
        The dead blob compaction interval in hours
      • cloudContainerCompactionIntervalHours

        @Config("cloud.container.compaction.interval.hours")
        @Default("24")
        public final int cloudContainerCompactionIntervalHours
        The deprecated container blob compaction interval in hours
      • cloudBlobCompactionStartupDelaySecs

        @Config("cloud.blob.compaction.startup.delay.secs")
        @Default("600")
        public final int cloudBlobCompactionStartupDelaySecs
        Delay in seconds before compaction begins on VCR startup.
      • cloudContainerCompactionStartupDelaySecs

        @Config("cloud.container.compaction.startup.delay.secs")
        @Default("600")
        public final int cloudContainerCompactionStartupDelaySecs
        Delay in seconds before container compaction begins on VCR startup.
      • cloudBlobCompactionShutdownTimeoutSecs

        @Config("cloud.blob.compaction.shutdown.timeout.secs")
        @Default("10")
        public final int cloudBlobCompactionShutdownTimeoutSecs
        Maximum time to wait for in-flight compaction operation to complete on shutdown.
      • cloudCompactionLookbackDays

        @Config("cloud.compaction.lookback.days")
        @Default("364")
        public final int cloudCompactionLookbackDays
      • cloudCompactionQueryBucketDays

        @Config("cloud.compaction.query.bucket.days")
        @Default("7")
        public final int cloudCompactionQueryBucketDays
        The time range used for bucketing compaction queries.
      • cloudCompactionPurgeLimit

        @Config("cloud.compaction.purge.limit")
        @Default("10000")
        public final int cloudCompactionPurgeLimit
        Max number of blobs to be purged for a single partition in each round of compaction.
      • recentBlobCacheLimit

        @Config("cloud.recent.blob.cache.limit")
        @Default("10000")
        public final int recentBlobCacheLimit
        The max size of recently-accessed blob cache in each cloud blob store.
      • vcrAssignedPartitions

        @Config("vcr.assigned.partitions")
        @Default("null")
        public final java.lang.String vcrAssignedPartitions
        The comma-separated list of statically assigned partitions. Used by static VCR cluster only.
      • vcrProxyHost

        @Config("vcr.proxy.host")
        @Default("null")
        public final java.lang.String vcrProxyHost
        The proxy host, if any, providing network path to cloud services.
      • vcrProxyPort

        @Config("vcr.proxy.port")
        @Default("3128")
        public final int vcrProxyPort
        The proxy port (used only vcrProxyHost is non-null.
      • cloudMaxAttempts

        @Config("cloud.max.attempts")
        public final int cloudMaxAttempts
        The maximum number of attempts for each cloud operation in live serving mode;
      • cloudDefaultRetryDelay

        @Config("cloud.default.retry.delay")
        public final int cloudDefaultRetryDelay
        The default delay in ms between retries of cloud operations.
      • cloudRequestTimeout

        @Config("cloud.request.timeout")
        public final int cloudRequestTimeout
        The request timeout in msec for single-blob cloud operations.
      • cloudUploadRequestTimeout

        @Config("cloud.upload.request.timeout")
        public final int cloudUploadRequestTimeout
        The request timeout in msec for single-blob cloud uploads.
      • cloudQueryRequestTimeout

        @Config("cloud.query.request.timeout")
        public final int cloudQueryRequestTimeout
        The request timeout in msec for metadata queries.
      • cloudBatchRequestTimeout

        @Config("cloud.batch.request.timeout")
        public final int cloudBatchRequestTimeout
        The request timeout in msec for cloud batch operations.
      • vcrClusterSpectatorFactoryClass

        @Config("vcr.cluster.spectator.factory.class")
        @Default("com.github.ambry.clustermap.HelixClusterSpectatorFactory")
        public final java.lang.String vcrClusterSpectatorFactoryClass
        The class used to instantiate com.github.ambry.clustermap.ClusterSpectatorFactory
      • vcrSourceDatacenters

        @Config("vcr.source.datacenters")
        @Default("")
        public final java.util.Set<java.lang.String> vcrSourceDatacenters
        Comma separated set of datacenters which can act as peer for cross colo replication.
      • cloudCompactionNumThreads

        @Config("cloud.compaction.num.threads")
        public final int cloudCompactionNumThreads
      • vcrHelixStateModelFactoryClass

        @Config("vcr.helix.state.model.factory.class")
        @Default("com.github.ambry.cloud.OnlineOfflineHelixVcrStateModelFactory")
        public final java.lang.String vcrHelixStateModelFactoryClass
        State model name for the vcr helix cluster.