[SERVER-62006] Support majority read for _mdb_catalog Created: 13/Dec/21  Updated: 29/Oct/23  Resolved: 25/Feb/22

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 6.0.0-rc0

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

Issue Links:
Depends
Duplicate
is duplicated by SERVER-62007 Support majority read for listCollect... Closed
Related
related to SERVER-69750 For certain index options, $listCatal... Closed
related to SERVER-62008 Support majority read for $indexStats Closed
related to SERVER-64251 enable feature for aggregation stage ... Closed
related to SERVER-78460 Complete TODO listed in SERVER-63754 Closed
related to SERVER-63754 avoid copying NamespaceStringOrUUID v... Closed
related to SERVER-64203 update required permissions on listCa... Closed
related to SERVER-64404 improve sharding support $listCatalog... Closed
Backwards Compatibility: Fully Compatible
Sprint: Execution Team 2022-01-24, Execution Team 2022-02-07, Execution Team 2022-02-21, Execution Team 2022-03-07
Participants:

 Description   

In C2C replication, we would like to only replicate majority committed data so that we can avoid handling rollbacks of the source cluster. This is now done by using majority readConcern in collection scans in the cloning phase. However, listDatabases/listCollections/listIndexes don't support reading majority committed catalog as the catalog is not versioned. This makes it very hard for an external process to detect when the result returned by these list commands rolls back. This work is to support majority read for listDatabases by reading from a majority committed snapshot of the _mdb_catalog without actually introducing versioned catalog.

And it should also work with sharded clusters.



 Comments   
Comment by Benety Goh [ 25/Feb/22 ]

Replaced original ticket summary with underlying issue (read access to durable catalog) extracted from description.

Comment by Githook User [ 25/Feb/22 ]

Author:

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

Message: SERVER-62006 add read concern js test for listCatalog aggregation stage
Branch: master
https://github.com/mongodb/mongo/commit/14dfd0e4d652d7dff7e21f4eaa36e33e67d5ebff

Comment by Githook User [ 25/Feb/22 ]

Author:

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

Message: SERVER-62006 add js test for listCatalog aggregation stage
Branch: master
https://github.com/mongodb/mongo/commit/dc08f5388a525a721a002e3a171ef627584f25eb

Comment by Githook User [ 25/Feb/22 ]

Author:

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

Message: SERVER-62006 add listCatalog aggregation stage
Branch: master
https://github.com/mongodb/mongo/commit/d41cbd82130527fb078c9d4b1f47c6d2611fcbb5

Comment by Githook User [ 25/Feb/22 ]

Author:

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

Message: SERVER-62006 add MongoProcessInterface::listCatalog()
Branch: master
https://github.com/mongodb/mongo/commit/28ff939623b778778102bf387f5d28bd068893a9

Comment by Githook User [ 24/Feb/22 ]

Author:

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

Message: SERVER-62006 inline DurableCatalog::isFeatureDocument()
Branch: master
https://github.com/mongodb/mongo/commit/2a5b59c4fd6d4182f81755ebd1ff755dd88db6e9

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