From d6b5108620381d9314bd4c4fe3cc4401cf21e113 Mon Sep 17 00:00:00 2001 From: Quanzheng Long Date: Fri, 28 May 2021 16:04:55 -0700 Subject: [PATCH] Raise VisibilityListMaxQP limit for local docker-compose env --- service/frontend/service.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/service/frontend/service.go b/service/frontend/service.go index 7a8ca233fb..59d1d58ea3 100644 --- a/service/frontend/service.go +++ b/service/frontend/service.go @@ -21,6 +21,8 @@ package frontend import ( + "os" + "strings" "sync/atomic" "time" @@ -111,7 +113,7 @@ func NewConfig(dc *dynamicconfig.Collection, numHistoryShards int, enableReadFro VisibilityMaxPageSize: dc.GetIntPropertyFilteredByDomain(dynamicconfig.FrontendVisibilityMaxPageSize, 1000), EnableVisibilitySampling: dc.GetBoolProperty(dynamicconfig.EnableVisibilitySampling, true), EnableReadFromClosedExecutionV2: dc.GetBoolProperty(dynamicconfig.EnableReadFromClosedExecutionV2, false), - VisibilityListMaxQPS: dc.GetIntPropertyFilteredByDomain(dynamicconfig.FrontendVisibilityListMaxQPS, 10), + VisibilityListMaxQPS: dc.GetIntPropertyFilteredByDomain(dynamicconfig.FrontendVisibilityListMaxQPS, defaultVisibilityListMaxQPS()), ESVisibilityListMaxQPS: dc.GetIntPropertyFilteredByDomain(dynamicconfig.FrontendESVisibilityListMaxQPS, 30), EnableReadVisibilityFromES: dc.GetBoolPropertyFilteredByDomain(dynamicconfig.EnableReadVisibilityFromES, enableReadFromES), ESIndexMaxResultWindow: dc.GetIntProperty(dynamicconfig.FrontendESIndexMaxResultWindow, 10000), @@ -157,6 +159,17 @@ func NewConfig(dc *dynamicconfig.Collection, numHistoryShards int, enableReadFro } } +// TODO remove this and return 10 always, after cadence-web improve the List requests with backoff retry +// https://github.com/uber/cadence-web/issues/337 +func defaultVisibilityListMaxQPS() int { + cmd := strings.Join(os.Args, " ") + // NOTE: this is safe because only dev box should start cadence in a single box with 4 services, and only docker should use `--env docker` + if strings.Contains(cmd, "--root /etc/cadence --env docker start --services=history,matching,frontend,worker") { + return 10000 + } + return 10 +} + // Service represents the cadence-frontend service type Service struct { resource.Resource