-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: 7.0.0, 8.0.0, 8.2.0-rc0, 8.3.0-rc0, 9.0.0-rc0
-
Component/s: Catalog, WiredTiger
-
None
-
Catalog and Routing
-
ALL
-
200
-
馃煢 Shard Catalog
-
None
-
None
-
None
-
None
-
None
-
None
For the 'local' database, the collection catalog (_mdb_catalog) and the view catalog (local.system.views) tables are recovered at different timestamps after a crash:
- For _mdb_catalog, we disable WiredTiger's table logging, so after a crash it gets rolled back to the last checkpoint (rollback to stable timestamp).
- For local.system.views, since the local DB is unreplicated, we enable WiredTiger's journal (table logging/WAL) so it gets rolled back to the last journal flush.
聽
This can lead to inconsistencies, for example:
- At the stable timestamp "local.a" is a collection.
- Since then, "local.a" has been dropped and re-created as a view, the insert to "local.system.views" has been journaled by WT.
- The node crashes.
- _mdb_catalog gets recovered to the stable timestamp ("local.a" is a collection).
- local.system.views gets recovered from WiredTiger's journal ("local.a" is a view).
聽
A reproducer is attached.
"local.system.views" should get the same recovery guarantees as "_mdb_catalog".
- related to
-
SERVER-63683 Explore a path to move the view catalog's persisted state away from being database oriented
-
- Backlog
-
-
SERVER-122276 Disable creating timeseries collections on 'local' on viewful/viewless upgrade suites
-
- Closed
-