config

package
v1.2.10 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 17, 2024 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	NumberOfShards                   int
	IsAdvancedVisConfigExist         bool
	RPS                              dynamicconfig.IntPropertyFn
	MaxIDLengthWarnLimit             dynamicconfig.IntPropertyFn
	DomainNameMaxLength              dynamicconfig.IntPropertyFnWithDomainFilter
	IdentityMaxLength                dynamicconfig.IntPropertyFnWithDomainFilter
	WorkflowIDMaxLength              dynamicconfig.IntPropertyFnWithDomainFilter
	SignalNameMaxLength              dynamicconfig.IntPropertyFnWithDomainFilter
	WorkflowTypeMaxLength            dynamicconfig.IntPropertyFnWithDomainFilter
	RequestIDMaxLength               dynamicconfig.IntPropertyFnWithDomainFilter
	TaskListNameMaxLength            dynamicconfig.IntPropertyFnWithDomainFilter
	ActivityIDMaxLength              dynamicconfig.IntPropertyFnWithDomainFilter
	ActivityTypeMaxLength            dynamicconfig.IntPropertyFnWithDomainFilter
	MarkerNameMaxLength              dynamicconfig.IntPropertyFnWithDomainFilter
	TimerIDMaxLength                 dynamicconfig.IntPropertyFnWithDomainFilter
	PersistenceMaxQPS                dynamicconfig.IntPropertyFn
	PersistenceGlobalMaxQPS          dynamicconfig.IntPropertyFn
	EnableVisibilitySampling         dynamicconfig.BoolPropertyFn
	EnableReadFromClosedExecutionV2  dynamicconfig.BoolPropertyFn
	VisibilityOpenMaxQPS             dynamicconfig.IntPropertyFnWithDomainFilter
	VisibilityClosedMaxQPS           dynamicconfig.IntPropertyFnWithDomainFilter
	AdvancedVisibilityWritingMode    dynamicconfig.StringPropertyFn
	EmitShardDiffLog                 dynamicconfig.BoolPropertyFn
	MaxAutoResetPoints               dynamicconfig.IntPropertyFnWithDomainFilter
	ThrottledLogRPS                  dynamicconfig.IntPropertyFn
	EnableStickyQuery                dynamicconfig.BoolPropertyFnWithDomainFilter
	ShutdownDrainDuration            dynamicconfig.DurationPropertyFn
	WorkflowDeletionJitterRange      dynamicconfig.IntPropertyFnWithDomainFilter
	DeleteHistoryEventContextTimeout dynamicconfig.IntPropertyFn
	MaxResponseSize                  int

	// HistoryCache settings
	// Change of these configs require shard restart
	HistoryCacheInitialSize dynamicconfig.IntPropertyFn
	HistoryCacheMaxSize     dynamicconfig.IntPropertyFn
	HistoryCacheTTL         dynamicconfig.DurationPropertyFn

	// EventsCache settings
	// Change of these configs require shard restart
	EventsCacheInitialCount       dynamicconfig.IntPropertyFn
	EventsCacheMaxCount           dynamicconfig.IntPropertyFn
	EventsCacheMaxSize            dynamicconfig.IntPropertyFn
	EventsCacheTTL                dynamicconfig.DurationPropertyFn
	EventsCacheGlobalEnable       dynamicconfig.BoolPropertyFn
	EventsCacheGlobalInitialCount dynamicconfig.IntPropertyFn
	EventsCacheGlobalMaxCount     dynamicconfig.IntPropertyFn

	// ShardController settings
	RangeSizeBits           uint
	AcquireShardInterval    dynamicconfig.DurationPropertyFn
	AcquireShardConcurrency dynamicconfig.IntPropertyFn

	// the artificial delay added to standby cluster's view of active cluster's time
	StandbyClusterDelay                  dynamicconfig.DurationPropertyFn
	StandbyTaskMissingEventsResendDelay  dynamicconfig.DurationPropertyFn
	StandbyTaskMissingEventsDiscardDelay dynamicconfig.DurationPropertyFn

	// Task process settings
	TaskProcessRPS                          dynamicconfig.IntPropertyFnWithDomainFilter
	TaskSchedulerType                       dynamicconfig.IntPropertyFn
	TaskSchedulerWorkerCount                dynamicconfig.IntPropertyFn
	TaskSchedulerShardWorkerCount           dynamicconfig.IntPropertyFn
	TaskSchedulerQueueSize                  dynamicconfig.IntPropertyFn
	TaskSchedulerShardQueueSize             dynamicconfig.IntPropertyFn
	TaskSchedulerDispatcherCount            dynamicconfig.IntPropertyFn
	TaskSchedulerRoundRobinWeights          dynamicconfig.MapPropertyFn
	TaskCriticalRetryCount                  dynamicconfig.IntPropertyFn
	ActiveTaskRedispatchInterval            dynamicconfig.DurationPropertyFn
	StandbyTaskRedispatchInterval           dynamicconfig.DurationPropertyFn
	TaskRedispatchIntervalJitterCoefficient dynamicconfig.FloatPropertyFn
	StandbyTaskReReplicationContextTimeout  dynamicconfig.DurationPropertyFnWithDomainIDFilter
	EnableDropStuckTaskByDomainID           dynamicconfig.BoolPropertyFnWithDomainIDFilter
	ResurrectionCheckMinDelay               dynamicconfig.DurationPropertyFnWithDomainFilter

	// QueueProcessor settings
	QueueProcessorEnableSplit                          dynamicconfig.BoolPropertyFn
	QueueProcessorSplitMaxLevel                        dynamicconfig.IntPropertyFn
	QueueProcessorEnableRandomSplitByDomainID          dynamicconfig.BoolPropertyFnWithDomainIDFilter
	QueueProcessorRandomSplitProbability               dynamicconfig.FloatPropertyFn
	QueueProcessorEnablePendingTaskSplitByDomainID     dynamicconfig.BoolPropertyFnWithDomainIDFilter
	QueueProcessorPendingTaskSplitThreshold            dynamicconfig.MapPropertyFn
	QueueProcessorEnableStuckTaskSplitByDomainID       dynamicconfig.BoolPropertyFnWithDomainIDFilter
	QueueProcessorStuckTaskSplitThreshold              dynamicconfig.MapPropertyFn
	QueueProcessorSplitLookAheadDurationByDomainID     dynamicconfig.DurationPropertyFnWithDomainIDFilter
	QueueProcessorPollBackoffInterval                  dynamicconfig.DurationPropertyFn
	QueueProcessorPollBackoffIntervalJitterCoefficient dynamicconfig.FloatPropertyFn
	QueueProcessorEnablePersistQueueStates             dynamicconfig.BoolPropertyFn
	QueueProcessorEnableLoadQueueStates                dynamicconfig.BoolPropertyFn
	QueueProcessorEnableGracefulSyncShutdown           dynamicconfig.BoolPropertyFn

	// TimerQueueProcessor settings
	TimerTaskBatchSize                                dynamicconfig.IntPropertyFn
	TimerTaskDeleteBatchSize                          dynamicconfig.IntPropertyFn
	TimerProcessorGetFailureRetryCount                dynamicconfig.IntPropertyFn
	TimerProcessorCompleteTimerFailureRetryCount      dynamicconfig.IntPropertyFn
	TimerProcessorUpdateAckInterval                   dynamicconfig.DurationPropertyFn
	TimerProcessorUpdateAckIntervalJitterCoefficient  dynamicconfig.FloatPropertyFn
	TimerProcessorCompleteTimerInterval               dynamicconfig.DurationPropertyFn
	TimerProcessorFailoverMaxStartJitterInterval      dynamicconfig.DurationPropertyFn
	TimerProcessorFailoverMaxPollRPS                  dynamicconfig.IntPropertyFn
	TimerProcessorMaxPollRPS                          dynamicconfig.IntPropertyFn
	TimerProcessorMaxPollInterval                     dynamicconfig.DurationPropertyFn
	TimerProcessorMaxPollIntervalJitterCoefficient    dynamicconfig.FloatPropertyFn
	TimerProcessorSplitQueueInterval                  dynamicconfig.DurationPropertyFn
	TimerProcessorSplitQueueIntervalJitterCoefficient dynamicconfig.FloatPropertyFn
	TimerProcessorMaxRedispatchQueueSize              dynamicconfig.IntPropertyFn
	TimerProcessorMaxTimeShift                        dynamicconfig.DurationPropertyFn
	TimerProcessorHistoryArchivalSizeLimit            dynamicconfig.IntPropertyFn
	TimerProcessorArchivalTimeLimit                   dynamicconfig.DurationPropertyFn

	// TransferQueueProcessor settings
	TransferTaskBatchSize                                dynamicconfig.IntPropertyFn
	TransferTaskDeleteBatchSize                          dynamicconfig.IntPropertyFn
	TransferProcessorCompleteTransferFailureRetryCount   dynamicconfig.IntPropertyFn
	TransferProcessorFailoverMaxStartJitterInterval      dynamicconfig.DurationPropertyFn
	TransferProcessorFailoverMaxPollRPS                  dynamicconfig.IntPropertyFn
	TransferProcessorMaxPollRPS                          dynamicconfig.IntPropertyFn
	TransferProcessorMaxPollInterval                     dynamicconfig.DurationPropertyFn
	TransferProcessorMaxPollIntervalJitterCoefficient    dynamicconfig.FloatPropertyFn
	TransferProcessorSplitQueueInterval                  dynamicconfig.DurationPropertyFn
	TransferProcessorSplitQueueIntervalJitterCoefficient dynamicconfig.FloatPropertyFn
	TransferProcessorUpdateAckInterval                   dynamicconfig.DurationPropertyFn
	TransferProcessorUpdateAckIntervalJitterCoefficient  dynamicconfig.FloatPropertyFn
	TransferProcessorCompleteTransferInterval            dynamicconfig.DurationPropertyFn
	TransferProcessorMaxRedispatchQueueSize              dynamicconfig.IntPropertyFn
	TransferProcessorEnableValidator                     dynamicconfig.BoolPropertyFn
	TransferProcessorValidationInterval                  dynamicconfig.DurationPropertyFn
	TransferProcessorVisibilityArchivalTimeLimit         dynamicconfig.DurationPropertyFn

	// CrossClusterQueueProcessor settings
	CrossClusterTaskBatchSize                                     dynamicconfig.IntPropertyFn
	CrossClusterTaskDeleteBatchSize                               dynamicconfig.IntPropertyFn
	CrossClusterTaskFetchBatchSize                                dynamicconfig.IntPropertyFnWithShardIDFilter
	CrossClusterSourceProcessorMaxPollRPS                         dynamicconfig.IntPropertyFn
	CrossClusterSourceProcessorMaxPollInterval                    dynamicconfig.DurationPropertyFn
	CrossClusterSourceProcessorMaxPollIntervalJitterCoefficient   dynamicconfig.FloatPropertyFn
	CrossClusterSourceProcessorUpdateAckInterval                  dynamicconfig.DurationPropertyFn
	CrossClusterSourceProcessorUpdateAckIntervalJitterCoefficient dynamicconfig.FloatPropertyFn
	CrossClusterSourceProcessorMaxRedispatchQueueSize             dynamicconfig.IntPropertyFn
	CrossClusterSourceProcessorMaxPendingTaskSize                 dynamicconfig.IntPropertyFn

	// CrossClusterTargetTaskProcessor settings
	CrossClusterTargetProcessorMaxPendingTasks            dynamicconfig.IntPropertyFn
	CrossClusterTargetProcessorMaxRetryCount              dynamicconfig.IntPropertyFn
	CrossClusterTargetProcessorTaskWaitInterval           dynamicconfig.DurationPropertyFn
	CrossClusterTargetProcessorServiceBusyBackoffInterval dynamicconfig.DurationPropertyFn
	CrossClusterTargetProcessorJitterCoefficient          dynamicconfig.FloatPropertyFn

	// CrossClusterTaskFetcher settings
	CrossClusterFetcherParallelism                dynamicconfig.IntPropertyFn
	CrossClusterFetcherAggregationInterval        dynamicconfig.DurationPropertyFn
	CrossClusterFetcherServiceBusyBackoffInterval dynamicconfig.DurationPropertyFn
	CrossClusterFetcherErrorBackoffInterval       dynamicconfig.DurationPropertyFn
	CrossClusterFetcherJitterCoefficient          dynamicconfig.FloatPropertyFn

	// ReplicatorQueueProcessor settings
	ReplicatorTaskDeleteBatchSize          dynamicconfig.IntPropertyFn
	ReplicatorReadTaskMaxRetryCount        dynamicconfig.IntPropertyFn
	ReplicatorProcessorFetchTasksBatchSize dynamicconfig.IntPropertyFnWithShardIDFilter
	ReplicatorUpperLatency                 dynamicconfig.DurationPropertyFn
	ReplicatorCacheCapacity                dynamicconfig.IntPropertyFn

	// Persistence settings
	ExecutionMgrNumConns dynamicconfig.IntPropertyFn
	HistoryMgrNumConns   dynamicconfig.IntPropertyFn

	// System Limits
	MaximumBufferedEventsBatch dynamicconfig.IntPropertyFn
	MaximumSignalsPerExecution dynamicconfig.IntPropertyFnWithDomainFilter

	// ShardUpdateMinInterval the minimal time interval which the shard info can be updated
	ShardUpdateMinInterval dynamicconfig.DurationPropertyFn
	// ShardSyncMinInterval the minimal time interval which the shard info should be sync to remote
	ShardSyncMinInterval            dynamicconfig.DurationPropertyFn
	ShardSyncTimerJitterCoefficient dynamicconfig.FloatPropertyFn

	// Time to hold a poll request before returning an empty response
	// right now only used by GetMutableState
	LongPollExpirationInterval dynamicconfig.DurationPropertyFnWithDomainFilter

	// encoding the history events
	EventEncodingType dynamicconfig.StringPropertyFnWithDomainFilter
	// whether or not using ParentClosePolicy
	EnableParentClosePolicy dynamicconfig.BoolPropertyFnWithDomainFilter
	// whether or not enable system workers for processing parent close policy task
	EnableParentClosePolicyWorker dynamicconfig.BoolPropertyFn
	// whether to enable system workers for processing ElasticSearch Analyzer
	EnableESAnalyzer dynamicconfig.BoolPropertyFn
	// parent close policy will be processed by sys workers(if enabled) if
	// the number of children greater than or equal to this threshold
	ParentClosePolicyThreshold dynamicconfig.IntPropertyFnWithDomainFilter
	// total number of parentClosePolicy system workflows
	NumParentClosePolicySystemWorkflows dynamicconfig.IntPropertyFn

	// Archival settings
	NumArchiveSystemWorkflows        dynamicconfig.IntPropertyFn
	ArchiveRequestRPS                dynamicconfig.IntPropertyFn
	ArchiveInlineHistoryRPS          dynamicconfig.IntPropertyFn
	ArchiveInlineHistoryGlobalRPS    dynamicconfig.IntPropertyFn
	ArchiveInlineVisibilityRPS       dynamicconfig.IntPropertyFn
	ArchiveInlineVisibilityGlobalRPS dynamicconfig.IntPropertyFn
	AllowArchivingIncompleteHistory  dynamicconfig.BoolPropertyFn

	// Size limit related settings
	BlobSizeLimitError               dynamicconfig.IntPropertyFnWithDomainFilter
	BlobSizeLimitWarn                dynamicconfig.IntPropertyFnWithDomainFilter
	HistorySizeLimitError            dynamicconfig.IntPropertyFnWithDomainFilter
	HistorySizeLimitWarn             dynamicconfig.IntPropertyFnWithDomainFilter
	HistoryCountLimitError           dynamicconfig.IntPropertyFnWithDomainFilter
	HistoryCountLimitWarn            dynamicconfig.IntPropertyFnWithDomainFilter
	PendingActivitiesCountLimitError dynamicconfig.IntPropertyFn
	PendingActivitiesCountLimitWarn  dynamicconfig.IntPropertyFn
	PendingActivityValidationEnabled dynamicconfig.BoolPropertyFn

	// ValidSearchAttributes is legal indexed keys that can be used in list APIs
	EnableQueryAttributeValidation    dynamicconfig.BoolPropertyFn
	ValidSearchAttributes             dynamicconfig.MapPropertyFn
	SearchAttributesNumberOfKeysLimit dynamicconfig.IntPropertyFnWithDomainFilter
	SearchAttributesSizeOfValueLimit  dynamicconfig.IntPropertyFnWithDomainFilter
	SearchAttributesTotalSizeLimit    dynamicconfig.IntPropertyFnWithDomainFilter

	// Decision settings
	// StickyTTL is to expire a sticky tasklist if no update more than this duration
	// TODO https://github.com/uber/cadence/issues/2357
	StickyTTL dynamicconfig.DurationPropertyFnWithDomainFilter
	// DecisionHeartbeatTimeout is to timeout behavior of: RespondDecisionTaskComplete with ForceCreateNewDecisionTask == true without any decisions
	// So that decision will be scheduled to another worker(by clear stickyness)
	DecisionHeartbeatTimeout dynamicconfig.DurationPropertyFnWithDomainFilter
	// MaxDecisionStartToCloseSeconds is the StartToCloseSeconds for decision
	MaxDecisionStartToCloseSeconds           dynamicconfig.IntPropertyFnWithDomainFilter
	DecisionRetryCriticalAttempts            dynamicconfig.IntPropertyFn
	DecisionRetryMaxAttempts                 dynamicconfig.IntPropertyFnWithDomainFilter
	NormalDecisionScheduleToStartMaxAttempts dynamicconfig.IntPropertyFnWithDomainFilter
	NormalDecisionScheduleToStartTimeout     dynamicconfig.DurationPropertyFnWithDomainFilter

	// The following is used by the new RPC replication stack
	ReplicationTaskFetcherParallelism                  dynamicconfig.IntPropertyFn
	ReplicationTaskFetcherAggregationInterval          dynamicconfig.DurationPropertyFn
	ReplicationTaskFetcherTimerJitterCoefficient       dynamicconfig.FloatPropertyFn
	ReplicationTaskFetcherErrorRetryWait               dynamicconfig.DurationPropertyFn
	ReplicationTaskFetcherServiceBusyWait              dynamicconfig.DurationPropertyFn
	ReplicationTaskFetcherEnableGracefulSyncShutdown   dynamicconfig.BoolPropertyFn
	ReplicationTaskProcessorErrorRetryWait             dynamicconfig.DurationPropertyFnWithShardIDFilter
	ReplicationTaskProcessorErrorRetryMaxAttempts      dynamicconfig.IntPropertyFnWithShardIDFilter
	ReplicationTaskProcessorErrorSecondRetryWait       dynamicconfig.DurationPropertyFnWithShardIDFilter
	ReplicationTaskProcessorErrorSecondRetryMaxWait    dynamicconfig.DurationPropertyFnWithShardIDFilter
	ReplicationTaskProcessorErrorSecondRetryExpiration dynamicconfig.DurationPropertyFnWithShardIDFilter
	ReplicationTaskProcessorNoTaskRetryWait            dynamicconfig.DurationPropertyFnWithShardIDFilter
	ReplicationTaskProcessorCleanupInterval            dynamicconfig.DurationPropertyFnWithShardIDFilter
	ReplicationTaskProcessorCleanupJitterCoefficient   dynamicconfig.FloatPropertyFnWithShardIDFilter
	ReplicationTaskProcessorStartWait                  dynamicconfig.DurationPropertyFnWithShardIDFilter
	ReplicationTaskProcessorStartWaitJitterCoefficient dynamicconfig.FloatPropertyFnWithShardIDFilter
	ReplicationTaskProcessorHostQPS                    dynamicconfig.FloatPropertyFn
	ReplicationTaskProcessorShardQPS                   dynamicconfig.FloatPropertyFn
	ReplicationTaskGenerationQPS                       dynamicconfig.FloatPropertyFn
	EnableReplicationTaskGeneration                    dynamicconfig.BoolPropertyFnWithDomainIDAndWorkflowIDFilter
	EnableRecordWorkflowExecutionUninitialized         dynamicconfig.BoolPropertyFnWithDomainFilter

	// The following are used by the history workflowID cache
	WorkflowIDCacheExternalEnabled     dynamicconfig.BoolPropertyFnWithDomainFilter
	WorkflowIDCacheInternalEnabled     dynamicconfig.BoolPropertyFnWithDomainFilter
	WorkflowIDExternalRateLimitEnabled dynamicconfig.BoolPropertyFnWithDomainFilter
	WorkflowIDInternalRateLimitEnabled dynamicconfig.BoolPropertyFnWithDomainFilter
	WorkflowIDExternalRPS              dynamicconfig.IntPropertyFnWithDomainFilter
	WorkflowIDInternalRPS              dynamicconfig.IntPropertyFnWithDomainFilter

	// The following are used by consistent query
	EnableConsistentQuery         dynamicconfig.BoolPropertyFn
	EnableConsistentQueryByDomain dynamicconfig.BoolPropertyFnWithDomainFilter
	MaxBufferedQueryCount         dynamicconfig.IntPropertyFn

	EnableCrossClusterEngine              dynamicconfig.BoolPropertyFn
	EnableCrossClusterOperationsForDomain dynamicconfig.BoolPropertyFnWithDomainFilter

	// Data integrity check related config knobs
	MutableStateChecksumGenProbability    dynamicconfig.IntPropertyFnWithDomainFilter
	MutableStateChecksumVerifyProbability dynamicconfig.IntPropertyFnWithDomainFilter
	MutableStateChecksumInvalidateBefore  dynamicconfig.FloatPropertyFn
	EnableRetryForChecksumFailure         dynamicconfig.BoolPropertyFnWithDomainFilter

	// History check for corruptions
	EnableHistoryCorruptionCheck dynamicconfig.BoolPropertyFnWithDomainFilter

	// Failover marker heartbeat
	NotifyFailoverMarkerInterval               dynamicconfig.DurationPropertyFn
	NotifyFailoverMarkerTimerJitterCoefficient dynamicconfig.FloatPropertyFn
	EnableGracefulFailover                     dynamicconfig.BoolPropertyFn

	// Allows worker to dispatch activity tasks through local tunnel after decisions are made. This is an performance optimization to skip activity scheduling efforts.
	EnableActivityLocalDispatchByDomain dynamicconfig.BoolPropertyFnWithDomainFilter
	// Max # of activity tasks to dispatch to matching before creating transfer tasks. This is an performance optimization to skip activity scheduling efforts.
	MaxActivityCountDispatchByDomain dynamicconfig.IntPropertyFnWithDomainFilter

	ActivityMaxScheduleToStartTimeoutForRetry dynamicconfig.DurationPropertyFnWithDomainFilter

	// Debugging configurations
	EnableDebugMode               bool // note that this value is initialized once on service start
	EnableTaskInfoLogByDomainID   dynamicconfig.BoolPropertyFnWithDomainIDFilter
	EnableTimerDebugLogByDomainID dynamicconfig.BoolPropertyFnWithDomainIDFilter

	// Hotshard stuff
	SampleLoggingRate                     dynamicconfig.IntPropertyFn
	EnableShardIDMetrics                  dynamicconfig.BoolPropertyFn
	LargeShardHistorySizeMetricThreshold  dynamicconfig.IntPropertyFn
	LargeShardHistoryEventMetricThreshold dynamicconfig.IntPropertyFn
	LargeShardHistoryBlobMetricThreshold  dynamicconfig.IntPropertyFn

	EnableStrongIdempotency dynamicconfig.BoolPropertyFnWithDomainFilter

	// HostName for machine running the service
	HostName string
}

Config represents configuration for cadence-history service

func New

func New(dc *dynamicconfig.Collection, numberOfShards int, maxMessageSize int, storeType string, isAdvancedVisConfigExist bool, hostname string) *Config

New returns new service config with default values

func NewForTest

func NewForTest() *Config

NewForTest create new history service config for test

func NewForTestByShardNumber added in v0.22.0

func NewForTestByShardNumber(shardNumber int) *Config

NewForTestByShardNumber create new history service config for test

func (*Config) GetShardID

func (config *Config) GetShardID(workflowID string) int

GetShardID return the corresponding shard ID for a given workflow ID

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL