Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-78452

Implement missing index key check in dbCheck

    XMLWordPrintableJSON

Details

    • Icon: Task Task
    • Resolution: Fixed
    • Icon: Major - P3 Major - P3
    • 7.2.0-rc0
    • None
    • None
    • Fully Compatible
    • Repl 2023-07-24, Repl 2023-08-07, Repl 2023-08-21, Repl 2023-09-04, Repl 2023-09-18, Repl 2023-10-02
    • 14

    Description

      The DbCheckHasher class today implements the hashing logic for the data consistency check in dbCheck. Since it already has access to each document by walking the _id index, we will implement the missing index keys check within the DbCheckHasher.

      The algorithm for the missing index keys check will be:
      *Primary iterates through record store at a given start point until it hits a batch boundary (total number of bytes/records limitation hit)
      For each record traversed in batch and for each index that we are checking:

      • Fetch all index key entries corresponding to its index field values and record ID
      • Look up each of those index keys in the index table
      • If we do not find the index key entry, report the inconsistency to the health log
      • We will also verify that the document complies with index settings (for example, it does not have multiple index keys if the index is not multikey)
      • Add the size of the document and index keys to the total count of bytes. If we have exceeded a speed parameter, complete the batch and return

      Secondaries will determine batch boundaries from an oplog entry that primary writes
      This is currently already done by the DbCheckHasher

      Attachments

        Activity

          People

            xuerui.fa@mongodb.com Xuerui Fa
            xuerui.fa@mongodb.com Xuerui Fa
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: