diff --git a/service/history/service.go b/service/history/service.go index d159954d8cb..9aaaf790cc1 100644 --- a/service/history/service.go +++ b/service/history/service.go @@ -76,8 +76,8 @@ type Config struct { func NewConfig(numberOfShards int) *Config { return &Config{ NumberOfShards: numberOfShards, - HistoryCacheInitialSize: 256, - HistoryCacheMaxSize: 1 * 1024, + HistoryCacheInitialSize: 128, + HistoryCacheMaxSize: 256, HistoryCacheTTL: time.Hour, RangeSizeBits: 20, // 20 bits for sequencer, 2^20 sequence number for any range AcquireShardInterval: time.Minute, diff --git a/service/history/transferQueueProcessor.go b/service/history/transferQueueProcessor.go index ef85a85b739..8b137e2565b 100644 --- a/service/history/transferQueueProcessor.go +++ b/service/history/transferQueueProcessor.go @@ -372,6 +372,7 @@ func (t *transferQueueProcessorImpl) processDecisionTask(task *persistence.Trans if err != nil { return err } + var mb *mutableStateBuilder mb, err = context.loadWorkflowExecution() if err != nil { @@ -427,10 +428,10 @@ func (t *transferQueueProcessorImpl) processCloseExecution(task *persistence.Tra RunId: common.StringPtr(task.RunID)} context, release, err := t.cache.getOrCreateWorkflowExecution(domainID, execution) - defer release() if err != nil { return err } + defer release() var mb *mutableStateBuilder mb, err = context.loadWorkflowExecution() @@ -509,10 +510,10 @@ func (t *transferQueueProcessorImpl) processCancelExecution(task *persistence.Tr var context *workflowExecutionContext var release releaseWorkflowExecutionFunc context, release, err = t.cache.getOrCreateWorkflowExecution(domainID, execution) - defer release() if err != nil { return err } + defer release() // First load the execution to validate if there is pending request cancellation for this transfer task var msBuilder *mutableStateBuilder @@ -598,10 +599,10 @@ func (t *transferQueueProcessorImpl) processStartChildExecution(task *persistenc var context *workflowExecutionContext var release releaseWorkflowExecutionFunc context, release, err = t.cache.getOrCreateWorkflowExecution(domainID, execution) - defer release() if err != nil { return err } + defer release() // First step is to load workflow execution so we can retrieve the initiated event var msBuilder *mutableStateBuilder