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

Replace python test suite eviction loops with debug eviction cursor

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None

      A large number of python tests written for durable history and perhaps earlier use a loop that is some variation of this:

              # Insert a whole bunch of data into the table to force wiredtiger to evict data
              # from the previous table.
              self.session.begin_transaction()
              for i in range(2, 10000):
                  cursor[i] = valuebig
              self.session.commit_transaction()
      

      The intent of this loop is to force wiredtiger to evict changes on another key/table to trigger history store (or otherwise) functionality. Since WT-6563 we've now got the ability to evict pages using the new debug api 'release_evict'. As such we should be able to replace the majority of these loops. This will make the test cases more deterministic and substantially faster.

              evict_cursor = session3.open_cursor(self.uri, None, "debug=(release_evict)")
              evict_cursor.set_key(str(5))
              evict_cursor.search()
              evict_cursor.reset()
              evict_cursor.close()
      

      Some but not all of the test cases that can be fixed are:

      • test_hs06.py
      • test_hs07.py
      • test_hs12.py
      • test_hs13.py
      • test_hs15.py
      • test_hs18.py

      This ticket will require some work to determine the full set of tests that can be updated to use the new functionality, implement the new functionality and if possible validate that the new test works as expected. If this ticket appears to be too much work then I suggest cataloging the tests to be updated in this ticket, and splitting the work to update them across N tickets.

      Note: In some cases the test may be trying to evict the HS page which probably can be done using an evict cursor but will require extra care.

            Assignee:
            backlog-server-storage-engines [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            luke.pearson@mongodb.com Luke Pearson
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: