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

"validate" command should perform full index validation

    • Type: Icon: New Feature New Feature
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • 3.3.6
    • Affects Version/s: None
    • Component/s: Admin, Index Maintenance
    • Labels:
      None
    • Fully Compatible
    • Query 2.7.8, TIG 10 (02/19/16), TIG 11 (03/11/16), TIG 12 (04/01/16), TIG 13 (04/22/16), TIG 14 (05/13/16)

      If a user tries to use the validate command to validate an index, it sort of works, but it generates errors in the server log and incorrectly reports that the index has failed validation.

      By "sort of works", I mean that it correctly lists the extents used by the index and correctly reports the datasize and last extent size. It incorrectly reports the number of btree buckets as the number of records. It also generates multiple errors logged on the server and incorrectly provides "advice" : "ns corrupt, requires repair".

      It is easy to know that the specified collection is actually an index and to validate it as an index instead of as a normal collection. The validate() command (without

      { full : true }

      ) should return correct and useful information.

      The command "db.indexName.validate(true)" should validate that the index entries actually point to valid records. We currently have no function that does this, and it is not done by "db.collection.validate(true)", presumably because it would be an expensive operation. This would be a very useful addition to the set of available diagnostic features.

            Assignee:
            robert.guo@mongodb.com Robert Guo (Inactive)
            Reporter:
            tad Tad Marshall
            Votes:
            0 Vote for this issue
            Watchers:
            13 Start watching this issue

              Created:
              Updated:
              Resolved: