diff options
-rw-r--r-- | src/btree/bt_sync.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/btree/bt_sync.c b/src/btree/bt_sync.c index f038ebf3ecc..7c6d49c8ea0 100644 --- a/src/btree/bt_sync.c +++ b/src/btree/bt_sync.c @@ -60,9 +60,14 @@ __sync_file(WT_SESSION_IMPL *session, int syncop) if (walk == NULL) break; - /* Write dirty pages if nobody beat us to it. */ + /* + * Write dirty pages if nobody beat us to it. Don't + * try to write the hottest pages: checkpoint will have + * to visit them anyway. + */ page = walk->page; - if (__wt_page_is_modified(page)) { + if (__wt_page_is_modified(page) && + __wt_txn_visible_all(session, page->modify->update_txn)) { if (txn->isolation == TXN_ISO_READ_COMMITTED) __wt_txn_refresh(session, 1); leaf_bytes += page->memory_footprint; |