diff options
Diffstat (limited to 'src/third_party/wiredtiger/src/evict/evict_file.c')
-rw-r--r-- | src/third_party/wiredtiger/src/evict/evict_file.c | 31 |
1 files changed, 13 insertions, 18 deletions
diff --git a/src/third_party/wiredtiger/src/evict/evict_file.c b/src/third_party/wiredtiger/src/evict/evict_file.c index 7f916ca4a1e..b8ec59372dc 100644 --- a/src/third_party/wiredtiger/src/evict/evict_file.c +++ b/src/third_party/wiredtiger/src/evict/evict_file.c @@ -49,24 +49,20 @@ __wt_evict_file(WT_SESSION_IMPL *session, WT_CACHE_OP syncop) page = ref->page; /* - * Eviction can fail when a page in the evicted page's subtree - * switches state. For example, if we don't evict a page marked - * empty, because we expect it to be merged into its parent, it - * might no longer be empty after it's reconciled, in which case - * eviction of its parent would fail. We can either walk the - * tree multiple times (until it's finally empty), or reconcile - * each page to get it to its final state before considering if - * it's an eviction target or will be merged into its parent. + * Eviction can fail when a page in the evicted page's subtree switches state. For example, + * if we don't evict a page marked empty, because we expect it to be merged into its parent, + * it might no longer be empty after it's reconciled, in which case eviction of its parent + * would fail. We can either walk the tree multiple times (until it's finally empty), or + * reconcile each page to get it to its final state before considering if it's an eviction + * target or will be merged into its parent. * - * Don't limit this test to any particular page type, that tends - * to introduce bugs when the reconciliation of other page types - * changes, and there's no advantage to doing so. + * Don't limit this test to any particular page type, that tends to introduce bugs when the + * reconciliation of other page types changes, and there's no advantage to doing so. * - * Eviction can also fail because an update cannot be written. - * If sessions have disjoint sets of files open, updates in a - * no-longer-referenced file may not yet be globally visible, - * and the write will fail with EBUSY. Our caller handles that - * error, retrying later. + * Eviction can also fail because an update cannot be written. If sessions have disjoint + * sets of files open, updates in a no-longer-referenced file may not yet be globally + * visible, and the write will fail with EBUSY. Our caller handles that error, retrying + * later. */ if (syncop == WT_SYNC_CLOSE && __wt_page_is_modified(page)) WT_ERR(__wt_reconcile(session, ref, NULL, WT_REC_EVICT | WT_REC_VISIBLE_ALL, NULL)); @@ -85,8 +81,7 @@ __wt_evict_file(WT_SESSION_IMPL *session, WT_CACHE_OP syncop) /* * Evict the page. * - * Ensure the ref state is restored to the previous - * value if eviction fails. + * Ensure the ref state is restored to the previous value if eviction fails. */ WT_ERR(__wt_evict(session, ref, ref->state, WT_EVICT_CALL_CLOSING)); break; |