Hi, we are starting to evaluate cockroach. One interesting aspect is crdb’s fluid shard management, where ranges could be dynamically split/merged. Is there any existing doc regarding to the implementation details?
There’s a small section on splitting/merging ranges in our comprehensive design doc. It’s worth noting that we don’t currently implement merges, though, only splits.
If you’re looking for more detail on the design of cockroachdb, your best bets are to check out the RFCs directory (which, for example, includes docs on range leases and rebalancing), our blog posts, or to ask questions on the forums.
Is there anything particular you’d like to know that isn’t covered in the doc?
Thanks for the info!
I would like to know even more details. For example, the doc mentioned split is done locally first. How is this done exactly (rocksdb got cloned by hard link?)? Does it have impact on on-going traffic? What about changes to the meta2 table? Do we insert a row to cover the left side of the split? What about recovery? How is meta2 range split?..