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

Automate incrementally growing a cluster #1517

Closed
wohali opened this issue Aug 7, 2018 · 7 comments
Closed

Automate incrementally growing a cluster #1517

wohali opened this issue Aug 7, 2018 · 7 comments

Comments

@wohali
Copy link
Member

wohali commented Aug 7, 2018

@janl:

With this we will be able to grow clusters one by one instead of hitting a wall when eventually each shard lives on a single machine. E.g. when you add a node to the cluster, all other nodes share 1/Nth of their data with the new node, and everything can keep going. Same for removing a node and shrinking the cluster.

Couchbase has this and it is really nice.

Step A: move a shard around...

@janl
Copy link
Member

janl commented Jan 25, 2019

@nickva is working on a shard splitting proposal which would be the technical foundation of this,

@wohali
Copy link
Member Author

wohali commented Jul 11, 2019

Shard splitting landed in #1920 and related. Shard merging does not yet exist, but the shard splitting gives us most of the infrastructure necessary to make it happen.

We still lack tools to visualise node balancing.

@kocolosk
Copy link
Member

It would be great to have full shard rebalancing across nodes in 3.0, but I don't think the timelines are going to work out.

@wohali
Copy link
Member Author

wohali commented Aug 26, 2019

@nickva is there any chance of adding shard merging before 3.0?

@nickva
Copy link
Contributor

nickva commented Aug 26, 2019

@wohali I am thinking probably not.

On the surface it would appear it's just the reverse of splitting, but there are some corner cases to handle that make things a bit more complicated such as:

  1. What happens to update sequences when we merge shards.

  2. Since we only split by 2 now, we have a more constrained set of possible shard overlap configurations, such that shards either completely enclose other shards' ranges, or are completely enclosed by other shards' ranges. With merges and splits we'd have arbitrary overlaps. Even though I think our current logic will handle it , it would require extra care to test and all the new corner cases

  3. Would need to do some job managements updates, say, to avoid having jobs that both split and merge a shard at the same time. This is not difficult, but it would just be extra work and testing.

All in all, it is not impossible but it's also probably too much work for 3.x. If FDB wasn't in play, it we'd likely head that way, and even add automatic rebalancing, but now, kind of feels less motivating to continue on that path.

@wohali
Copy link
Member Author

wohali commented Aug 26, 2019

@nickva then we may simply want to close this as WONTFIX and point people towards something like https://github.com/neighbourhoodie/couch-continuum , which is an ugly workaround but at least reliable. What do you think?

@nickva nickva self-assigned this Aug 27, 2019
@nickva nickva added the wontfix label Aug 27, 2019
@nickva
Copy link
Contributor

nickva commented Aug 27, 2019

@wohali Agree. Closing as wontfix as suggested.

https://github.com/neighbourhoodie/couch-continuum seems like a good tool

@nickva nickva closed this as completed Aug 27, 2019
Roadmap automation moved this from Proposed for 3.x to Done Aug 27, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Roadmap
  
Done
Development

No branches or pull requests

4 participants