[SERVER-48419] Extend rollback to recover resumable index builds efficiently Created: 26/May/20  Updated: 29/Oct/23  Resolved: 18/Sep/20

Status: Closed
Project: Core Server
Component/s: Storage
Affects Version/s: None
Fix Version/s: 4.8.0

Type: Task Priority: Major - P3
Reporter: Benety Goh Assignee: Benety Goh
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Problem/Incident
Related
related to SERVER-50391 Index build hung during startup recov... Closed
related to SERVER-50775 resumable index build rollback tests ... Closed
related to SERVER-51007 adjust rollback to resume index build... Closed
related to SERVER-51008 adjust rollback to resume index build... Closed
is related to SERVER-46558 Bgsync stops all index builds even be... Closed
is related to SERVER-51020 Abort index builds for rollback in th... Closed
is related to SERVER-39451 Add recover to a stable timestamp log... Closed
is related to SERVER-39458 Add continuous draining on secondary'... Closed
is related to SERVER-39484 Add step-up and step-down state trans... Closed
is related to SERVER-40894 Remove unused setGhostCommitTimestamp... Closed
is related to SERVER-44467 Implement startup recovery for two-ph... Closed
is related to SERVER-48418 Rollback restart resumable index buil... Closed
Backwards Compatibility: Fully Compatible
Sprint: Execution Team 2020-09-21
Participants:
Linked BF Score: 37

 Description   

Upon rollback, there are several scenarios that can occur, given these time periods for the start and end of rollback:
1. Prior to index build starting.
2. During index build phase 1 (collection scan and inserting into sorter(s))
3. During index build phase 2 (bulk load of index table(s))
4. During index build phase 3 (catch up from side table(s))
5. After index build completes.

This work should only begin after we have a stable basic rollback procedure that handles resumable index builds. See SERVER-48418.



 Comments   
Comment by Githook User [ 18/Sep/20 ]

Author:

{'name': 'Benety Goh', 'email': 'benety@mongodb.com', 'username': 'benety'}

Message: SERVER-48419 Execution Architecture Guide: update Resumable Index Builds for rollback
Branch: master
https://github.com/mongodb/mongo/commit/6b15e4de5d249f2a91fcc60c848e584af6756dbc

Comment by Githook User [ 18/Sep/20 ]

Author:

{'name': 'Benety Goh', 'email': 'benety@mongodb.com', 'username': 'benety'}

Message: SERVER-48419 resume index builds after rollback (collection scan only)
Branch: master
https://github.com/mongodb/mongo/commit/50f33314ee1780f5f37ff940f7f5c00adccbe261

Comment by Benety Goh [ 28/Aug/20 ]

SERVER-40894 provides context on timestamping writes during the drain phases.

Comment by Benety Goh [ 27/Aug/20 ]

Assigning to gregory.noma to evaluate changes to the recover-to-stable-timestamp rollback algorithm. Since the design for resumable indexes was approved, the rollback algorithm has changed significantly to accommodate simultaneous index builds in SERVER-39451, SERVER-44467, and SERVER-46558.

Comment by Benety Goh [ 27/Aug/20 ]

Refer to SERVER-39451 and SERVER-44467 for recent rollback changes for simultaneous indexes.

Comment by Benety Goh [ 07/Jul/20 ]

Due to a feature of the commit quorum implementation, we may repeated drain the side tables within phase 3 (catch up from side table(s)) while waiting forĀ theĀ commitIndexBuild oplog entry from the primary.

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