quickwit-oss / quickwit-oss/quickwit

Move away from using the gRPC address of a node as the primary key in client pool

Open
#3,333 0 comments 0 reactions 1 assignee View on GitHub

@guilload is already working on this.

Since May 15, 2023.

bug
Dominant language
Rust
Stars
11.7k
Forks
597
Avg merge
2d 22h
Merged PRs (30d)
37

Description

  1. Node foo joins the cluster: Node { NodeId: "foo", GenerationId: 0, grpc_addr: "::1:12345" }
  2. Client pool: Pool {"::1::12345": "foo:0" }
  3. Node foo restarts and rejoins the cluster: Node { NodeId: "foo", GenerationId: 1, grpc_addr: "::1:12345" }
  4. Chitchat detects the new node, client pool receives add event and replaces node: Pool {"::1::12345": "foo:1" }
  5. Chitchat detects the dead node, client pool receives remove event and deletes node: Pool {}
  6. Chitchat node key update, client pool receives update event and adds node: Pool {"::1::12345": "foo:1" }

Things go well if the dead node is removed before the new node is added. Things go ok if the new node is updated frequently. Things go wrong if the node is not updated frequently or 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.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.