Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-1167

salvage in the face of missing overflow items.

    • Type: Icon: Task Task
    • Resolution: Done
    • WT2.4.0
    • Affects Version/s: None
    • Component/s: None

      The WiredTiger salvage code discards leaf pages in the case of pages that reference overflow items we don't have:

       * Discard any page referencing a non-existent overflow page.  We do
       * this before checking overlapping key ranges on the grounds that a
       * bad key range we can use is better than a terrific key range that
       * references pages we don't have.
       *
       * An alternative would be to discard only the on-page item referencing
       * the missing overflow item.  We're not doing that because: (1) absent
       * corruption, a missing overflow item is a strong argument the page was
       * replaced (but admittedly, corruption is probably why we're here); (2)
       * it's a lot of work, and as WiredTiger supports very large page sizes,
       * overflow items simply shouldn't be common.
       *
       * If an overflow page is referenced more than once, discard leaf pages
       * with the lowest LSNs until overflow pages are only referenced once.
      

      As noted in the comment, a better solution would be to split pages into multiple chunks, a chunk before and a chunk after the row that references the missing overflow item.

            Assignee:
            Unassigned Unassigned
            Reporter:
            keith.bostic@mongodb.com Keith Bostic (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: