Skip to content
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

Multiple Partitions Per Process #35

Open
danthegoodman1 opened this issue May 28, 2022 · 1 comment
Open

Multiple Partitions Per Process #35

danthegoodman1 opened this issue May 28, 2022 · 1 comment
Labels
enhancement New feature or request

Comments

@danthegoodman1
Copy link
Owner

Right now the gossip manager takes a single partition to join to the cluster. At thousands of nodes this becomes very noisy with just gossip updates, and is an inefficient use of resources.

We should allow a single process to become multiple partitions and allow a gossipmanager to manage all of them like raft multigroup.

We can leverage Go's concurrency model to have a single process on 4 cores manage 4 partitions with 1 gossipmanager handling them all.

@danthegoodman1 danthegoodman1 added the enhancement New feature or request label May 28, 2022
@danthegoodman1 danthegoodman1 changed the title UltraQueue MultiGroups Multiple Partitions Per Process Jun 8, 2022
@danthegoodman1
Copy link
Owner Author

danthegoodman1 commented Jun 8, 2022

Thinking about this more, it shouldn't be too hard to make this change. Major changes:

  1. Initialization of partitions
  2. GossipManager needs to know about multiple partitions
  3. GossipManager needs to send out info about multiple partitions for scanning topic lengths (array of these structs now)
  4. Partitions should be aware of what other partitions on the same node has so they can favor the local partition when they receive a dequeue request and can't fulfill it
  5. The GossipName cannot be the partition name anymore
  6. We need to map remote partitions to node names so that when a node leaves we can get rid of all partitions it managed

Another point is heartbeating. If the gossip stops heartbeating we are losing multiple partitions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant