Class RouterConfig


  • public class RouterConfig
    extends java.lang.Object
    Configuration parameters required by a Router.

    Receives the in-memory representation of a properties file and extracts parameters that are specifically required for a Router and presents them for retrieval through defined APIs.

    • Field Detail

      • DEFAULT_KMS_FACTORY

        public static final java.lang.String DEFAULT_KMS_FACTORY
        See Also:
        Constant Field Values
      • DEFAULT_CRYPTO_SERVICE_FACTORY

        public static final java.lang.String DEFAULT_CRYPTO_SERVICE_FACTORY
        See Also:
        Constant Field Values
      • DEFAULT_LATENCY_TOLERANCE_QUANTILE

        public static final double DEFAULT_LATENCY_TOLERANCE_QUANTILE
        See Also:
        Constant Field Values
      • DEFAULT_OPERATION_TRACKER_HISTOGRAM_CACHE_TIMEOUT_MS

        public static final long DEFAULT_OPERATION_TRACKER_HISTOGRAM_CACHE_TIMEOUT_MS
        See Also:
        Constant Field Values
      • ROUTER_SCALING_UNIT_COUNT

        public static final java.lang.String ROUTER_SCALING_UNIT_COUNT
        See Also:
        Constant Field Values
      • ROUTER_DATACENTER_NAME

        public static final java.lang.String ROUTER_DATACENTER_NAME
        See Also:
        Constant Field Values
      • ROUTER_SCALING_UNIT_MAX_CONNECTIONS_PER_PORT_PLAIN_TEXT

        public static final java.lang.String ROUTER_SCALING_UNIT_MAX_CONNECTIONS_PER_PORT_PLAIN_TEXT
        See Also:
        Constant Field Values
      • ROUTER_SCALING_UNIT_MAX_CONNECTIONS_PER_PORT_SSL

        public static final java.lang.String ROUTER_SCALING_UNIT_MAX_CONNECTIONS_PER_PORT_SSL
        See Also:
        Constant Field Values
      • ROUTER_CONNECTIONS_LOCAL_DC_WARM_UP_PERCENTAGE

        public static final java.lang.String ROUTER_CONNECTIONS_LOCAL_DC_WARM_UP_PERCENTAGE
        See Also:
        Constant Field Values
      • ROUTER_CONNECTIONS_REMOTE_DC_WARM_UP_PERCENTAGE

        public static final java.lang.String ROUTER_CONNECTIONS_REMOTE_DC_WARM_UP_PERCENTAGE
        See Also:
        Constant Field Values
      • ROUTER_CONNECTIONS_WARM_UP_TIMEOUT_MS

        public static final java.lang.String ROUTER_CONNECTIONS_WARM_UP_TIMEOUT_MS
        See Also:
        Constant Field Values
      • ROUTER_CONNECTION_CHECKOUT_TIMEOUT_MS

        public static final java.lang.String ROUTER_CONNECTION_CHECKOUT_TIMEOUT_MS
        See Also:
        Constant Field Values
      • ROUTER_REQUEST_TIMEOUT_MS

        public static final java.lang.String ROUTER_REQUEST_TIMEOUT_MS
        See Also:
        Constant Field Values
      • ROUTER_DROP_REQUEST_ON_TIMEOUT

        public static final java.lang.String ROUTER_DROP_REQUEST_ON_TIMEOUT
        See Also:
        Constant Field Values
      • ROUTER_MAX_PUT_CHUNK_SIZE_BYTES

        public static final java.lang.String ROUTER_MAX_PUT_CHUNK_SIZE_BYTES
        See Also:
        Constant Field Values
      • ROUTER_PUT_REQUEST_PARALLELISM

        public static final java.lang.String ROUTER_PUT_REQUEST_PARALLELISM
        See Also:
        Constant Field Values
      • ROUTER_PUT_SUCCESS_TARGET

        public static final java.lang.String ROUTER_PUT_SUCCESS_TARGET
        See Also:
        Constant Field Values
      • ROUTER_MAX_SLIPPED_PUT_ATTEMPTS

        public static final java.lang.String ROUTER_MAX_SLIPPED_PUT_ATTEMPTS
        See Also:
        Constant Field Values
      • ROUTER_DELETE_REQUEST_PARALLELISM

        public static final java.lang.String ROUTER_DELETE_REQUEST_PARALLELISM
        See Also:
        Constant Field Values
      • ROUTER_DELETE_SUCCESS_TARGET

        public static final java.lang.String ROUTER_DELETE_SUCCESS_TARGET
        See Also:
        Constant Field Values
      • ROUTER_GET_REQUEST_PARALLELISM

        public static final java.lang.String ROUTER_GET_REQUEST_PARALLELISM
        See Also:
        Constant Field Values
      • ROUTER_GET_SUCCESS_TARGET

        public static final java.lang.String ROUTER_GET_SUCCESS_TARGET
        See Also:
        Constant Field Values
      • ROUTER_GET_CROSS_DC_ENABLED

        public static final java.lang.String ROUTER_GET_CROSS_DC_ENABLED
        See Also:
        Constant Field Values
      • ROUTER_OPERATION_TRACKER_INCLUDE_DOWN_REPLICAS

        public static final java.lang.String ROUTER_OPERATION_TRACKER_INCLUDE_DOWN_REPLICAS
        See Also:
        Constant Field Values
      • ROUTER_GET_OPERATION_TRACKER_TYPE

        public static final java.lang.String ROUTER_GET_OPERATION_TRACKER_TYPE
        See Also:
        Constant Field Values
      • ROUTER_LATENCY_TOLERANCE_QUANTILE

        public static final java.lang.String ROUTER_LATENCY_TOLERANCE_QUANTILE
        See Also:
        Constant Field Values
      • ROUTER_BLOBID_CURRENT_VERSION

        public static final java.lang.String ROUTER_BLOBID_CURRENT_VERSION
        See Also:
        Constant Field Values
      • ROUTER_METADATA_CONTENT_VERSION

        public static final java.lang.String ROUTER_METADATA_CONTENT_VERSION
        See Also:
        Constant Field Values
      • ROUTER_KEY_MANAGEMENT_SERVICE_FACTORY

        public static final java.lang.String ROUTER_KEY_MANAGEMENT_SERVICE_FACTORY
        See Also:
        Constant Field Values
      • ROUTER_CRYPTO_SERVICE_FACTORY

        public static final java.lang.String ROUTER_CRYPTO_SERVICE_FACTORY
        See Also:
        Constant Field Values
      • ROUTER_CRYPTO_JOBS_WORKER_COUNT

        public static final java.lang.String ROUTER_CRYPTO_JOBS_WORKER_COUNT
        See Also:
        Constant Field Values
      • ROUTER_TTL_UPDATE_REQUEST_PARALLELISM

        public static final java.lang.String ROUTER_TTL_UPDATE_REQUEST_PARALLELISM
        See Also:
        Constant Field Values
      • ROUTER_TTL_UPDATE_SUCCESS_TARGET

        public static final java.lang.String ROUTER_TTL_UPDATE_SUCCESS_TARGET
        See Also:
        Constant Field Values
      • ROUTER_UNDELETE_REQUEST_PARALLELISM

        public static final java.lang.String ROUTER_UNDELETE_REQUEST_PARALLELISM
        See Also:
        Constant Field Values
      • ROUTER_USE_GET_BLOB_OPERATION_FOR_BLOB_INFO

        public static final java.lang.String ROUTER_USE_GET_BLOB_OPERATION_FOR_BLOB_INFO
        See Also:
        Constant Field Values
      • ROUTER_OPERATION_TRACKER_CUSTOM_PERCENTILES

        public static final java.lang.String ROUTER_OPERATION_TRACKER_CUSTOM_PERCENTILES
        See Also:
        Constant Field Values
      • ROUTER_OPERATION_TRACKER_METRIC_SCOPE

        public static final java.lang.String ROUTER_OPERATION_TRACKER_METRIC_SCOPE
        See Also:
        Constant Field Values
      • ROUTER_OPERATION_TRACKER_RESERVOIR_SIZE

        public static final java.lang.String ROUTER_OPERATION_TRACKER_RESERVOIR_SIZE
        See Also:
        Constant Field Values
      • ROUTER_OPERATION_TRACKER_RESERVOIR_DECAY_FACTOR

        public static final java.lang.String ROUTER_OPERATION_TRACKER_RESERVOIR_DECAY_FACTOR
        See Also:
        Constant Field Values
      • ROUTER_OPERATION_TRACKER_MIN_DATA_POINTS_REQUIRED

        public static final java.lang.String ROUTER_OPERATION_TRACKER_MIN_DATA_POINTS_REQUIRED
        See Also:
        Constant Field Values
      • ROUTER_OPERATION_TRACKER_TERMINATE_ON_NOT_FOUND_ENABLED

        public static final java.lang.String ROUTER_OPERATION_TRACKER_TERMINATE_ON_NOT_FOUND_ENABLED
        See Also:
        Constant Field Values
      • ROUTER_OPERATION_TRACKER_MAX_INFLIGHT_REQUESTS

        public static final java.lang.String ROUTER_OPERATION_TRACKER_MAX_INFLIGHT_REQUESTS
        See Also:
        Constant Field Values
      • ROUTER_OPERATION_TRACKER_EXCLUDE_TIMEOUT_ENABLED

        public static final java.lang.String ROUTER_OPERATION_TRACKER_EXCLUDE_TIMEOUT_ENABLED
        See Also:
        Constant Field Values
      • ROUTER_OPERATION_TRACKER_HISTOGRAM_DUMP_ENABLED

        public static final java.lang.String ROUTER_OPERATION_TRACKER_HISTOGRAM_DUMP_ENABLED
        See Also:
        Constant Field Values
      • ROUTER_OPERATION_TRACKER_HISTOGRAM_DUMP_PERIOD

        public static final java.lang.String ROUTER_OPERATION_TRACKER_HISTOGRAM_DUMP_PERIOD
        See Also:
        Constant Field Values
      • ROUTER_OPERATION_TRACKER_HISTOGRAM_CACHE_TIMEOUT_MS

        public static final java.lang.String ROUTER_OPERATION_TRACKER_HISTOGRAM_CACHE_TIMEOUT_MS
        See Also:
        Constant Field Values
      • ROUTER_MAX_IN_MEM_PUT_CHUNKS

        public static final java.lang.String ROUTER_MAX_IN_MEM_PUT_CHUNKS
        See Also:
        Constant Field Values
      • ROUTER_MAX_IN_MEM_GET_CHUNKS

        public static final java.lang.String ROUTER_MAX_IN_MEM_GET_CHUNKS
        See Also:
        Constant Field Values
      • ROUTER_GET_ELIGIBLE_REPLICAS_BY_STATE_ENABLED

        public static final java.lang.String ROUTER_GET_ELIGIBLE_REPLICAS_BY_STATE_ENABLED
        See Also:
        Constant Field Values
      • ROUTER_PUT_USE_DYNAMIC_SUCCESS_TARGET

        public static final java.lang.String ROUTER_PUT_USE_DYNAMIC_SUCCESS_TARGET
        See Also:
        Constant Field Values
      • ROUTER_CLOUD_SUCCESS_TARGET

        public static final java.lang.String ROUTER_CLOUD_SUCCESS_TARGET
        See Also:
        Constant Field Values
      • ROUTER_CLOUD_REQUEST_PARALLELISM

        public static final java.lang.String ROUTER_CLOUD_REQUEST_PARALLELISM
        See Also:
        Constant Field Values
      • ROUTER_ENABLE_HTTP2_NETWORK_CLIENT

        public static final java.lang.String ROUTER_ENABLE_HTTP2_NETWORK_CLIENT
        See Also:
        Constant Field Values
      • ROUTER_CROSS_COLO_REQUEST_TO_DC_WITH_MOST_REPLICAS

        public static final java.lang.String ROUTER_CROSS_COLO_REQUEST_TO_DC_WITH_MOST_REPLICAS
        See Also:
        Constant Field Values
      • ROUTER_BACKGROUND_DELETER_MAX_CONCURRENT_OPERATIONS

        public static final java.lang.String ROUTER_BACKGROUND_DELETER_MAX_CONCURRENT_OPERATIONS
        See Also:
        Constant Field Values
      • routerScalingUnitCount

        @Config("router.scaling.unit.count")
        @Default("1")
        public final int routerScalingUnitCount
        Number of independent scaling units for the router.
      • routerHostname

        @Config("router.hostname")
        public final java.lang.String routerHostname
        The hostname of the node upon which the router runs.
      • routerDatacenterName

        @Config("router.datacenter.name")
        public final java.lang.String routerDatacenterName
        The name of the datacenter in which the router is located.
      • routerScalingUnitMaxConnectionsPerPortPlainText

        @Config("router.scaling.unit.max.connections.per.port.plain.text")
        @Default("5")
        public final int routerScalingUnitMaxConnectionsPerPortPlainText
        The max connections allowed per (datanode, port) for plain text
      • routerScalingUnitMaxConnectionsPerPortSsl

        @Config("router.scaling.unit.max.connections.per.port.ssl")
        @Default("2")
        public final int routerScalingUnitMaxConnectionsPerPortSsl
        The max connections allowed per (datanode, port) for ssl
      • routerConnectionsWarmUpTimeoutMs

        @Config("router.connections.warm.up.timeout.ms")
        @Default("5000")
        public final int routerConnectionsWarmUpTimeoutMs
        The max time allowed to establish connections to local DC in the startup
      • routerConnectionCheckoutTimeoutMs

        @Config("router.connection.checkout.timeout.ms")
        @Default("1000")
        public final int routerConnectionCheckoutTimeoutMs
        Timeout for checking out an available connection to a (datanode, port).
      • routerRequestTimeoutMs

        @Config("router.request.timeout.ms")
        @Default("2000")
        public final int routerRequestTimeoutMs
        Timeout for requests issued by the router to the network layer.
      • routerDropRequestOnTimeout

        @Config("router.drop.request.on.timeout")
        @Default("false")
        public final boolean routerDropRequestOnTimeout
        true if the router should tell the network layer about requests that have timed out. The network client can choose how to drop these requests.
      • routerMaxPutChunkSizeBytes

        @Config("router.max.put.chunk.size.bytes")
        @Default("4*1024*1024")
        public final int routerMaxPutChunkSizeBytes
        The max chunk size to be used for put operations.
      • routerPutRequestParallelism

        @Config("router.put.request.parallelism")
        @Default("3")
        public final int routerPutRequestParallelism
        The maximum number of parallel requests issued at a time by the put manager for a chunk.
      • routerPutSuccessTarget

        @Config("router.put.success.target")
        @Default("2")
        public final int routerPutSuccessTarget
        The minimum number of successful responses required for a put operation.
      • routerMaxSlippedPutAttempts

        @Config("router.max.slipped.put.attempts")
        @Default("1")
        public final int routerMaxSlippedPutAttempts
        The maximum number of times to retry putting any chunk of a put operation
      • routerDeleteRequestParallelism

        @Config("router.delete.request.parallelism")
        @Default("3")
        public final int routerDeleteRequestParallelism
        The maximum number of parallel requests allowed for a delete operation.
      • routerDeleteSuccessTarget

        @Config("router.delete.success.target")
        @Default("2")
        public final int routerDeleteSuccessTarget
        The minimum number of successful responses required for a delete operation.
      • routerGetRequestParallelism

        @Config("router.get.request.parallelism")
        @Default("2")
        public final int routerGetRequestParallelism
        The maximum number of parallel requests issued at a time by the get manager for a get operation on a chunk.
      • routerGetSuccessTarget

        @Config("router.get.success.target")
        @Default("1")
        public final int routerGetSuccessTarget
        The minimum number of successful responses required for a get operation on a chunk.
      • routerGetCrossDcEnabled

        @Config("router.get.cross.dc.enabled")
        @Default("true")
        public final boolean routerGetCrossDcEnabled
        Indicates whether get operations are allowed to make requests to nodes in remote data centers.
      • routerOperationTrackerIncludeDownReplicas

        @Config("router.operation.tracker.include.down.replicas")
        @Default("true")
        public final boolean routerOperationTrackerIncludeDownReplicas
        Whether to include down(offline) replicas in replicas pool within operation tracker.
      • routerGetOperationTrackerType

        @Config("router.get.operation.tracker.type")
        @Default("SimpleOperationTracker")
        public final java.lang.String routerGetOperationTrackerType
        The OperationTracker to use for GET operations.
      • routerLatencyToleranceQuantile

        @Config("router.latency.tolerance.quantile")
        @Default("0.9")
        public final double routerLatencyToleranceQuantile
        If an adaptive operation tracker is being used, a request is discounted from the parallelism count if it has been outstanding for more than the quantile defined here (compared to latencies of other requests of the same class).
      • routerBlobidCurrentVersion

        @Config("router.blobid.current.version")
        @Default("5")
        public final short routerBlobidCurrentVersion
        The version to use for new BlobIds.
      • routerMetadataContentVersion

        @Config("router.metadata.content.version")
        @Default("2")
        public final short routerMetadataContentVersion
        The version to use for new metadata blobs.
      • routerKeyManagementServiceFactory

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

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

        @Config("router.crypto.jobs.worker.count")
        @Default("1")
        public final int routerCryptoJobsWorkerCount
        Number of crypto jobs worker count
      • routerTtlUpdateRequestParallelism

        @Config("router.ttl.update.request.parallelism")
        @Default("3")
        public final int routerTtlUpdateRequestParallelism
        The maximum number of parallel requests issued at a time by the TTL update manager for a chunk.
      • routerTtlUpdateSuccessTarget

        @Config("router.ttl.update.success.target")
        @Default("2")
        public final int routerTtlUpdateSuccessTarget
        The minimum number of successful responses required for a TTL update operation.
      • routerUndeleteRequestParallelism

        @Config("router.undelete.request.parallelism")
        @Default("3")
        public final int routerUndeleteRequestParallelism
        The maximum number of parallel requests issued at a time by the undelete manager for a blob.
      • routerUseGetBlobOperationForBlobInfo

        @Config("router.use.get.blob.operation.for.blob.info")
        @Default("false")
        public final boolean routerUseGetBlobOperationForBlobInfo
        If this config is set to true the router will use GetBlobOperation instead of GetBlobInfoOperation for getBlobInfo calls. This allows the router to correct some blob size corruptions that may have arisen from using older versions of BlobIdTransformer with the downside of requiring more data to be fetched from storage. For most ambry deployments this is not necessary.
      • routerOperationTrackerCustomPercentiles

        @Config("router.operation.tracker.custom.percentiles")
        @Default("")
        public final java.util.List<java.lang.Double> routerOperationTrackerCustomPercentiles
        The custom percentiles of Histogram in operation tracker to be reported. This allows router to emit metrics of arbitrary percentiles (i.e. 97th, 93th etc). An example of this config is "0.91,0.93,0.97"(comma separated), each value should fall in [0..1].
      • routerOperationTrackerMetricScope

        @Config("router.operation.tracker.metric.scope")
        @Default("Datacenter")
        public final OperationTrackerScope routerOperationTrackerMetricScope
        The metric scope that is applied to operation tracker. This config specifies at which granularity router should track the latency distribution. For example, Datacenter or Partition. The valid scope is defined in OperationTrackerScope
      • routerOperationTrackerReservoirSize

        @Config("router.operation.tracker.reservoir.size")
        @Default("1028")
        public final int routerOperationTrackerReservoirSize
        The maximum size of histogram reservoir in operation tracker. This configs specifies the max number of data points that can be kept by histogram reservoir.
      • routerOperationTrackerReservoirDecayFactor

        @Config("router.operation.tracker.reservoir.decay.factor")
        @Default("0.015")
        public final double routerOperationTrackerReservoirDecayFactor
        The decay factor of histogram reservoir in operation tracker. This config specifies how biased histogram should be on new data.
      • routerOperationTrackerMinDataPointsRequired

        @Config("router.operation.tracker.min.data.points.required")
        @Default("1000")
        public final long routerOperationTrackerMinDataPointsRequired
        The minimum required data points to populate histogram in operation tracker. If number of data points is less than this threshold, the tracker ignores statistics from histogram.
      • routerOperationTrackerTerminateOnNotFoundEnabled

        @Config("router.operation.tracker.terminate.on.not.found.enabled")
        @Default("false")
        public final boolean routerOperationTrackerTerminateOnNotFoundEnabled
        If this config is set to true the operation tracker would terminate operations when there are more than 2 NOT_FOUND responses returned from originating dc. Notice that some of the blob ids don't have the datacenter id, it will have no effect on those blobs.
      • routerOperationTrackerMaxInflightRequests

        @Config("router.operation.tracker.max.inflight.requests")
        @Default("2")
        public final int routerOperationTrackerMaxInflightRequests
        The maximum number of inflight requests that allowed for adaptive tracker. If current number of inflight requests is larger than or equal to this threshold, tracker shouldn't send out any request even though the oldest is past due. routerGetRequestParallelism is a suggestive number that operation tracker uses to determine how many requests can be outstanding in parallel (assuming request gets response in time). Adaptive tracker is allowed to issue more requests (total inflight requests may exceed #routerGetRequestParallelism) if old request is past due. routerOperationTrackerMaxInflightRequests is the strict upper bound that at any point of time, number of inflight requests issued by adaptive tracker should not exceed this number. Hence, for adaptive tracker, inflight requests number should always be within [0, #routerOperationTrackerMaxInflightRequests]
      • routerOperationTrackerExcludeTimeoutEnabled

        @Config("router.operation.tracker.exclude.timeout.enabled")
        @Default("false")
        public final boolean routerOperationTrackerExcludeTimeoutEnabled
        Indicates whether to enable excluding timed out requests in Histogram reservoir.
      • routerOperationTrackerHistogramDumpEnabled

        @Config("router.operation.tracker.histogram.dump.enabled")
        @Default("false")
        public final boolean routerOperationTrackerHistogramDumpEnabled
        Indicates whether to dump resource-level histogram to log file.
      • routerOperationTrackerHistogramDumpPeriod

        @Config("router.operation.tracker.histogram.dump.period")
        @Default("600")
        public final long routerOperationTrackerHistogramDumpPeriod
        The period of dumping resource-level histogram in seconds(if enabled).
      • routerOperationTrackerHistogramCacheTimeoutMs

        @Config("router.operation.tracker.histogram.cache.timeout.ms")
        @Default("1000")
        public final long routerOperationTrackerHistogramCacheTimeoutMs
        The timeout in ms for a cached histogram value used by operation tracker. After this timeout expires, a new histogram snapshot will be generated.
      • routerMaxInMemPutChunks

        @Config("router.max.in.mem.put.chunks")
        @Default("4")
        public final int routerMaxInMemPutChunks
        The max number of chunks per PutOperation that may be buffered in memory.
      • routerMaxInMemGetChunks

        @Config("router.max.in.mem.get.chunks")
        @Default("4")
        public final int routerMaxInMemGetChunks
        The max number of chunks per GetBlobOperation that may be buffered in memory.
      • routerGetEligibleReplicasByStateEnabled

        @Config("router.get.eligible.replicas.by.state.enabled")
        @Default("false")
        public final boolean routerGetEligibleReplicasByStateEnabled
        if true, operation tracker will get replicas in required states based on the type of operation. This helps dynamically manage replicas in cluster (i.e. add/remove/move replicas) without restarting frontends.
      • routerPutUseDynamicSuccessTarget

        @Config("router.put.use.dynamic.success.target")
        @Default("false")
        public final boolean routerPutUseDynamicSuccessTarget
        Whether to use dynamic success target for put operation in router.
      • routerCloudSuccessTarget

        @Config("router.cloud.success.target")
        @Default("1")
        public final int routerCloudSuccessTarget
        The minimum number of successful responses required for a cloud operation of any type. Currently, cloud requests for any type of operation (get, put, delete, ttl update) will have the same success target and parallelism. This may change in the future with new operations introduced (such as undelete).
      • routerCloudRequestParallelism

        @Config("router.cloud.request.parallelism")
        @Default("1")
        public final int routerCloudRequestParallelism
        The maximum number of parallel requests allowed when sending requests to cloud replicas.
      • routerEnableHttp2NetworkClient

        @Config("router.enable.http2.network.client")
        @Default("false")
        public final boolean routerEnableHttp2NetworkClient
        Whether or not to use HTTP/2 network client
      • routerCrossColoRequestToDcWithMostReplicas

        @Config("router.cross.colo.request.to.dc.with.most.replicas")
        @Default("false")
        public final boolean routerCrossColoRequestToDcWithMostReplicas
        When request didn't succeed in local dc, whether to let router send request to remote dc with most replicas first. Currently, our logic is to try originating dc first. In some cases where originating dc is no longer available (i.e. the dc has been decommissioned), this config allows router to choose a dc with most replicas in which it's more likely to succeed.
      • routerBackgroundDeleterMaxConcurrentOperations

        @Config("router.background.deleter.max.concurrent.operations")
        @Default("0")
        public final int routerBackgroundDeleterMaxConcurrentOperations
        The maximum number of outgoing delete operations in background deleter. 0 means no limit.
    • Constructor Detail

      • RouterConfig

        public RouterConfig​(VerifiableProperties verifiableProperties)
        Create a RouterConfig instance.
        Parameters:
        verifiableProperties - the properties map to refer to.