diff options
Diffstat (limited to 'src/btree/bt_read.c')
-rw-r--r-- | src/btree/bt_read.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/btree/bt_read.c b/src/btree/bt_read.c index fd9a7597d73..19ff15fb21e 100644 --- a/src/btree/bt_read.c +++ b/src/btree/bt_read.c @@ -221,7 +221,7 @@ __las_page_instantiate(WT_SESSION_IMPL *session, WT_REF *ref, uint32_t btree_id) */ page->modify->first_dirty_txn = WT_TXN_FIRST; - if (!ref->page_las->las_skew_oldest && + if (ref->page_las->las_skew_newest && !S2C(session)->txn_global.has_stable_timestamp && __wt_txn_visible_all(session, ref->page_las->las_max_txn, WT_TIMESTAMP_NULL(&ref->page_las->onpage_timestamp))) { @@ -268,7 +268,7 @@ __evict_force_check(WT_SESSION_IMPL *session, WT_REF *ref) * It's hard to imagine a page with a huge memory footprint that has * never been modified, but check to be sure. */ - if (page->modify == NULL) + if (__wt_page_evict_clean(page)) return (false); /* Pages are usually small enough, check that first. */ @@ -297,8 +297,7 @@ __evict_force_check(WT_SESSION_IMPL *session, WT_REF *ref) * skipping the page indefinitely or large records can lead to * extremely large memory footprints. */ - if (page->modify->update_restored && - !__wt_page_evict_retry(session, page)) + if (!__wt_page_evict_retry(session, page)) return (false); /* Trigger eviction on the next page release. */ @@ -496,7 +495,7 @@ __las_page_skip(WT_SESSION_IMPL *session, WT_REF *ref) goto done; if (!F_ISSET(txn, WT_TXN_HAS_TS_READ) && - !ref->page_las->las_skew_oldest) { + ref->page_las->las_skew_newest) { skip = true; goto done; } @@ -512,7 +511,7 @@ __las_page_skip(WT_SESSION_IMPL *session, WT_REF *ref) &session->txn.read_timestamp) <= 0); if (F_ISSET(&session->txn, WT_TXN_HAS_TS_READ) && - ref->page_las->las_skew_oldest && + !ref->page_las->las_skew_newest && __wt_timestamp_cmp( &ref->page_las->min_timestamp, &session->txn.read_timestamp) > 0) { skip = true; |