Skip to content

Conversation

@Shaddoll
Copy link
Owner

@Shaddoll Shaddoll commented May 5, 2023

What changed?

Why?

How did you test it?

Potential risks

Release notes

Documentation Changes

davidporter-id-au and others added 23 commits March 27, 2023 10:38
* Adds a small test to catch issues with deadlocks
cadence-workflow#5185)

* remove validation & test for add search attribute with no advanced config

- Remove validation for Advance Visibility Store
- Add Advance Visibility Config check before update ElasticSearch/OpenSearch mapping
- Remove co-related test for 'no advanced config'

* Update CHANGELOG.md

Update CHANGELOG.md

* Add warn level message if skip updating OpenSearch/ElasticSearch mapping

* Add warn level message and add validSearchAttributes in development.yaml

---------

Co-authored-by: Quanzheng Long <[email protected]>
* add shardid tag to log

* remove counter for overall scope

* fix lint
What changed?
Added a sharding layer to the NoSQL persistence stack so that Cadence can use multiple Cassandra clusters at once in a physically sharded manner.

Cadence is a heavily storage-bounded system, so the limits for the load per Cadence cluster is strictly limited by the underlying storage system. Given the massive adoption of Cadence at Uber, this scale limitation forces us to create more Cadence clusters than we want to operate. This capability will let us have one or two orders of magnitude larger Cadence clusters than we have today.

Note that this feature only enables bootstrapping a brand-new cluster with multiple databases behind it. Resharding is designed but not implemented yet.

Why?
So that a Cadence cluster can be bootstrapped with multiple Cassandra clusters powering it.

How did you test it?
Added unit tests. Ran samples and tested bench tests in a staging environment.

Potential risks
Since this change significantly changes the low-level persistence logic, it can cause data loss if something goes terribly wrong.

Release notes
The change is backward compatible. Existing Cadence cluster configurations can be updated, if desired, to use the sharded NoSQL config format. However, they must continue having a single shard since Cadence still doesn't have the ability to reshard data.

Documentation Changes
There is a sample config file included in this PR that shows how to make use of the feature in a new cluster.
…ts (cadence-workflow#5218)

* add tasklist traffic metrics for decision task

* add logger, remove tasklistID

* add taskListCombined

* add more fields

* add forward metric and source

* fix nil

* add tlMgr metrics

* add more metrics

* remove tlMgr metric

* only emit metrics if not sticky and not forwarded

* create new metrics name for better distinction

* add new emitted info

* change nil to empty string

* add domain and tasklist name tags

* add metrics for forwarded tasklist

* new metrics for activity task, rename metrics to allow aggregation of both type of tasks

* clean up logging

* clean up changes in emitInfoOrDebugLog()

* resolve comments

* improve some logic

* fix small error
Fixed the bug where it refuse to emit traffic metrics
Fixes docker container
…ow#5113)

* Bench: possibility to pass frontend address using env

* fix the quotes
…#5245)

* add hostinfo log

* Revert "Switch to thin, versioned ES clients (cadence-workflow#5217)"

This reverts commit 28ac3ca.

* add tasklist name to see if can distinguish partitioned tasklist

* add hostname field in params, matchinEngine, and emit that field through logger

* Add GetHostName() in resourceTest

* add hostname and oss logger

* pass hostname into resourceImpl.go

* add hostname tag to CadenceTasklistRequests

* remove redundant logger

* Remove unnecessary changes to dynamic config and clean up logging

* Revert "Revert "Switch to thin, versioned ES clients (cadence-workflow#5217)""

This reverts commit 26d9baf.

* add hostname injection into server.go and add hostname field into config.go

* Revert "add hostname injection into server.go and add hostname field into config.go"

This reverts commit 5b7cfd4.

* add hostname into matching's NewConfig method parameters

* add hostname injection into cadence history

* add hostname injection into cadence frontend

* add hostname parameter into frontend test

* add hostname parameter into additional tests

* add hostname parameter into tasklist config and additional tests

* add hostname parameter into cadence worker

* add test to test whether newly added feature won't break anything

* dummy commit

* describe HostName in comments
* Remove tcheck dependency

* remove thrift override

* bring apache/thrift back

* remove apache/thrift check

* go mod tidy
* Pull update from idl repo (cadence-workflow#5138)

* Prepare idl change for workflow isolation (cadence-workflow#5139)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.