summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/btree/bt_sync.c9
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;