ExportXMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: 9.1.0-rc0
    • Component/s: Catalog
    • None
    • Catalog and Routing
    • 🟦 Shard Catalog
    • None
    • None
    • None
    • None
    • None
    • None

      This is a proposed add-on / follow-up to SERVER-126806.

       

      With SERVER-126806, the catalog's timestamp-aware cache is populated at startup (at recoveryTimestamp) then kept up to date with DDL operations. However to serve reads at t < recoveryTimestamp we'd need to still need to have a fallback path which does a catalog full scan by NSS/UUID then populates the HistoricalCatalogIdTracker.

       

      However all data needed to populate the timestamp-aware cache up from the beginning of the _mdb_catalog WiredTiger snapshot history exists on disk. We can read history a WiredTiger  dump_version cursor and put it in the cache by committing it at a past commit_timestamp.

       

      This has the following advantages:

      • Avoid catalog full scans to make catalog performance predictable.
      • Remove the complexity of the HistoricalCatalogIdTracker.
      • Unify all catalog accesses into a single path.

       

      The main roadblock is that WiredTiger's dump_version API is documented as a debug feature. We should discuss if that can be made acceptable for us, or find an alternative.

            Assignee:
            Unassigned
            Reporter:
            Joan Bruguera Micó
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: