[SERVER-44272] Resync data on replSetSyncFrom during initial sync Created: 27/Oct/19  Updated: 29/Oct/23  Resolved: 13/Mar/20

Status: Closed
Project: Core Server
Component/s: Replication
Affects Version/s: None
Fix Version/s: 4.4.0-rc0, 4.7.0

Type: Improvement Priority: Major - P3
Reporter: Siyuan Zhou Assignee: Jason Chan
Resolution: Fixed Votes: 0
Labels: former-quick-wins
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
Depends
is depended on by SERVER-46831 Remove resyncData from replicationCoo... Closed
Duplicate
is duplicated by SERVER-31487 Replace replSetSyncFrom resync option... Closed
Related
is related to SERVER-50320 Fix cancellation races in initial syncer Closed
is related to SERVER-31239 Disable resync command and remove tests Closed
is related to SERVER-31487 Replace replSetSyncFrom resync option... Closed
is related to SERVER-38731 Ability to specify sync source read p... Closed
Backwards Compatibility: Fully Compatible
Backport Requested:
v4.4
Sprint: Repl 2020-02-10, Repl 2020-03-09, Repl 2020-03-23
Participants:

 Description   

Initial sync doesn't allow changing sync source because the data isn't consistent during initial sync, however it's reasonable to allow changing sync source and restarting initial sync on replSetSyncFrom command, if the specified sync source is different from the current one. Currently the replSetSyncFrom supports initiating a resync while in the middle of an initial sync, but the resync implementation is known to be broken in subtle ways. We should investigate whether these bugs still exist and if so, redesign the implementation.

The command should only restart the active initial sync attempt, not go back into initial sync if initial sync is complete



 Comments   
Comment by Githook User [ 26/Mar/20 ]

Author:

{'email': 'jason.chan@10gen.com', 'name': 'Jason Chan', 'username': 'jasonjhchan'}

Message: SERVER-44272 Re-implement replSetSyncFrom logic while in initial sync

(cherry picked from commit 1cb592ac1b74e8f62d2ded5959945d626483402c)
Branch: v4.4
https://github.com/mongodb/mongo/commit/abc91c791d36a98cf9cb6a06849148e2e918dda9

Comment by Jason Chan [ 13/Mar/20 ]

siyuan.zhou Yup, SERVER-46831 was filed to remove resyncData.

Comment by Siyuan Zhou [ 13/Mar/20 ]

jason.chan, since resync in initial sync is the last call of resyncData. Can we also remove it in a follow-up commit?

Comment by Githook User [ 13/Mar/20 ]

Author:

{'username': 'jasonjhchan', 'name': 'Jason Chan', 'email': 'jason.chan@10gen.com'}

Message: SERVER-44272 Re-implement replSetSyncFrom logic while in initial sync
Branch: master
https://github.com/mongodb/mongo/commit/1cb592ac1b74e8f62d2ded5959945d626483402c

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