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

Investigate restoring the cursor position while doing search near to avoid visiting already seen records.

    XMLWordPrintableJSON

Details

    • Task
    • Status: Open
    • Major - P3
    • Resolution: Unresolved
    • None
    • None
    • None
    • 8
    • Storage Engines - 2022-10-03, Storage Engines - 2022-10-17, Storage Engines - 2022-10-31

    Description

      Search_near guarantees that it will return a record either side of the search key if one is visible, to do this it performs an initial cursor_row/col_search followed by a cursor->next loop, and if nothing is found then a cursor->prev loop. This isn't that efficient as the cursor->prev loop starts it's walk at the beginning of the tree instead of where the original call to cursor_row/col_search placed the cursor.

      This behaviour is required for lower isolation levels such as read_committed however for snapshot isolation we can guarantee that if no records were seen in the cursor->next walk there won't be any for the same range in the cursor->prev walk. This present an opportunity for optimization and would benefit both regular cursor->search_nears and bounded cursor search_nears.

      Attachments

        Issue Links

          Activity

            People

              luke.pearson@mongodb.com Luke Pearson
              luke.pearson@mongodb.com Luke Pearson
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated: