[SERVER-25202] Make MigrationManager able to schedule new migrations while there are migrations outstanding Created: 21/Jul/16  Updated: 02/Sep/16  Resolved: 12/Aug/16

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

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
Duplicate
is duplicated by SERVER-25124 Remove recursion from the MigrationMa... Closed
Backwards Compatibility: Fully Compatible
Sprint: Sharding 18 (08/05/16), Sharding 2016-08-29
Participants:
Linked BF Score: 0

 Description   

In order to be able to support multiple manual moveChunk requests for the same collection (but different shards) we need to change the API of the MigrationManager so new migrations can be scheduled on it, while there are migrations outstanding.

In order to do this, we will introduce a scheduleMigration(MigrationRequest) method, which will return a Notification object, which can be waited on for the purposes of obtaining the results of that migration request.



 Comments   
Comment by Githook User [ 12/Aug/16 ]

Author:

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

Message: SERVER-25202 Support parallel manual chunk migrations

This change switches the MigrationManager to use the UsedResourcesMap
class for acquiring the collection distributed lock on first migration
attempt and dropping it on the last.

This allows it to support parallel manual migrations.
Branch: master
https://github.com/mongodb/mongo/commit/0c6bbea55ee45db0813043b470246fc62501a38c

Comment by Githook User [ 03/Aug/16 ]

Author:

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

Message: SERVER-25202 Expose lock/unlock control on DistLockManager

This change exposes the lock/unlock methods as public on the
DistLockManager. This enables the scenario of being able to pass locks
between threads, which is necessary for the parallel balancer.

Also makes the sharding balancer acquire the balancer distributed lock
permanently.
Branch: master
https://github.com/mongodb/mongo/commit/604b2e18bd8b7c0affb601f53ed4b57d18d72947

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