Package com.github.ambry.config
Class RouterConfig
- java.lang.Object
-
- com.github.ambry.config.RouterConfig
-
public class RouterConfig extends java.lang.Object
Configuration parameters required by aRouter
. 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 Summary
Fields Modifier and Type Field Description static java.lang.String
DEFAULT_CRYPTO_SERVICE_FACTORY
static java.lang.String
DEFAULT_KMS_FACTORY
static double
DEFAULT_LATENCY_TOLERANCE_QUANTILE
static long
DEFAULT_OPERATION_TRACKER_HISTOGRAM_CACHE_TIMEOUT_MS
static java.lang.String
ROUTER_BACKGROUND_DELETER_MAX_CONCURRENT_OPERATIONS
static java.lang.String
ROUTER_BLOBID_CURRENT_VERSION
static java.lang.String
ROUTER_CLOUD_REQUEST_PARALLELISM
static java.lang.String
ROUTER_CLOUD_SUCCESS_TARGET
static java.lang.String
ROUTER_CONNECTION_CHECKOUT_TIMEOUT_MS
static java.lang.String
ROUTER_CONNECTIONS_LOCAL_DC_WARM_UP_PERCENTAGE
static java.lang.String
ROUTER_CONNECTIONS_REMOTE_DC_WARM_UP_PERCENTAGE
static java.lang.String
ROUTER_CONNECTIONS_WARM_UP_TIMEOUT_MS
static java.lang.String
ROUTER_CROSS_COLO_REQUEST_TO_DC_WITH_MOST_REPLICAS
static java.lang.String
ROUTER_CRYPTO_JOBS_WORKER_COUNT
static java.lang.String
ROUTER_CRYPTO_SERVICE_FACTORY
static java.lang.String
ROUTER_DATACENTER_NAME
static java.lang.String
ROUTER_DELETE_REQUEST_PARALLELISM
static java.lang.String
ROUTER_DELETE_SUCCESS_TARGET
static java.lang.String
ROUTER_DROP_REQUEST_ON_TIMEOUT
static java.lang.String
ROUTER_ENABLE_HTTP2_NETWORK_CLIENT
static java.lang.String
ROUTER_GET_CROSS_DC_ENABLED
static java.lang.String
ROUTER_GET_ELIGIBLE_REPLICAS_BY_STATE_ENABLED
static java.lang.String
ROUTER_GET_OPERATION_TRACKER_TYPE
static java.lang.String
ROUTER_GET_REQUEST_PARALLELISM
static java.lang.String
ROUTER_GET_SUCCESS_TARGET
static java.lang.String
ROUTER_HOSTNAME
static java.lang.String
ROUTER_KEY_MANAGEMENT_SERVICE_FACTORY
static java.lang.String
ROUTER_LATENCY_TOLERANCE_QUANTILE
static java.lang.String
ROUTER_MAX_IN_MEM_GET_CHUNKS
static java.lang.String
ROUTER_MAX_IN_MEM_PUT_CHUNKS
static java.lang.String
ROUTER_MAX_PUT_CHUNK_SIZE_BYTES
static java.lang.String
ROUTER_MAX_SLIPPED_PUT_ATTEMPTS
static java.lang.String
ROUTER_METADATA_CONTENT_VERSION
static java.lang.String
ROUTER_OPERATION_TRACKER_CUSTOM_PERCENTILES
static java.lang.String
ROUTER_OPERATION_TRACKER_EXCLUDE_TIMEOUT_ENABLED
static java.lang.String
ROUTER_OPERATION_TRACKER_HISTOGRAM_CACHE_TIMEOUT_MS
static java.lang.String
ROUTER_OPERATION_TRACKER_HISTOGRAM_DUMP_ENABLED
static java.lang.String
ROUTER_OPERATION_TRACKER_HISTOGRAM_DUMP_PERIOD
static java.lang.String
ROUTER_OPERATION_TRACKER_INCLUDE_DOWN_REPLICAS
static java.lang.String
ROUTER_OPERATION_TRACKER_MAX_INFLIGHT_REQUESTS
static java.lang.String
ROUTER_OPERATION_TRACKER_METRIC_SCOPE
static java.lang.String
ROUTER_OPERATION_TRACKER_MIN_DATA_POINTS_REQUIRED
static java.lang.String
ROUTER_OPERATION_TRACKER_RESERVOIR_DECAY_FACTOR
static java.lang.String
ROUTER_OPERATION_TRACKER_RESERVOIR_SIZE
static java.lang.String
ROUTER_OPERATION_TRACKER_TERMINATE_ON_NOT_FOUND_ENABLED
static java.lang.String
ROUTER_PUT_REQUEST_PARALLELISM
static java.lang.String
ROUTER_PUT_SUCCESS_TARGET
static java.lang.String
ROUTER_PUT_USE_DYNAMIC_SUCCESS_TARGET
static java.lang.String
ROUTER_REQUEST_TIMEOUT_MS
static java.lang.String
ROUTER_SCALING_UNIT_COUNT
static java.lang.String
ROUTER_SCALING_UNIT_MAX_CONNECTIONS_PER_PORT_PLAIN_TEXT
static java.lang.String
ROUTER_SCALING_UNIT_MAX_CONNECTIONS_PER_PORT_SSL
static java.lang.String
ROUTER_TTL_UPDATE_REQUEST_PARALLELISM
static java.lang.String
ROUTER_TTL_UPDATE_SUCCESS_TARGET
static java.lang.String
ROUTER_UNDELETE_REQUEST_PARALLELISM
static java.lang.String
ROUTER_USE_GET_BLOB_OPERATION_FOR_BLOB_INFO
int
routerBackgroundDeleterMaxConcurrentOperations
The maximum number of outgoing delete operations in background deleter.short
routerBlobidCurrentVersion
The version to use for new BlobIds.int
routerCloudRequestParallelism
The maximum number of parallel requests allowed when sending requests to cloud replicas.int
routerCloudSuccessTarget
The minimum number of successful responses required for a cloud operation of any type.int
routerConnectionCheckoutTimeoutMs
Timeout for checking out an available connection to a (datanode, port).int
routerConnectionsLocalDcWarmUpPercentage
The percentage ofrouterScalingUnitMaxConnectionsPerPortSsl
orrouterScalingUnitMaxConnectionsPerPortPlainText
to warm up for data nodes in the local datacenter during startup.int
routerConnectionsRemoteDcWarmUpPercentage
The percentage ofrouterScalingUnitMaxConnectionsPerPortSsl
orrouterScalingUnitMaxConnectionsPerPortPlainText
to warm up for data nodes in remote datacenters during startup.int
routerConnectionsWarmUpTimeoutMs
The max time allowed to establish connections to local DC in the startupboolean
routerCrossColoRequestToDcWithMostReplicas
When request didn't succeed in local dc, whether to let router send request to remote dc with most replicas first.int
routerCryptoJobsWorkerCount
Number of crypto jobs worker countjava.lang.String
routerCryptoServiceFactory
The CryptoServiceFactory that will be used to fetchCryptoService
java.lang.String
routerDatacenterName
The name of the datacenter in which the router is located.int
routerDeleteRequestParallelism
The maximum number of parallel requests allowed for a delete operation.int
routerDeleteSuccessTarget
The minimum number of successful responses required for a delete operation.boolean
routerDropRequestOnTimeout
true
if the router should tell the network layer about requests that have timed out.boolean
routerEnableHttp2NetworkClient
Whether or not to use HTTP/2 network clientboolean
routerGetCrossDcEnabled
Indicates whether get operations are allowed to make requests to nodes in remote data centers.boolean
routerGetEligibleReplicasByStateEnabled
iftrue
, operation tracker will get replicas in required states based on the type of operation.java.lang.String
routerGetOperationTrackerType
The OperationTracker to use for GET operations.int
routerGetRequestParallelism
The maximum number of parallel requests issued at a time by the get manager for a get operation on a chunk.int
routerGetSuccessTarget
The minimum number of successful responses required for a get operation on a chunk.java.lang.String
routerHostname
The hostname of the node upon which the router runs.java.lang.String
routerKeyManagementServiceFactory
The KeyManagementServiceFactory that will be used to fetchKeyManagementService
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).int
routerMaxInMemGetChunks
The max number of chunks per GetBlobOperation that may be buffered in memory.int
routerMaxInMemPutChunks
The max number of chunks per PutOperation that may be buffered in memory.int
routerMaxPutChunkSizeBytes
The max chunk size to be used for put operations.int
routerMaxSlippedPutAttempts
The maximum number of times to retry putting any chunk of a put operationshort
routerMetadataContentVersion
The version to use for new metadata blobs.java.util.List<java.lang.Double>
routerOperationTrackerCustomPercentiles
The custom percentiles of Histogram in operation tracker to be reported.boolean
routerOperationTrackerExcludeTimeoutEnabled
Indicates whether to enable excluding timed out requests in Histogram reservoir.long
routerOperationTrackerHistogramCacheTimeoutMs
The timeout in ms for a cached histogram value used by operation tracker.boolean
routerOperationTrackerHistogramDumpEnabled
Indicates whether to dump resource-level histogram to log file.long
routerOperationTrackerHistogramDumpPeriod
The period of dumping resource-level histogram in seconds(if enabled).boolean
routerOperationTrackerIncludeDownReplicas
Whether to include down(offline) replicas in replicas pool within operation tracker.int
routerOperationTrackerMaxInflightRequests
The maximum number of inflight requests that allowed for adaptive tracker.OperationTrackerScope
routerOperationTrackerMetricScope
The metric scope that is applied to operation tracker.long
routerOperationTrackerMinDataPointsRequired
The minimum required data points to populate histogram in operation tracker.double
routerOperationTrackerReservoirDecayFactor
The decay factor of histogram reservoir in operation tracker.int
routerOperationTrackerReservoirSize
The maximum size of histogram reservoir in operation tracker.boolean
routerOperationTrackerTerminateOnNotFoundEnabled
If this config is set totrue
the operation tracker would terminate operations when there are more than 2 NOT_FOUND responses returned from originating dc.int
routerPutRequestParallelism
The maximum number of parallel requests issued at a time by the put manager for a chunk.int
routerPutSuccessTarget
The minimum number of successful responses required for a put operation.boolean
routerPutUseDynamicSuccessTarget
Whether to use dynamic success target for put operation in router.int
routerRequestTimeoutMs
Timeout for requests issued by the router to the network layer.int
routerScalingUnitCount
Number of independent scaling units for the router.int
routerScalingUnitMaxConnectionsPerPortPlainText
The max connections allowed per (datanode, port) for plain textint
routerScalingUnitMaxConnectionsPerPortSsl
The max connections allowed per (datanode, port) for sslint
routerTtlUpdateRequestParallelism
The maximum number of parallel requests issued at a time by the TTL update manager for a chunk.int
routerTtlUpdateSuccessTarget
The minimum number of successful responses required for a TTL update operation.int
routerUndeleteRequestParallelism
The maximum number of parallel requests issued at a time by the undelete manager for a blob.boolean
routerUseGetBlobOperationForBlobInfo
If this config is set totrue
the router will useGetBlobOperation
instead ofGetBlobInfoOperation
forgetBlobInfo
calls.
-
Constructor Summary
Constructors Constructor Description RouterConfig(VerifiableProperties verifiableProperties)
Create a RouterConfig instance.
-
-
-
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_HOSTNAME
public static final java.lang.String ROUTER_HOSTNAME
- 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
-
routerConnectionsLocalDcWarmUpPercentage
@Config("router.connections.local.dc.warm.up.percentage") @Default("25") public final int routerConnectionsLocalDcWarmUpPercentage
The percentage ofrouterScalingUnitMaxConnectionsPerPortSsl
orrouterScalingUnitMaxConnectionsPerPortPlainText
to warm up for data nodes in the local datacenter during startup.routerConnectionsWarmUpTimeoutMs
may need to be adjusted.
-
routerConnectionsRemoteDcWarmUpPercentage
@Config("router.connections.remote.dc.warm.up.percentage") @Default("0") public final int routerConnectionsRemoteDcWarmUpPercentage
The percentage ofrouterScalingUnitMaxConnectionsPerPortSsl
orrouterScalingUnitMaxConnectionsPerPortPlainText
to warm up for data nodes in remote datacenters during startup.routerConnectionsWarmUpTimeoutMs
may need to be adjusted.
-
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 fetchKeyManagementService
-
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 fetchCryptoService
-
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 totrue
the router will useGetBlobOperation
instead ofGetBlobInfoOperation
forgetBlobInfo
calls. This allows the router to correct some blob size corruptions that may have arisen from using older versions ofBlobIdTransformer
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 inOperationTrackerScope
-
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 totrue
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
iftrue
, 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.
-
-
Constructor Detail
-
RouterConfig
public RouterConfig(VerifiableProperties verifiableProperties)
Create a RouterConfig instance.- Parameters:
verifiableProperties
- the properties map to refer to.
-
-