[SERVER-56307] The chunk migration "convergence algorithm" is very primitive Created: 23/Apr/21  Updated: 29/Oct/23  Resolved: 18/Jun/21

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 4.2.15, 4.4.7, 4.0.26, 5.0.0-rc3, 5.1.0-rc0

Type: Improvement Priority: Major - P3
Reporter: Kaloian Manassiev Assignee: Paolo Polato
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
Depends
Documented
is documented by DOCS-14449 Investigate changes in SERVER-56307: ... Closed
Duplicate
is duplicated by SERVER-57634 moveChunk catch up phase times out wh... Closed
Problem/Incident
Related
related to SERVER-57634 moveChunk catch up phase times out wh... Closed
is related to SERVER-56185 Investigate possible improvements wit... Closed
Backwards Compatibility: Fully Compatible
Backport Requested:
v5.0, v4.4, v4.2, v4.0
Sprint: Sharding EMEA 2021-05-17
Participants:
Linked BF Score: 172

 Description   

The chunk migration "convergence algorithm" is the logic which the donor and participant implement in order for the donor to decide when to enter the critical section and block writes.

The current implementation relies on the recipient being capable of catching up on every modification occurred during the migration and reaching the STEADY state to allow the donor to enter the critical section.

It has been detected that under situations of heavy load such condition may be never met, as the rate of incoming modifications is bigger than what can be transferred to the recipient.

Potetial fixes are:

(1) The donor sends to the recipient some measure of how much mods are left, so it can enter the steady state based on some delta, rather than zero.

