diff options
Diffstat (limited to 'src/reconcile/rec_write.c')
-rw-r--r-- | src/reconcile/rec_write.c | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/src/reconcile/rec_write.c b/src/reconcile/rec_write.c index 9c38c535301..810f3fd976b 100644 --- a/src/reconcile/rec_write.c +++ b/src/reconcile/rec_write.c @@ -451,19 +451,18 @@ __wt_reconcile(WT_SESSION_IMPL *session, } /* - * When application threads perform eviction, don't cache block manager - * or reconciliation structures (even across calls), we can have a - * significant number of application threads doing eviction at the same - * time with large items. We ignore checkpoints, once the checkpoint - * completes, all unnecessary session resources will be discarded. + * When threads perform eviction, don't cache block manager or + * reconciliation structures (even across calls), we can have a + * significant number of threads doing eviction at the same time with + * large items. We ignore checkpoints, once the checkpoint completes, + * all unnecessary session resources will be discarded. * - * Even in application threads doing checkpoints or in internal threads - * doing any reconciliation, clean up reconciliation resources. Some - * workloads have millions of boundary structures in a reconciliation - * and we don't want to tie that memory down, even across calls. + * Even in application threads doing checkpoints, clean up + * reconciliation resources. Some workloads have millions of boundary + * structures in a reconciliation and we don't want to tie that memory + * down, even across calls. */ - if (WT_SESSION_IS_CHECKPOINT(session) || - F_ISSET(session, WT_SESSION_INTERNAL)) + if (WT_SESSION_IS_CHECKPOINT(session)) __rec_bnd_cleanup(session, r, false); else { /* @@ -564,10 +563,12 @@ __rec_write_status(WT_SESSION_IMPL *session, WT_RECONCILE *r, WT_PAGE *page) * barrier after the change for clarity (the requirement is the * flag be set before a subsequent checkpoint reads it, and * as the current checkpoint is waiting on this reconciliation - * to complete, there's no risk of that happening) + * to complete, there's no risk of that happening). */ - btree->modified = 1; + btree->modified = true; WT_FULL_BARRIER(); + if (!S2C(session)->modified) + S2C(session)->modified = true; /* * Eviction should only be here if following the save/restore @@ -3335,7 +3336,7 @@ supd_check_complete: __wt_verbose(session, WT_VERB_SPLIT, "Reconciliation creating a page with %" PRIu32 " entries, memory footprint %" WT_SIZET_FMT - ", page count %" PRIu32 ", %s, split state: %d\n", + ", page count %" PRIu32 ", %s, split state: %d", r->entries, r->page->memory_footprint, r->bnd_next, F_ISSET(r, WT_EVICTING) ? "evict" : "checkpoint", r->bnd_state); |