-
Type: Improvement
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
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.
- depends on
-
WT-6990 New cursor debug configuration isn't considered in __wt_cursor_cache_get
- Closed