[SERVER-45570] Add a ProgressMeter to the index build startup recovery code path Created: 14/Jan/20  Updated: 29/Oct/23  Resolved: 14/May/20

Status: Closed
Project: Core Server
Component/s: Storage
Affects Version/s: None
Fix Version/s: 4.2.8, 4.4.0-rc7, 4.7.0

Type: Improvement Priority: Major - P3
Reporter: Dianna Hohensee (Inactive) Assignee: James Heppenstall
Resolution: Fixed Votes: 1
Labels: neweng
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
Related
is related to SERVER-45582 Add a ProgressMeter to initial sync i... Closed
Backwards Compatibility: Fully Compatible
Backport Requested:
v4.4, v4.2
Sprint: Execution Team 2020-05-18
Participants:

 Description   

The regular index build code path has a ProgressMeter setup in MultiIndexBlock::insertAllDocumentsInCollection. Startup recovery index build go through MultiIndexBlock::insert, which has no ProgressMeter.

A straightforward solution would be to add another ProgressMeter to the IndexBuildsManager::startBuildingIndexForRecovery code.

Perhaps the ProgressMeter could be placed in some common code path, like the MultiIndexBlock::init() function. Though I do not know whether that is run on the same thread today as insert() and insertAllDocumentsInCollection(), or whether it will continue to be in future.

Alternatively, maybe we can change startup index builds to not validate the collection BSON: perhaps validate the collection data first. Then the startup index build code could be merged into the regular index build code, reducing code duplication.

I advocate for this last solution, if it is possible to change the repair code to validate collection BSON before index building – repair might even already do this, I did not look.



 Comments   
Comment by Githook User [ 14/May/20 ]

Author:

{'name': 'Jamie Heppenstall', 'email': 'jamie.heppenstall@mongodb.com', 'username': 'JamesHeppenstall'}

Message: SERVER-45570 Add a ProgressMeter to the index build startup recovery code path

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

Comment by Githook User [ 14/May/20 ]

Author:

{'name': 'Jamie Heppenstall', 'email': 'jamie.heppenstall@mongodb.com', 'username': 'JamesHeppenstall'}

Message: SERVER-45570 Add a ProgressMeter to the index build startup recovery code path
Branch: master
https://github.com/mongodb/mongo/commit/c6f6dc29665d8609f040c66c7107c270b813bc95

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