Skip to content

Cadence Shard Manager #6862

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
demirkayaender opened this issue Apr 28, 2025 · 0 comments
Open

Cadence Shard Manager #6862

demirkayaender opened this issue Apr 28, 2025 · 0 comments
Labels
improvement Incremental improvement for existing features

Comments

@demirkayaender
Copy link
Contributor

Cadence has been using consistent hashing based host-shard management. However this logic comes up with significant drawbacks which come to surface at high scale. Issues include:

  • Shard Load Skew
  • Shard Data Payload Skew
  • Heterogeneous Host SKUs
  • Shared Hosts
  • Individual Host Problems
  • Shutdowns, Restarts, Host Turn-up

and the list goes on.

With consistent hashing, shards are pinned to hosts. When a host is having a problem due to the factors listed above, adding a new host doesn't guarantee taking load from the problematic host. Similarly, removing a host might just shift the issues to the next host. Even though Cadence uses and recommends using many hosts in a cluster (~16K), these issues would still happen.

A host, as long as it reports itself as healthy to the membership protocol, could get traffic even if it was shutting down or just starting up.

With a high frequency, high availability environments, this logic poses an availability risk. Cadence will implement a load aware and smarter Shard Manager that can move shards among hosts to uniformly distribute the traffic and gracefully handle host maintenance events.

@demirkayaender demirkayaender added the improvement Incremental improvement for existing features label Apr 28, 2025
@demirkayaender demirkayaender moved this to In progress in Roadmap Apr 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
improvement Incremental improvement for existing features
Projects
Status: In progress
Development

No branches or pull requests

1 participant