[tarantool-patches] Re: [PATCH vshard 0/7] Replicaset lock and bucket pin

Georgy Kirichenko georgy at tarantool.org
Fri Mar 30 07:15:24 MSK 2018


Seems to be Ok

On Wednesday, March 28, 2018 12:24:07 AM MSK Vladislav Shpilevoy wrote:
> Branch: http://github.com/tarantool/tarantool/tree/gh-71-bucket-pin-lock
> Issue: https://github.com/tarantool/vshard/issues/71
> 
> Replicaset lock makes it invisible for the rebalancer - a locked
> replicaset can neither receive new buckets nor send its own.
> Bucket pin blocks this concrete bucket sending - it will stay on a
> replicaset to which pinned, until it is unpinned. Pinning all
> replicaset buckets is not the same as replicaset locking - even if
> you pin all buckets, the non-locked replicaset still can receive
> new buckets.
> 
> Replicaset lock allows, for example, to separate a replicaset for
> testsing from production replicasets. Or to preserve some
> application metadata, that must not be sharded for a while. Bucket
> pin allows the same, but in the smaller scope.
> 
> Difference between replicaset lock and all buckets pinning is
> motivated by ability to button-up an entire replicaset.
> 
> Mostly locked and pinned buckets affect the rebalancing algorithm,
> which must ignore locked replicasets, and take pinned buckets into
> account, attempting to reach the best possible balance. It is not
> a trivial task, because a user can pin to a replicaset so many
> buckets, that a perfect balance is unreachable.
> 
> Vladislav Shpilevoy (7):
>   rebalancer: allow to lock a replicaset from rebalancing
>   rebalancer: remember the currently sending bucket id
>   storage: rework recovery
>   storage: wrap bucket status checks into functions
>   rebalancer: introduce pinned bucket concept into rebalancer algo
>   storage: open public API to pin/unpin buckets
>   rfc: add RFC for replicaset lock and bucket pin
> 
>  docs/RFC/replicaset_lock_and_bucket.md            |  84 ++++
>  test/rebalancer/box_1_a.lua                       |   2 +-
>  test/rebalancer/rebalancer_lock_and_pin.result    | 503
> ++++++++++++++++++++++ test/rebalancer/rebalancer_lock_and_pin.test.lua  |
> 224 ++++++++++ test/rebalancer/restart_during_rebalancing.result |   4 +
>  test/storage/recovery.result                      |  85 +++-
>  test/storage/recovery.test.lua                    |  38 +-
>  test/storage/storage.result                       |   7 +
>  test/unit/rebalancer.result                       | 333 +++++++++++++-
>  test/unit/rebalancer.test.lua                     |  79 ++++
>  vshard/cfg.lua                                    |   3 +-
>  vshard/consts.lua                                 |   1 +
>  vshard/error.lua                                  |  12 +-
>  vshard/replicaset.lua                             | 105 +++--
>  vshard/router/init.lua                            |  46 +-
>  vshard/storage/init.lua                           | 418 +++++++++++-------
>  16 files changed, 1713 insertions(+), 231 deletions(-)
>  create mode 100644 docs/RFC/replicaset_lock_and_bucket.md
>  create mode 100644 test/rebalancer/rebalancer_lock_and_pin.result
>  create mode 100644 test/rebalancer/rebalancer_lock_and_pin.test.lua

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: This is a digitally signed message part.
URL: <https://lists.tarantool.org/pipermail/tarantool-patches/attachments/20180330/868b5a09/attachment.sig>


More information about the Tarantool-patches mailing list