microsoft / microsoft/durabletask-netherite

Implement smarter partition balancer

Open
#107 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
C#
Stars
239
Forks
37
Avg merge
1d 10h
Merged PRs (30d)
2

Description

Currently we use EventHubsProcessor (which is part of the EH client library) to balance partitions across nodes. However, this mechanism is unaware of load inside the partitions, and simply balances the number of partitions. For example, on three nodes and 12 partitions, each node will have four random partitions. This is an issue; for example, if only three partitions are busy, we can be unlucky and all three busy partitions are placed on the same node, wasting the other two nodes.

At some point we should perhaps implement a better partition balancer. This is a non-issue for planned K8s implementations since it does not use EventHubs at all.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading how EventHubsProcessor currently balances partitions across nodes and how partition load could be observed. Define the balancing behavior for uneven workloads, then verify that busy partitions are distributed rather than concentrated on one node; the issue provides no file or test entry point.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.