[SERVER-22667] Componentize the sharding balancer Created: 16/Feb/16  Updated: 16/May/16  Resolved: 27/Apr/16

Status: Closed
Project: Core Server
Component/s: Sharding
Affects Version/s: None
Fix Version/s: 3.3.6

Type: Task Priority: Major - P3
Reporter: Kaloian Manassiev Assignee: Kaloian Manassiev
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by SERVER-22668 Unit-tests for the sharding balancer ... Closed
is depended on by SERVER-22669 CSRS balancer supports parallel migra... Closed
Backwards Compatibility: Fully Compatible
Sprint: Sharding 12 (04/01/16), Sharding 14 (05/13/16)
Participants:

 Description   

Split the sharding balancer into two independent parts - statistics collection and dispatching migrations and put as much as possible behind abstractions so they can be unit-tested.



 Comments   
Comment by Githook User [ 29/Apr/16 ]

Author:

{u'username': u'kaloianm', u'name': u'Kaloian Manassiev', u'email': u'kaloian.manassiev@mongodb.com'}

Message: SERVER-22667 Balancer chunk selection policy interface

This interface is responsible for combining information of the shard
utilization and the chunk distribution and providing a list of chunks,
which need to be moved around. By abstracting this logic behind an
interface, we can mock it and test the actual chunk moves.

No functional changes.
Branch: master
https://github.com/mongodb/mongo/commit/e1ca46b045b85aaf546eb831448712db0de69b73

Comment by Githook User [ 28/Apr/16 ]

Author:

{u'username': u'kaloianm', u'name': u'Kaloian Manassiev', u'email': u'kaloian.manassiev@mongodb.com'}

Message: SERVER-22667 Balancer policy tests need to initialize the shard name
Branch: master
https://github.com/mongodb/mongo/commit/35605290275950f1fabdf1f0a66f4284919ef743

Comment by Githook User [ 28/Apr/16 ]

Author:

{u'username': u'kaloianm', u'name': u'Kaloian Manassiev', u'email': u'kaloian.manassiev@mongodb.com'}

Message: SERVER-22667 Cleanup ChunkManager encapsulation

Makes internal-only logic private to the class and removes some
unnecessary friendship declarations.
Branch: master
https://github.com/mongodb/mongo/commit/6db57c33cd63157d7e53dcdba612bea5c0659f2b

Comment by Githook User [ 27/Apr/16 ]

Author:

{u'username': u'ksuarz', u'name': u'Kyle Suarez', u'email': u'kyle.suarez@mongodb.com'}

Message: Revert "SERVER-22667 Balancer chunk selection policy interface"

This reverts commit 2cf31060a74ac438b58c5150ba30da4144112744.
Branch: master
https://github.com/mongodb/mongo/commit/21fa9ccd4e12d7a94a95d98e1e984ada2ef65548

Comment by Githook User [ 27/Apr/16 ]

Author:

{u'username': u'kaloianm', u'name': u'Kaloian Manassiev', u'email': u'kaloian.manassiev@mongodb.com'}

Message: SERVER-22667 Balancer chunk selection policy interface

This interface is responsible for combining information of the shard
utilization and the chunk distribution and providing a list of chunks,
which need to be moved around. By abstracting this logic behind an
interface, we can mock it and test the actual chunk moves.

No functional changes.
Branch: master
https://github.com/mongodb/mongo/commit/2cf31060a74ac438b58c5150ba30da4144112744

Comment by Githook User [ 27/Apr/16 ]

Author:

{u'username': u'kaloianm', u'name': u'Kaloian Manassiev', u'email': u'kaloian.manassiev@mongodb.com'}

Message: SERVER-22667 Move multiSplit to shardutil

Moves the Chunk::multiSplit command to the shardutil namespace and makes
it accept all necessary arguments. This change helps go in the direction
of making Chunk an interface purely for caching.
Branch: master
https://github.com/mongodb/mongo/commit/ee3984a116d7c2c40f528ae15f12bf2966b637b7

Comment by Githook User [ 25/Apr/16 ]

Author:

{u'username': u'kaloianm', u'name': u'Kaloian Manassiev', u'email': u'kaloian.manassiev@mongodb.com'}

Message: SERVER-22667 Introduce a MigrateInfoVector type
Branch: master
https://github.com/mongodb/mongo/commit/8d7b139aa86c6deebc4ea46ce3d3c8ce89655b60

Comment by Githook User [ 22/Apr/16 ]

Author:

{u'username': u'kaloianm', u'name': u'Kaloian Manassiev', u'email': u'kaloian.manassiev@mongodb.com'}

Message: SERVER-22667 Remove usages of ShardConnection from chunk.cpp
Branch: master
https://github.com/mongodb/mongo/commit/cea4088f658a60adfd1468758d184e871ed1f273

Comment by Githook User [ 12/Apr/16 ]

Author:

{u'username': u'kaloianm', u'name': u'Kaloian Manassiev', u'email': u'kaloian.manassiev@mongodb.com'}

Message: SERVER-22667 Remove the shard_util library
Branch: master
https://github.com/mongodb/mongo/commit/85e169cb062c2e5c3ebf9a950ced369e1eaaa8ff

Comment by Githook User [ 12/Apr/16 ]

Author:

{u'username': u'kaloianm', u'name': u'Kaloian Manassiev', u'email': u'kaloian.manassiev@mongodb.com'}

Message: SERVER-22667 Move Chunk::pickSplitVector/MedianKey out of Chunk

The pickSplitVector and selectMedianKey utilities logically belong to the
balancer, so moving them out of the Chunk class and into shard_util.

The changes to balance.cpp have no functional effect, just rearranging
them to better match the balancer control flow and to make the subsequent
changes easier to follow.
Branch: master
https://github.com/mongodb/mongo/commit/3c5ee8b721d3ea5b18d22527fcbea4e2e15e79ad

Generated at Thu Feb 08 04:01:05 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.