tarantool / vshard

The new generation of sharding based on virtual buckets
Other
100 stars 30 forks source link

Individual buckets shouldn't be rw-locked by rebalancer while `map_callrw()` is in progress #350

Open Gerold103 opened 2 years ago

Gerold103 commented 2 years ago

The problem is the following:

The problem is that the rebalancer really competes only with map requests. It shouldn't be a problem to allow new per-bucket rw requests while map_callrw() is running. They are not supposed to be long, so they won't starve the rebalancer.

Moreover, it looks really strange that map_callrw promises you that the whole cluster is writeable and yet you can't make any callrw requests even to individual buckets.

The correct algorithm would be:

Reported by @R-omk.