(2) The donor decides to enter the critical section not based on whether the recipient has decided to enter steady-state (which includes a wait for majority)
(Option 2 might not be appropriate, though because it adds the recipient's majority wait under the critical section)



 Comments   
Comment by Githook User [ 23/Jul/21 ]

Author:

{'name': 'andf-mongodb', 'email': 'andrew.feierabend@mongodb.com', 'username': 'andf-mongodb'}

Message: DOCSP-16424 remove SERVER-56307 from 4.0.25 release notes top5
Branch: v4.2.15
https://github.com/mongodb/docs/commit/ada6934168b1b4f406a8b5d90c3b6b979c1cec99

Comment by Githook User [ 23/Jun/21 ]

Author:

{'name': 'Paolo Polato', 'email': 'paolo.polato@mongodb.com', 'username': 'ppolato'}

Message: SERVER-56307 fix the convergence criteria to end the catchup phase

(cherry picked from commit 49209fc34e19bbb15405b0927e38ff3e7d9e9dc5)
(cherry picked from commit cbddd17826a934022c4be6287afc3dfde8206ad8)
Branch: v4.0
https://github.com/mongodb/mongo/commit/3f53fa25e014fbe85d35220612359b8006f7e457

Comment by Githook User [ 23/Jun/21 ]

Author:

{'name': 'Paolo Polato', 'email': 'paolo.polato@mongodb.com', 'username': 'ppolato'}

Message: SERVER-56307 Allow the donor to enter the critical section when the untransferred mods are within a convergence threshold.
Branch: v4.0
https://github.com/mongodb/mongo/commit/d6ffe85b864709e1da57e037b1ad3b74d77b6a45

Comment by Githook User [ 21/Jun/21 ]

Author:

{'name': 'Paolo Polato', 'email': 'paolo.polato@mongodb.com', 'username': 'ppolato'}

Message: SERVER-56307 fix the convergence criteria to end the catchup phase

(cherry picked from commit 49209fc34e19bbb15405b0927e38ff3e7d9e9dc5)
Branch: v5.0
https://github.com/mongodb/mongo/commit/c855011857e09e31498acf8a45fab630589aaf7c

Comment by Githook User [ 21/Jun/21 ]

Author:

{'name': 'Paolo Polato', 'email': 'paolo.polato@mongodb.com', 'username': 'ppolato'}

Message: SERVER-56307 fix name of server parameter

(cherry picked from commit d40fb7099961fa73de106f390bb9396676bac0bc)
(cherry picked from commit 388d5c4ae92e3f63b1fcc8181702167a9b1f6c5e)
Branch: v5.0
https://github.com/mongodb/mongo/commit/a3caa74ad14fbe1bbbb68382548393a3db29fdb1

Comment by Githook User [ 21/Jun/21 ]

Author:

{'name': 'Paolo Polato', 'email': 'paolo.polato@mongodb.com', 'username': 'ppolato'}

Message: SERVER-56307 Ensure that the estimated size of an object id is always bigger than zero.

(cherry picked from commit 7d0aee4c7dec9380c3ef8be20c31b1334b27cd20)
Branch: v5.0
https://github.com/mongodb/mongo/commit/aa716ebc9b4459881540b657986859e6ef3e15c6

Comment by Githook User [ 21/Jun/21 ]

Author:

{'name': 'Paolo Polato', 'email': 'paolo.polato@mongodb.com', 'username': 'ppolato'}

Message: SERVER-56307 Allow the donor to enter the critical section when the untransferred mods are within a convergence threshold.

(cherry picked from commit 44bdd2c38fd5c80881e15f40e2da6cacf5f35eb4)
Branch: v5.0
https://github.com/mongodb/mongo/commit/c35c05f6e55a44a15972040f8c552a18a7725dfa

Comment by Githook User [ 21/Jun/21 ]

Author:

{'name': 'Paolo Polato', 'email': 'paolo.polato@mongodb.com', 'username': 'ppolato'}

Message: SERVER-56307 fix the convergence criteria to end the catchup phase

(cherry picked from commit 49209fc34e19bbb15405b0927e38ff3e7d9e9dc5)
Branch: v4.2
https://github.com/mongodb/mongo/commit/cbddd17826a934022c4be6287afc3dfde8206ad8

Comment by Githook User [ 21/Jun/21 ]

Author:

{'name': 'Paolo Polato', 'email': 'paolo.polato@mongodb.com', 'username': 'ppolato'}

Message: SERVER-56307 Allow the donor to enter the critical section when the untransferred mods are within a convergence threshold.

(cherry picked from commit 3394ccd20ee2a77f3526c481799943c7418bff00)
Branch: v4.2
https://github.com/mongodb/mongo/commit/f66379b24b696e5591e1a923ba63c816568be838

Comment by Githook User [ 21/Jun/21 ]

Author:

{'name': 'Paolo Polato', 'email': 'paolo.polato@mongodb.com', 'username': 'ppolato'}

Message: SERVER-56307 fix the convergence criteria to end the catchup phase

(cherry picked from commit 49209fc34e19bbb15405b0927e38ff3e7d9e9dc5)
Branch: v4.4
https://github.com/mongodb/mongo/commit/dc9ec40e350511d6f74b299cbf52b38609a5c947

Comment by Githook User [ 21/Jun/21 ]

Author:

{'name': 'Paolo Polato', 'email': 'paolo.polato@mongodb.com', 'username': 'ppolato'}

Message: SERVER-56307 fix name of server parameter

(cherry picked from commit d40fb7099961fa73de106f390bb9396676bac0bc)
Branch: v4.4
https://github.com/mongodb/mongo/commit/d2540340cdd788dc8a54a0030166c0baaa3c26a9

Comment by Githook User [ 21/Jun/21 ]

Author:

{'name': 'Paolo Polato', 'email': 'paolo.polato@mongodb.com', 'username': 'ppolato'}

Message: SERVER-56307 Allow the donor to enter the critical section when the untransferred mods are within a convergence threshold.

(cherry picked from commit f32a3d08fb7128de3c1b43b8478a5e4626101b89)
Branch: v4.4
https://github.com/mongodb/mongo/commit/c84c7f406a7fc0ea5a63a5cc807687e730580a70

Comment by Githook User [ 18/Jun/21 ]

Author:

{'name': 'Paolo Polato', 'email': 'paolo.polato@mongodb.com', 'username': 'ppolato'}

Message: SERVER-56307 fix the convergence criteria to end the catchup phase
Branch: master
https://github.com/mongodb/mongo/commit/49209fc34e19bbb15405b0927e38ff3e7d9e9dc5

Comment by Githook User [ 16/Jun/21 ]

Author:

{'name': 'Paolo Polato', 'email': 'paolo.polato@mongodb.com', 'username': 'ppolato'}

Message: SERVER-56307 fix name of server parameter
Branch: SERVER-34632
https://github.com/mongodb/mongo/commit/d40fb7099961fa73de106f390bb9396676bac0bc

Comment by Githook User [ 15/Jun/21 ]

Author:

{'name': 'Paolo Polato', 'email': 'paolo.polato@mongodb.com', 'username': 'ppolato'}

Message: Revert "SERVER-56307 Allow the donor to enter the critical section when the untransferred mods are within a convergence threshold."

This reverts commit 3394ccd20ee2a77f3526c481799943c7418bff00.
Branch: v4.2
https://github.com/mongodb/mongo/commit/6833d9572ee12cbf9dd2e74a006c38cc35416fde

Comment by Jonathan Streets (Inactive) [ 15/Jun/21 ]

removed 5.0.0-rc2 and 4.4.7 fixVersions to reflect the reverts.

Comment by Githook User [ 15/Jun/21 ]

Author:

{'name': 'Paolo Polato', 'email': 'paolo.polato@mongodb.com', 'username': 'ppolato'}

Message: Revert "SERVER-56307 Allow the donor to enter the critical section when the untransferred mods are within a convergence threshold."

This reverts commit 44bdd2c38fd5c80881e15f40e2da6cacf5f35eb4.
Branch: v5.0
https://github.com/mongodb/mongo/commit/0e1797f37d8f9a4997a5817539a547e5e3107eb5

Comment by Githook User [ 15/Jun/21 ]

Author:

{'name': 'Paolo Polato', 'email': 'paolo.polato@mongodb.com', 'username': 'ppolato'}

Message: Revert "SERVER-56307 Ensure that the estimated size of an object id is always bigger than zero."

This reverts commit 7d0aee4c7dec9380c3ef8be20c31b1334b27cd20.
Branch: v5.0
https://github.com/mongodb/mongo/commit/73695f4b643527b67d972df57b765306063b94c2

Comment by Githook User [ 15/Jun/21 ]

Author:

{'name': 'Paolo Polato', 'email': 'paolo.polato@mongodb.com', 'username': 'ppolato'}

Message: Revert "SERVER-56307 fix name of server parameter"

This reverts commit 388d5c4ae92e3f63b1fcc8181702167a9b1f6c5e.
Branch: v5.0
https://github.com/mongodb/mongo/commit/faddcb44268d796c80306dfaffbd979f204f01ae

Comment by Githook User [ 15/Jun/21 ]

Author:

{'name': 'Paolo Polato', 'email': 'paolo.polato@mongodb.com', 'username': 'ppolato'}

Message: Revert "SERVER-56307 Allow the donor to enter the critical section when the untransferred mods are within a convergence threshold."

This reverts commit f32a3d08fb7128de3c1b43b8478a5e4626101b89.
Branch: v4.4
https://github.com/mongodb/mongo/commit/9fa32db73d2ccd331b7e0b871b3a4262ca9e9be0

Comment by Githook User [ 14/Jun/21 ]

Author:

{'name': 'Paolo Polato', 'email': 'paolo.polato@mongodb.com', 'username': 'ppolato'}

Message: SERVER-56307 fix name of server parameter

(cherry picked from commit d40fb7099961fa73de106f390bb9396676bac0bc)
Branch: v5.0
https://github.com/mongodb/mongo/commit/388d5c4ae92e3f63b1fcc8181702167a9b1f6c5e

Comment by Githook User [ 14/Jun/21 ]

Author:

{'name': 'Paolo Polato', 'email': 'paolo.polato@mongodb.com', 'username': 'ppolato'}

Message: SERVER-56307 fix name of server parameter
Branch: master
https://github.com/mongodb/mongo/commit/d40fb7099961fa73de106f390bb9396676bac0bc

Comment by Githook User [ 04/Jun/21 ]

Author:

{'name': 'andf-mongodb', 'email': 'andrew.feierabend@mongodb.com', 'username': 'andf-mongodb'}

Message: DOCSP-16424 remove SERVER-56307 from 4.0.25 release notes top5
Branch: v4.0
https://github.com/mongodb/docs/commit/13d49157f9c53f8897d73fb02c4f9893dd56ca51

Comment by Githook User [ 04/Jun/21 ]

Author:

{'name': 'andf-mongodb', 'email': 'andrew.feierabend@mongodb.com', 'username': 'andf-mongodb'}

Message: DOCSP-16424 remove SERVER-56307 from 4.0.25 release notes top5
Branch: v4.2
https://github.com/mongodb/docs/commit/ada6934168b1b4f406a8b5d90c3b6b979c1cec99

Comment by Githook User [ 04/Jun/21 ]

Author:

{'name': 'andf-mongodb', 'email': 'andrew.feierabend@mongodb.com', 'username': 'andf-mongodb'}

Message: DOCSP-16424 remove SERVER-56307 from 4.0.25 release notes top5
Branch: v4.4
https://github.com/mongodb/docs/commit/34cdcc863c2a747165db7b7072365533d38b8f41

Comment by Githook User [ 04/Jun/21 ]

Author:

{'name': 'andf-mongodb', 'email': 'andrew.feierabend@mongodb.com', 'username': 'andf-mongodb'}

Message: DOCSP-16424 remove SERVER-56307 from 4.0.25 release notes top5
Branch: master
https://github.com/mongodb/docs/commit/0a7b049fcbe7d018109e22d2219424bfeea16eab

Comment by Githook User [ 04/Jun/21 ]

Author:

{'name': 'Paolo Polato', 'email': 'paolo.polato@mongodb.com', 'username': 'ppolato'}

Message: Revert "SERVER-56307 Allow the donor to enter the critical section when the untransferred mods are within a convergence threshold."

This reverts commit 40e1693cb180fd17ec6fa0e1b32acc21769c0b85.
Branch: v4.0
https://github.com/mongodb/mongo/commit/89306fde6167fa12ea6e30d61e05791e8e214e55

Comment by Githook User [ 21/May/21 ]

Author:

{'name': 'Paolo Polato', 'email': 'paolo.polato@mongodb.com', 'username': 'ppolato'}

Message: SERVER-56307 Allow the donor to enter the critical section when the untransferred mods are within a convergence threshold.
Branch: v4.2
https://github.com/mongodb/mongo/commit/3394ccd20ee2a77f3526c481799943c7418bff00

Comment by Githook User [ 21/May/21 ]

Author:

{'name': 'Paolo Polato', 'email': 'paolo.polato@mongodb.com', 'username': 'ppolato'}

Message: SERVER-56307 Allow the donor to enter the critical section when the untransferred mods are within a convergence threshold.
Branch: v4.4
https://github.com/mongodb/mongo/commit/f32a3d08fb7128de3c1b43b8478a5e4626101b89

Comment by Githook User [ 20/May/21 ]

Author:

{'name': 'Paolo Polato', 'email': 'paolo.polato@mongodb.com', 'username': 'ppolato'}

Message: SERVER-56307 Allow the donor to enter the critical section when the untransferred mods are within a convergence threshold.
Branch: v4.0
https://github.com/mongodb/mongo/commit/40e1693cb180fd17ec6fa0e1b32acc21769c0b85

Comment by Githook User [ 12/May/21 ]

Author:

{'name': 'Paolo Polato', 'email': 'paolo.polato@mongodb.com', 'username': 'ppolato'}

Message: SERVER-56307 Ensure that the estimated size of an object id is always bigger than zero.
Branch: master
https://github.com/mongodb/mongo/commit/7d0aee4c7dec9380c3ef8be20c31b1334b27cd20

Comment by Githook User [ 12/May/21 ]

Author:

{'name': 'Paolo Polato', 'email': 'paolo.polato@mongodb.com', 'username': 'ppolato'}

Message: SERVER-56307 Allow the donor to enter the critical section when the untransferred mods are within a convergence threshold.
Branch: master
https://github.com/mongodb/mongo/commit/44bdd2c38fd5c80881e15f40e2da6cacf5f35eb4

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