[SERVER-48418] Rollback restart resumable index builds from beginning Created: 26/May/20  Updated: 29/Oct/23  Resolved: 23/Jul/20

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

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

Issue Links:
Related
related to SERVER-50548 exclude resumable index build tests f... Closed
related to SERVER-48419 Extend rollback to recover resumable ... Closed
related to SERVER-49774 Enable rollback testing for resumable... Closed
Backwards Compatibility: Fully Compatible
Sprint: Execution Team 2020-06-29, Execution Team 2020-07-13, Execution Team 2020-07-27
Participants:

 Description   

This ensures that rollback remains robust, but not optimal, while we are developing the resumability of index builds.



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

Author:

{'name': 'Gregory Noma', 'email': 'gregory.noma@gmail.com', 'username': 'gregorynoma'}

Message: SERVER-48418 Test rollback with resumable index builds
Branch: master
https://github.com/mongodb/mongo/commit/bae276d5c8f255f34bdf1eeb045133b170bf735c

Comment by Benety Goh [ 07/Jul/20 ]

The objective of this task may be satisfied by establishing a small set of rollback tests to begin rollback at each of the starting points enumerated in the table under Rollback Logic in the design doc (reproduced below). The detailed rollback handling in the table is for informational purposes only and is out of scope for this ticket.
 
Resumable Index Phases:

  • A: Prior to index build starting
  • B: During index build phase 1 (collection scan and inserting into sorter(s))
  • C: During index build phase 2 (bulk load of index table(s))
  • D: During index build phase 3 (catch up from side table(s))
  • E: After index build completes.

 

Ends →
 
Starts ↓
A B-D E
A Nothing to do.    
B Save, but then delete saved data. Save/restore like in shutdown.  
C Save, but then delete saved data. Save/restore like in shutdown.  
D Save, but then delete saved data. Save/restore like in shutdown 3rd phase.  
E Nothing (new) to do. Start index build from scratch. Nothing to do.

 
This is a necessary prerequisite for SERVER-48419, which implements the rollback logic in the previous table, and may be non-trivial due to how the majority read cursor changes in SERVER-48476 affect how our rollback tests works.

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