temporal icon indicating copy to clipboard operation
temporal copied to clipboard

Structured defaults in dynamicconfig

Open dnr opened this issue 3 years ago • 0 comments

What changed?

  • Allow "default values" passed to dynamic config to be lists of constrained values, as they would appear in a file. The default values are mixed with values from a file, applying after the specified values per filter set.
  • Change precedence order for getFilterMapsForTaskQueue: a task-queue-only constraint overrides a namespace-only constraint. This is so that we can override the default for the per-ns worker task queue even if there is a namespace-level constraint.
  • Refactor some of dynamicconfig: replace most of inMemoryClient and noopClient with basicClient.
  • Replace crazy integration test hack in noopClient with a more reasonable override.
  • Move PerNSWorkerTaskQueue to primitives to avoid import cycles.
  • Move SystemLocalNamespace and related constaints to primitives to avoid import cycles.
  • Add structured default value for task queue partition count to use 1 partition for the per-ns worker task queue, and also all internal system namespace task queues.
  • Add convenience function for task queue partitions to enforce using the structured default.

Why? To override partition count and update ack interval for per-ns worker task queues to reduce load with large numbers of namespaces.

How did you test it? new unit test, existing tests

Potential risks new bugs in dynamic config

Is hotfix candidate?

dnr avatar Aug 08 '22 20:08 dnr