summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/src
diff options
context:
space:
mode:
authorGreg McKeon <greg.mckeon@mongodb.com>2017-11-17 17:48:25 -0500
committerGreg McKeon <greg.mckeon@mongodb.com>2017-11-17 17:48:25 -0500
commit770b4bfe6d7f11d50d79fab08c0764a8e6b866fe (patch)
tree72e18fc43206531b6a39ca96a0c8d92700b0c3e5 /src/third_party/wiredtiger/src
parent77c0c06c7f913b1d0d11ed66b225ddfba82a261f (diff)
downloadmongo-770b4bfe6d7f11d50d79fab08c0764a8e6b866fe.tar.gz
Revert "Import wiredtiger: fd0c611577e38687455cee311cc279bec16651ea from branch mongodb-3.8"
This reverts commit d303ef9ba44fb7dfeb41c8b975e761c184d1d4b5.
Diffstat (limited to 'src/third_party/wiredtiger/src')
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_compact.c2
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_curnext.c1
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_curprev.c1
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_read.c41
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_split.c2
-rw-r--r--src/third_party/wiredtiger/src/cache/cache_las.c8
-rw-r--r--src/third_party/wiredtiger/src/conn/conn_cache.c41
-rw-r--r--src/third_party/wiredtiger/src/conn/conn_cache_pool.c2
-rw-r--r--src/third_party/wiredtiger/src/evict/evict_lru.c51
-rw-r--r--src/third_party/wiredtiger/src/include/btmem.h1
-rw-r--r--src/third_party/wiredtiger/src/include/btree.i49
-rw-r--r--src/third_party/wiredtiger/src/include/cache.h2
-rw-r--r--src/third_party/wiredtiger/src/include/cache.i16
-rw-r--r--src/third_party/wiredtiger/src/include/cursor.i2
-rw-r--r--src/third_party/wiredtiger/src/include/extern.h2
-rw-r--r--src/third_party/wiredtiger/src/include/stat.h1
-rw-r--r--src/third_party/wiredtiger/src/include/txn.i18
-rw-r--r--src/third_party/wiredtiger/src/include/wiredtiger.in512
-rw-r--r--src/third_party/wiredtiger/src/log/log.c4
-rw-r--r--src/third_party/wiredtiger/src/lsm/lsm_tree.c50
-rw-r--r--src/third_party/wiredtiger/src/reconcile/rec_write.c9
-rw-r--r--src/third_party/wiredtiger/src/support/stat.c4
-rw-r--r--src/third_party/wiredtiger/src/txn/txn.c19
23 files changed, 355 insertions, 483 deletions
diff --git a/src/third_party/wiredtiger/src/btree/bt_compact.c b/src/third_party/wiredtiger/src/btree/bt_compact.c
index cbc19df65fa..1a39b479ae8 100644
--- a/src/third_party/wiredtiger/src/btree/bt_compact.c
+++ b/src/third_party/wiredtiger/src/btree/bt_compact.c
@@ -160,7 +160,7 @@ __wt_compact(WT_SESSION_IMPL *session)
* checking whether the cache is full. Check now to throttle
* compact to match eviction speed.
*/
- WT_ERR(__wt_cache_eviction_check(session, false, false, NULL));
+ WT_ERR(__wt_cache_eviction_check(session, false, NULL));
/*
* Pages read for compaction aren't "useful"; don't update the
diff --git a/src/third_party/wiredtiger/src/btree/bt_curnext.c b/src/third_party/wiredtiger/src/btree/bt_curnext.c
index a5fb19a20e7..59840322101 100644
--- a/src/third_party/wiredtiger/src/btree/bt_curnext.c
+++ b/src/third_party/wiredtiger/src/btree/bt_curnext.c
@@ -592,7 +592,6 @@ __wt_btcur_next(WT_CURSOR_BTREE *cbt, bool truncating)
* file.
*/
flags = WT_READ_SKIP_INTL; /* tree walk flags */
- LF_SET(WT_READ_NO_SPLIT); /* don't try to split */
if (truncating)
LF_SET(WT_READ_TRUNCATE);
for (newpage = false;; newpage = true) {
diff --git a/src/third_party/wiredtiger/src/btree/bt_curprev.c b/src/third_party/wiredtiger/src/btree/bt_curprev.c
index 50a755f1431..c1395ea9008 100644
--- a/src/third_party/wiredtiger/src/btree/bt_curprev.c
+++ b/src/third_party/wiredtiger/src/btree/bt_curprev.c
@@ -548,7 +548,6 @@ __wt_btcur_prev(WT_CURSOR_BTREE *cbt, bool truncating)
* of the file.
*/
flags = WT_READ_PREV | WT_READ_SKIP_INTL; /* tree walk flags */
- LF_SET(WT_READ_NO_SPLIT); /* don't try to split */
if (truncating)
LF_SET(WT_READ_TRUNCATE);
for (newpage = false;; newpage = true) {
diff --git a/src/third_party/wiredtiger/src/btree/bt_read.c b/src/third_party/wiredtiger/src/btree/bt_read.c
index fd9a7597d73..fc4afc7f9b1 100644
--- a/src/third_party/wiredtiger/src/btree/bt_read.c
+++ b/src/third_party/wiredtiger/src/btree/bt_read.c
@@ -205,31 +205,8 @@ __las_page_instantiate(WT_SESSION_IMPL *session, WT_REF *ref, uint32_t btree_id)
if (total_incr != 0) {
__wt_cache_page_inmem_incr(session, page, total_incr);
- /*
- * If the updates in lookaside are newer than the versions on
- * the page, it must be included in the next checkpoint.
- *
- * Otherwise, the page image contained the newest versions of
- * data so the updates are all older and we could consider
- * marking it clean (i.e., the next checkpoint can use the
- * version already on disk).
- *
- * This needs care because (a) it creates pages with history
- * that can't be evicted until they are marked dirty again, and
- * (b) checkpoints may need to visit these pages to resolve
- * changes evicted while a checkpoint is running.
- */
+ /* Make sure the page is included in the next checkpoint. */
page->modify->first_dirty_txn = WT_TXN_FIRST;
-
- if (!ref->page_las->las_skew_oldest &&
- !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))) {
- page->modify->rec_max_txn = ref->page_las->las_max_txn;
- __wt_timestamp_set(&page->modify->rec_max_timestamp,
- &ref->page_las->onpage_timestamp);
- __wt_page_modify_clear(session, page);
- }
}
err: WT_TRET(__wt_las_cursor_close(session, &cursor, session_flags));
@@ -298,7 +275,7 @@ __evict_force_check(WT_SESSION_IMPL *session, WT_REF *ref)
* extremely large memory footprints.
*/
if (page->modify->update_restored &&
- !__wt_page_evict_retry(session, page))
+ page->modify->last_eviction_id == __wt_txn_oldest_id(session))
return (false);
/* Trigger eviction on the next page release. */
@@ -580,15 +557,13 @@ __wt_page_in_func(WT_SESSION_IMPL *session, WT_REF *ref, uint32_t flags
return (WT_NOTFOUND);
read: /*
- * The page isn't in memory, read it. If this thread
- * respects the cache size, check for space in the
+ * The page isn't in memory, read it. If this thread is
+ * allowed to do eviction work, check for space in the
* cache.
*/
if (!LF_ISSET(WT_READ_IGNORE_CACHE_SIZE))
WT_RET(__wt_cache_eviction_check(
- session, true,
- !F_ISSET(&session->txn, WT_TXN_HAS_ID),
- NULL));
+ session, 1, NULL));
WT_RET(__page_read(session, ref, flags));
/*
@@ -755,10 +730,8 @@ skip_evict: /*
* substitute that for a sleep.
*/
if (!LF_ISSET(WT_READ_IGNORE_CACHE_SIZE)) {
- WT_RET(__wt_cache_eviction_check(
- session, true,
- !F_ISSET(&session->txn, WT_TXN_HAS_ID),
- &cache_work));
+ WT_RET(
+ __wt_cache_eviction_check(session, 1, &cache_work));
if (cache_work)
continue;
}
diff --git a/src/third_party/wiredtiger/src/btree/bt_split.c b/src/third_party/wiredtiger/src/btree/bt_split.c
index a9643ed92a0..021788919d0 100644
--- a/src/third_party/wiredtiger/src/btree/bt_split.c
+++ b/src/third_party/wiredtiger/src/btree/bt_split.c
@@ -1497,8 +1497,6 @@ __split_multi_inmem(
* to avoid repeatedly attempting eviction on the same page.
*/
page->modify->last_eviction_id = orig->modify->last_eviction_id;
- __wt_timestamp_set(&page->modify->last_eviction_timestamp,
- &orig->modify->last_eviction_timestamp);
page->modify->update_restored = 1;
err: /* Free any resources that may have been cached in the cursor. */
diff --git a/src/third_party/wiredtiger/src/cache/cache_las.c b/src/third_party/wiredtiger/src/cache/cache_las.c
index 9f8aeb7cc9e..35d9f43b172 100644
--- a/src/third_party/wiredtiger/src/cache/cache_las.c
+++ b/src/third_party/wiredtiger/src/cache/cache_las.c
@@ -518,13 +518,7 @@ __wt_las_insert_block(WT_SESSION_IMPL *session, WT_CURSOR *cursor,
cursor->set_value(cursor,
upd->txnid, &las_timestamp, upd->type, &las_value);
- /*
- * Using update looks a little strange because the keys
- * are guaranteed to not exist, but since we're
- * appending, we want the cursor to stay positioned in
- * between inserts.
- */
- WT_ERR(cursor->update(cursor));
+ WT_ERR(cursor->insert(cursor));
++insert_cnt;
} while ((upd = upd->next) != NULL);
}
diff --git a/src/third_party/wiredtiger/src/conn/conn_cache.c b/src/third_party/wiredtiger/src/conn/conn_cache.c
index a7a9b8e2729..76106b3592f 100644
--- a/src/third_party/wiredtiger/src/conn/conn_cache.c
+++ b/src/third_party/wiredtiger/src/conn/conn_cache.c
@@ -145,8 +145,7 @@ __wt_cache_config(WT_SESSION_IMPL *session, bool reconfigure, const char *cfg[])
session, &conn->evict_threads,
conn->evict_threads_min,
conn->evict_threads_max,
- WT_THREAD_CAN_WAIT | WT_THREAD_LOOKASIDE |
- WT_THREAD_PANIC_FAIL));
+ WT_THREAD_CAN_WAIT | WT_THREAD_PANIC_FAIL));
return (0);
}
@@ -254,40 +253,34 @@ __wt_cache_stats_update(WT_SESSION_IMPL *session)
WT_STAT_SET(session, stats, cache_bytes_inuse, inuse);
WT_STAT_SET(session, stats, cache_overhead, cache->overhead_pct);
- WT_STAT_SET(session, stats,
- cache_bytes_dirty, __wt_cache_dirty_inuse(cache));
- WT_STAT_SET(session, stats,
- cache_bytes_image, __wt_cache_bytes_image(cache));
- WT_STAT_SET(session, stats,
- cache_pages_inuse, __wt_cache_pages_inuse(cache));
- WT_STAT_SET(session, stats,
- cache_bytes_internal, cache->bytes_internal);
+ WT_STAT_SET(
+ session, stats, cache_bytes_dirty, __wt_cache_dirty_inuse(cache));
+ WT_STAT_SET(
+ session, stats, cache_bytes_image, __wt_cache_bytes_image(cache));
+ WT_STAT_SET(
+ session, stats, cache_pages_inuse, __wt_cache_pages_inuse(cache));
+ WT_STAT_SET(
+ session, stats, cache_bytes_internal, cache->bytes_internal);
WT_STAT_SET(session, stats, cache_bytes_leaf, leaf);
- if (F_ISSET(conn, WT_CONN_LOOKASIDE_OPEN)) {
- WT_STAT_SET(session, stats, cache_bytes_lookaside,
- __wt_cache_bytes_plus_overhead(
- cache, cache->bytes_lookaside));
- }
- WT_STAT_SET(session, stats,
- cache_bytes_other, __wt_cache_bytes_other(cache));
+ WT_STAT_SET(
+ session, stats, cache_bytes_other, __wt_cache_bytes_other(cache));
WT_STAT_SET(session, stats,
cache_eviction_maximum_page_size, cache->evict_max_page_size);
WT_STAT_SET(session, stats, cache_pages_dirty,
cache->pages_dirty_intl + cache->pages_dirty_leaf);
- WT_STAT_SET(session, stats, cache_eviction_state, cache->flags);
- WT_STAT_SET(session, stats,
+ WT_STAT_CONN_SET(session, cache_eviction_state, cache->flags);
+ WT_STAT_CONN_SET(session,
cache_eviction_aggressive_set, cache->evict_aggressive_score);
- WT_STAT_SET(session, stats,
+ WT_STAT_CONN_SET(session,
cache_eviction_empty_score, cache->evict_empty_score);
- WT_STAT_SET(session, stats,
+ WT_STAT_CONN_SET(session,
cache_lookaside_score, __wt_cache_lookaside_score(cache));
- WT_STAT_SET(session, stats,
+ WT_STAT_CONN_SET(session,
cache_eviction_active_workers, conn->evict_threads.current_threads);
- WT_STAT_SET(session, stats,
- cache_eviction_stable_state_workers,
+ WT_STAT_CONN_SET(session, cache_eviction_stable_state_workers,
cache->evict_tune_workers_best);
/*
diff --git a/src/third_party/wiredtiger/src/conn/conn_cache_pool.c b/src/third_party/wiredtiger/src/conn/conn_cache_pool.c
index ade63b00af6..afe29284d06 100644
--- a/src/third_party/wiredtiger/src/conn/conn_cache_pool.c
+++ b/src/third_party/wiredtiger/src/conn/conn_cache_pool.c
@@ -608,7 +608,7 @@ __cache_pool_adjust(WT_SESSION_IMPL *session,
*/
pressure = cache->cp_pass_pressure / highest_percentile;
busy = __wt_eviction_needed(
- entry->default_session, false, true, &pct_full);
+ entry->default_session, false, &pct_full);
__wt_verbose(session, WT_VERB_SHARED_CACHE,
"\t%5" PRIu64 ", %3" PRIu64 ", %2" PRIu32 ", %d, %2u",
diff --git a/src/third_party/wiredtiger/src/evict/evict_lru.c b/src/third_party/wiredtiger/src/evict/evict_lru.c
index b1e42fcf489..3af5338d73f 100644
--- a/src/third_party/wiredtiger/src/evict/evict_lru.c
+++ b/src/third_party/wiredtiger/src/evict/evict_lru.c
@@ -75,7 +75,8 @@ __evict_entry_priority(WT_SESSION_IMPL *session, WT_REF *ref)
return (WT_READGEN_OLDEST);
/* Any page from a dead tree is a great choice. */
- if (F_ISSET(btree->dhandle, WT_DHANDLE_DEAD))
+ if (F_ISSET(btree->dhandle, WT_DHANDLE_DEAD) ||
+ F_ISSET(btree, WT_BTREE_LOOKASIDE))
return (WT_READGEN_OLDEST);
/* Any empty page (leaf or internal), is a good choice. */
@@ -552,7 +553,6 @@ __wt_evict_destroy(WT_SESSION_IMPL *session)
static bool
__evict_update_work(WT_SESSION_IMPL *session)
{
- WT_BTREE *las_tree;
WT_CACHE *cache;
WT_CONNECTION_IMPL *conn;
uint64_t bytes_inuse, bytes_max, dirty_inuse;
@@ -569,14 +569,6 @@ __evict_update_work(WT_SESSION_IMPL *session)
if (!__evict_queue_empty(cache->evict_urgent_queue, false))
F_SET(cache, WT_CACHE_EVICT_URGENT);
- if (F_ISSET(conn, WT_CONN_LOOKASIDE_OPEN)) {
- WT_ASSERT(session,
- F_ISSET(session, WT_SESSION_LOOKASIDE_CURSOR));
-
- las_tree = ((WT_CURSOR_BTREE *)session->las_cursor)->btree;
- cache->bytes_lookaside = las_tree->bytes_inmem;
- }
-
/*
* If we need space in the cache, try to find clean pages to evict.
*
@@ -718,8 +710,8 @@ __evict_pass(WT_SESSION_IMPL *session)
* workers, it must service the urgent queue in case all
* application threads are busy.
*/
- if (!WT_EVICT_HAS_WORKERS(session) &&
- (cache->evict_empty_score < WT_EVICT_SCORE_CUTOFF ||
+ if (cache->evict_empty_score < WT_EVICT_SCORE_CUTOFF ||
+ (!WT_EVICT_HAS_WORKERS(session) &&
!__evict_queue_empty(cache->evict_urgent_queue, false)))
WT_RET(__evict_lru_pages(session, true));
@@ -1585,7 +1577,9 @@ __evict_walk_file(WT_SESSION_IMPL *session,
WT_DECL_RET;
WT_EVICT_ENTRY *end, *evict, *start;
WT_PAGE *last_parent, *page;
+ WT_PAGE_MODIFY *mod;
WT_REF *ref;
+ WT_TXN_GLOBAL *txn_global;
uint64_t btree_inuse, bytes_per_slot, cache_inuse, min_pages;
uint64_t pages_seen, pages_queued, refs_walked;
uint32_t remaining_slots, total_slots, walk_flags;
@@ -1596,6 +1590,7 @@ __evict_walk_file(WT_SESSION_IMPL *session,
conn = S2C(session);
btree = S2BT(session);
cache = conn->cache;
+ txn_global = &conn->txn_global;
last_parent = NULL;
restarts = 0;
give_up = urgent_queued = false;
@@ -1660,6 +1655,21 @@ __evict_walk_file(WT_SESSION_IMPL *session,
target_pages = remaining_slots;
/*
+ * Lookaside pages don't count toward the cache's dirty limit.
+ *
+ * Preferentially evict lookaside pages unless applications are stalled
+ * on the dirty limit. Once application threads are stalled by the
+ * dirty limit, don't take any lookaside pages unless we're also up
+ * against the total cache size limit.
+ */
+ if (F_ISSET(btree, WT_BTREE_LOOKASIDE)) {
+ if (!F_ISSET(cache, WT_CACHE_EVICT_DIRTY_HARD))
+ target_pages = remaining_slots;
+ else if (!F_ISSET(cache, WT_CACHE_EVICT_CLEAN_HARD))
+ target_pages = 0;
+ }
+
+ /*
* Walk trees with a small fraction of the cache in case there are so
* many trees that none of them use enough of the cache to be allocated
* slots. Only skip a tree if it has no bytes of interest.
@@ -1787,7 +1797,6 @@ __evict_walk_file(WT_SESSION_IMPL *session,
* if we get into that situation.
*/
give_up = !__wt_cache_aggressive(session) &&
- !F_ISSET(btree, WT_BTREE_LOOKASIDE) &&
pages_seen > min_pages &&
(pages_queued == 0 || (pages_seen / pages_queued) >
(min_pages / target_pages));
@@ -1950,9 +1959,14 @@ __evict_walk_file(WT_SESSION_IMPL *session,
* recent update on the page is not yet globally visible,
* eviction will fail. This heuristic avoids repeated attempts
* to evict the same page.
+ *
+ * We skip this for the lookaside table because updates there
+ * can be evicted as soon as they are committed.
*/
- if (modified && (!__wt_page_evict_retry(session, page) ||
- !__txn_visible_all_id(session, page->modify->update_txn)))
+ mod = page->modify;
+ if (modified && txn_global->current != txn_global->oldest_id &&
+ (mod->last_eviction_id == __wt_txn_oldest_id(session) ||
+ !__wt_txn_visible_all(session, mod->update_txn, NULL)))
continue;
fast: /* If the page can't be evicted, give up. */
@@ -2270,8 +2284,7 @@ __evict_page(WT_SESSION_IMPL *session, bool is_server)
* crosses its boundaries.
*/
int
-__wt_cache_eviction_worker(
- WT_SESSION_IMPL *session, bool busy, bool readonly, u_int pct_full)
+__wt_cache_eviction_worker(WT_SESSION_IMPL *session, bool busy, u_int pct_full)
{
struct timespec enter, leave;
WT_CACHE *cache;
@@ -2334,7 +2347,7 @@ __wt_cache_eviction_worker(
max_progress = busy ? 5 : 20;
/* See if eviction is still needed. */
- if (!__wt_eviction_needed(session, busy, readonly, &pct_full) ||
+ if (!__wt_eviction_needed(session, busy, &pct_full) ||
((pct_full < 100 || cache->eviction_scrub_limit > 0.0) &&
(cache->eviction_progress >
initial_progress + max_progress)))
@@ -2344,7 +2357,7 @@ __wt_cache_eviction_worker(
* Don't make application threads participate in scrubbing for
* checkpoints. Just throttle updates instead.
*/
- if (WT_EVICT_HAS_WORKERS(session) &&
+ if (busy && WT_EVICT_HAS_WORKERS(session) &&
cache->eviction_scrub_limit > 0.0 &&
!F_ISSET(cache, WT_CACHE_EVICT_CLEAN_HARD)) {
__wt_yield();
diff --git a/src/third_party/wiredtiger/src/include/btmem.h b/src/third_party/wiredtiger/src/include/btmem.h
index bd881af0ecf..abb7cc19972 100644
--- a/src/third_party/wiredtiger/src/include/btmem.h
+++ b/src/third_party/wiredtiger/src/include/btmem.h
@@ -209,7 +209,6 @@ struct __wt_page_modify {
/* The transaction state last time eviction was attempted. */
uint64_t last_eviction_id;
- WT_DECL_TIMESTAMP(last_eviction_timestamp)
#ifdef HAVE_DIAGNOSTIC
/* Check that transaction time moves forward. */
diff --git a/src/third_party/wiredtiger/src/include/btree.i b/src/third_party/wiredtiger/src/include/btree.i
index 35cb868ac26..edc0973ee6f 100644
--- a/src/third_party/wiredtiger/src/include/btree.i
+++ b/src/third_party/wiredtiger/src/include/btree.i
@@ -149,7 +149,8 @@ __wt_cache_page_inmem_incr(WT_SESSION_IMPL *session, WT_PAGE *page, size_t size)
if (WT_PAGE_IS_INTERNAL(page)) {
(void)__wt_atomic_add64(&btree->bytes_dirty_intl, size);
(void)__wt_atomic_add64(&cache->bytes_dirty_intl, size);
- } else if (!btree->lsm_primary) {
+ } else if (!btree->lsm_primary &&
+ !F_ISSET(btree, WT_BTREE_LOOKASIDE)) {
(void)__wt_atomic_add64(&btree->bytes_dirty_leaf, size);
(void)__wt_atomic_add64(&cache->bytes_dirty_leaf, size);
}
@@ -261,7 +262,7 @@ __wt_cache_page_byte_dirty_decr(
decr, "WT_BTREE.bytes_dirty_intl");
__wt_cache_decr_check_uint64(session, &cache->bytes_dirty_intl,
decr, "WT_CACHE.bytes_dirty_intl");
- } else if (!btree->lsm_primary) {
+ } else if (!btree->lsm_primary && !F_ISSET(btree, WT_BTREE_LOOKASIDE)) {
__wt_cache_decr_check_uint64(session, &btree->bytes_dirty_leaf,
decr, "WT_BTREE.bytes_dirty_leaf");
__wt_cache_decr_check_uint64(session, &cache->bytes_dirty_leaf,
@@ -321,7 +322,8 @@ __wt_cache_dirty_incr(WT_SESSION_IMPL *session, WT_PAGE *page)
(void)__wt_atomic_add64(&cache->bytes_dirty_intl, size);
(void)__wt_atomic_add64(&cache->pages_dirty_intl, 1);
} else {
- if (!btree->lsm_primary) {
+ if (!btree->lsm_primary &&
+ !F_ISSET(btree, WT_BTREE_LOOKASIDE)) {
(void)__wt_atomic_add64(&btree->bytes_dirty_leaf, size);
(void)__wt_atomic_add64(&cache->bytes_dirty_leaf, size);
}
@@ -420,7 +422,8 @@ __wt_cache_page_evict(WT_SESSION_IMPL *session, WT_PAGE *page, bool rewrite)
__wt_cache_decr_check_uint64(session,
&cache->bytes_dirty_intl,
modify->bytes_dirty, "WT_CACHE.bytes_dirty_intl");
- } else if (!btree->lsm_primary) {
+ } else if (!btree->lsm_primary &&
+ !F_ISSET(btree, WT_BTREE_LOOKASIDE)) {
__wt_cache_decr_check_uint64(session,
&btree->bytes_dirty_leaf,
modify->bytes_dirty, "WT_BTREE.bytes_dirty_leaf");
@@ -1267,44 +1270,6 @@ __wt_leaf_page_can_split(WT_SESSION_IMPL *session, WT_PAGE *page)
}
/*
- * __wt_page_evict_retry --
- * Check if there has been transaction progress since the last eviction
- * attempt.
- */
-static inline bool
-__wt_page_evict_retry(WT_SESSION_IMPL *session, WT_PAGE *page)
-{
- WT_PAGE_MODIFY *mod;
- WT_TXN_GLOBAL *txn_global;
-
- txn_global = &S2C(session)->txn_global;
-
- if ((mod = page->modify) == NULL)
- return (true);
-
- if (txn_global->current != txn_global->oldest_id &&
- mod->last_eviction_id == __wt_txn_oldest_id(session))
- return (false);
-
-#ifdef HAVE_TIMESTAMPS
- {
- bool same_timestamp;
-
- if (__wt_timestamp_iszero(&mod->last_eviction_timestamp))
- return (true);
-
- WT_WITH_TIMESTAMP_READLOCK(session, &txn_global->rwlock,
- same_timestamp = __wt_timestamp_cmp(
- &mod->last_eviction_timestamp, &txn_global->pinned_timestamp) == 0);
- if (same_timestamp)
- return (false);
- }
-#endif
-
- return (true);
-}
-
-/*
* __wt_page_can_evict --
* Check whether a page can be evicted.
*/
diff --git a/src/third_party/wiredtiger/src/include/cache.h b/src/third_party/wiredtiger/src/include/cache.h
index a8873bff394..f9ce4316e29 100644
--- a/src/third_party/wiredtiger/src/include/cache.h
+++ b/src/third_party/wiredtiger/src/include/cache.h
@@ -78,8 +78,6 @@ struct __wt_cache {
uint64_t bytes_read; /* Bytes read into memory */
uint64_t bytes_written;
- uint64_t bytes_lookaside; /* Lookaside bytes inmem */
-
volatile uint64_t eviction_progress; /* Eviction progress count */
uint64_t last_eviction_progress;/* Tracked eviction progress */
diff --git a/src/third_party/wiredtiger/src/include/cache.i b/src/third_party/wiredtiger/src/include/cache.i
index 00f45dcd44f..c7d802f8a5f 100644
--- a/src/third_party/wiredtiger/src/include/cache.i
+++ b/src/third_party/wiredtiger/src/include/cache.i
@@ -311,8 +311,7 @@ __wt_eviction_dirty_needed(WT_SESSION_IMPL *session, u_int *pct_fullp)
* percentage as a side-effect.
*/
static inline bool
-__wt_eviction_needed(
- WT_SESSION_IMPL *session, bool busy, bool readonly, u_int *pct_fullp)
+__wt_eviction_needed(WT_SESSION_IMPL *session, bool busy, u_int *pct_fullp)
{
WT_CACHE *cache;
u_int pct_dirty, pct_full;
@@ -328,11 +327,7 @@ __wt_eviction_needed(
return (false);
clean_needed = __wt_eviction_clean_needed(session, &pct_full);
- if (readonly) {
- dirty_needed = false;
- pct_dirty = 0;
- } else
- dirty_needed = __wt_eviction_dirty_needed(session, &pct_dirty);
+ dirty_needed = __wt_eviction_dirty_needed(session, &pct_dirty);
/*
* Calculate the cache full percentage; anything over the trigger means
@@ -375,8 +370,7 @@ __wt_cache_full(WT_SESSION_IMPL *session)
* Evict pages if the cache crosses its boundaries.
*/
static inline int
-__wt_cache_eviction_check(
- WT_SESSION_IMPL *session, bool busy, bool readonly, bool *didworkp)
+__wt_cache_eviction_check(WT_SESSION_IMPL *session, bool busy, bool *didworkp)
{
WT_BTREE *btree;
WT_TXN_GLOBAL *txn_global;
@@ -427,7 +421,7 @@ __wt_cache_eviction_check(
return (0);
/* Check if eviction is needed. */
- if (!__wt_eviction_needed(session, busy, readonly, &pct_full))
+ if (!__wt_eviction_needed(session, busy, &pct_full))
return (0);
/*
@@ -437,5 +431,5 @@ __wt_cache_eviction_check(
if (didworkp != NULL)
*didworkp = true;
- return (__wt_cache_eviction_worker(session, busy, readonly, pct_full));
+ return (__wt_cache_eviction_worker(session, busy, pct_full));
}
diff --git a/src/third_party/wiredtiger/src/include/cursor.i b/src/third_party/wiredtiger/src/include/cursor.i
index ceef5061075..c29d6aa09ab 100644
--- a/src/third_party/wiredtiger/src/include/cursor.i
+++ b/src/third_party/wiredtiger/src/include/cursor.i
@@ -149,7 +149,7 @@ __cursor_enter(WT_SESSION_IMPL *session)
* whether the cache is full.
*/
if (session->ncursors == 0)
- WT_RET(__wt_cache_eviction_check(session, false, false, NULL));
+ WT_RET(__wt_cache_eviction_check(session, false, NULL));
++session->ncursors;
return (0);
}
diff --git a/src/third_party/wiredtiger/src/include/extern.h b/src/third_party/wiredtiger/src/include/extern.h
index 17267861717..17afb48bda6 100644
--- a/src/third_party/wiredtiger/src/include/extern.h
+++ b/src/third_party/wiredtiger/src/include/extern.h
@@ -366,7 +366,7 @@ extern int __wt_evict_create(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUT
extern int __wt_evict_destroy(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern int __wt_evict_file_exclusive_on(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern void __wt_evict_file_exclusive_off(WT_SESSION_IMPL *session);
-extern int __wt_cache_eviction_worker( WT_SESSION_IMPL *session, bool busy, bool readonly, u_int pct_full) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
+extern int __wt_cache_eviction_worker(WT_SESSION_IMPL *session, bool busy, u_int pct_full) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
extern bool __wt_page_evict_urgent(WT_SESSION_IMPL *session, WT_REF *ref);
extern void __wt_evict_priority_set(WT_SESSION_IMPL *session, uint64_t v);
extern void __wt_evict_priority_clear(WT_SESSION_IMPL *session);
diff --git a/src/third_party/wiredtiger/src/include/stat.h b/src/third_party/wiredtiger/src/include/stat.h
index 438333858b9..2477079a2a8 100644
--- a/src/third_party/wiredtiger/src/include/stat.h
+++ b/src/third_party/wiredtiger/src/include/stat.h
@@ -293,7 +293,6 @@ struct __wt_connection_stats {
int64_t cache_write_app_count;
int64_t cache_write_app_time;
int64_t cache_bytes_image;
- int64_t cache_bytes_lookaside;
int64_t cache_bytes_inuse;
int64_t cache_bytes_other;
int64_t cache_bytes_read;
diff --git a/src/third_party/wiredtiger/src/include/txn.i b/src/third_party/wiredtiger/src/include/txn.i
index 2ecbd5dc440..9e70632d890 100644
--- a/src/third_party/wiredtiger/src/include/txn.i
+++ b/src/third_party/wiredtiger/src/include/txn.i
@@ -287,8 +287,7 @@ __wt_txn_oldest_id(WT_SESSION_IMPL *session)
*/
oldest_id = txn_global->oldest_id;
include_checkpoint_txn = btree == NULL ||
- (!F_ISSET(btree, WT_BTREE_LOOKASIDE) &&
- btree->checkpoint_gen != __wt_gen(session, WT_GEN_CHECKPOINT));
+ btree->checkpoint_gen != __wt_gen(session, WT_GEN_CHECKPOINT);
if (!include_checkpoint_txn)
return (oldest_id);
@@ -524,9 +523,11 @@ __wt_txn_begin(WT_SESSION_IMPL *session, const char *cfg[])
if (session->ncursors > 0)
WT_RET(__wt_session_copy_values(session));
- /* Stall here if the cache is completely full. */
- WT_RET(__wt_cache_eviction_check(session, false, true, NULL));
-
+ /*
+ * We're about to allocate a snapshot: if we need to block for
+ * eviction, it's better to do it beforehand.
+ */
+ WT_RET(__wt_cache_eviction_check(session, false, NULL));
__wt_txn_get_snapshot(session);
}
@@ -571,14 +572,11 @@ __wt_txn_idle_cache_check(WT_SESSION_IMPL *session)
/*
* Check the published snap_min because read-uncommitted never sets
- * WT_TXN_HAS_SNAPSHOT. We don't have any transaction information at
- * this point, so assume the transaction will be read-only. The dirty
- * cache check will be performed when the transaction completes, if
- * necessary.
+ * WT_TXN_HAS_SNAPSHOT.
*/
if (F_ISSET(txn, WT_TXN_RUNNING) &&
!F_ISSET(txn, WT_TXN_HAS_ID) && txn_state->pinned_id == WT_TXN_NONE)
- WT_RET(__wt_cache_eviction_check(session, false, true, NULL));
+ WT_RET(__wt_cache_eviction_check(session, false, NULL));
return (0);
}
diff --git a/src/third_party/wiredtiger/src/include/wiredtiger.in b/src/third_party/wiredtiger/src/include/wiredtiger.in
index c24cffe2371..5d3b0c52cbd 100644
--- a/src/third_party/wiredtiger/src/include/wiredtiger.in
+++ b/src/third_party/wiredtiger/src/include/wiredtiger.in
@@ -4742,578 +4742,576 @@ extern int wiredtiger_extension_terminate(WT_CONNECTION *connection);
#define WT_STAT_CONN_CACHE_WRITE_APP_TIME 1034
/*! cache: bytes belonging to page images in the cache */
#define WT_STAT_CONN_CACHE_BYTES_IMAGE 1035
-/*! cache: bytes belonging to the lookaside table in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_LOOKASIDE 1036
/*! cache: bytes currently in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_INUSE 1037
+#define WT_STAT_CONN_CACHE_BYTES_INUSE 1036
/*! cache: bytes not belonging to page images in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_OTHER 1038
+#define WT_STAT_CONN_CACHE_BYTES_OTHER 1037
/*! cache: bytes read into cache */
-#define WT_STAT_CONN_CACHE_BYTES_READ 1039
+#define WT_STAT_CONN_CACHE_BYTES_READ 1038
/*! cache: bytes written from cache */
-#define WT_STAT_CONN_CACHE_BYTES_WRITE 1040
+#define WT_STAT_CONN_CACHE_BYTES_WRITE 1039
/*! cache: checkpoint blocked page eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_CHECKPOINT 1041
+#define WT_STAT_CONN_CACHE_EVICTION_CHECKPOINT 1040
/*! cache: eviction calls to get a page */
-#define WT_STAT_CONN_CACHE_EVICTION_GET_REF 1042
+#define WT_STAT_CONN_CACHE_EVICTION_GET_REF 1041
/*! cache: eviction calls to get a page found queue empty */
-#define WT_STAT_CONN_CACHE_EVICTION_GET_REF_EMPTY 1043
+#define WT_STAT_CONN_CACHE_EVICTION_GET_REF_EMPTY 1042
/*! cache: eviction calls to get a page found queue empty after locking */
-#define WT_STAT_CONN_CACHE_EVICTION_GET_REF_EMPTY2 1044
+#define WT_STAT_CONN_CACHE_EVICTION_GET_REF_EMPTY2 1043
/*! cache: eviction currently operating in aggressive mode */
-#define WT_STAT_CONN_CACHE_EVICTION_AGGRESSIVE_SET 1045
+#define WT_STAT_CONN_CACHE_EVICTION_AGGRESSIVE_SET 1044
/*! cache: eviction empty score */
-#define WT_STAT_CONN_CACHE_EVICTION_EMPTY_SCORE 1046
+#define WT_STAT_CONN_CACHE_EVICTION_EMPTY_SCORE 1045
/*! cache: eviction passes of a file */
-#define WT_STAT_CONN_CACHE_EVICTION_WALK_PASSES 1047
+#define WT_STAT_CONN_CACHE_EVICTION_WALK_PASSES 1046
/*! cache: eviction server candidate queue empty when topping up */
-#define WT_STAT_CONN_CACHE_EVICTION_QUEUE_EMPTY 1048
+#define WT_STAT_CONN_CACHE_EVICTION_QUEUE_EMPTY 1047
/*! cache: eviction server candidate queue not empty when topping up */
-#define WT_STAT_CONN_CACHE_EVICTION_QUEUE_NOT_EMPTY 1049
+#define WT_STAT_CONN_CACHE_EVICTION_QUEUE_NOT_EMPTY 1048
/*! cache: eviction server evicting pages */
-#define WT_STAT_CONN_CACHE_EVICTION_SERVER_EVICTING 1050
+#define WT_STAT_CONN_CACHE_EVICTION_SERVER_EVICTING 1049
/*!
* cache: eviction server slept, because we did not make progress with
* eviction
*/
-#define WT_STAT_CONN_CACHE_EVICTION_SERVER_SLEPT 1051
+#define WT_STAT_CONN_CACHE_EVICTION_SERVER_SLEPT 1050
/*! cache: eviction server unable to reach eviction goal */
-#define WT_STAT_CONN_CACHE_EVICTION_SLOW 1052
+#define WT_STAT_CONN_CACHE_EVICTION_SLOW 1051
/*! cache: eviction state */
-#define WT_STAT_CONN_CACHE_EVICTION_STATE 1053
+#define WT_STAT_CONN_CACHE_EVICTION_STATE 1052
/*! cache: eviction walk target pages histogram - 0-9 */
-#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_LT10 1054
+#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_LT10 1053
/*! cache: eviction walk target pages histogram - 10-31 */
-#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_LT32 1055
+#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_LT32 1054
/*! cache: eviction walk target pages histogram - 128 and higher */
-#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_GE128 1056
+#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_GE128 1055
/*! cache: eviction walk target pages histogram - 32-63 */
-#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_LT64 1057
+#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_LT64 1056
/*! cache: eviction walk target pages histogram - 64-128 */
-#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_LT128 1058
+#define WT_STAT_CONN_CACHE_EVICTION_TARGET_PAGE_LT128 1057
/*! cache: eviction walks abandoned */
-#define WT_STAT_CONN_CACHE_EVICTION_WALKS_ABANDONED 1059
+#define WT_STAT_CONN_CACHE_EVICTION_WALKS_ABANDONED 1058
/*! cache: eviction walks gave up because they restarted their walk twice */
-#define WT_STAT_CONN_CACHE_EVICTION_WALKS_STOPPED 1060
+#define WT_STAT_CONN_CACHE_EVICTION_WALKS_STOPPED 1059
/*!
* cache: eviction walks gave up because they saw too many pages and
* found no candidates
*/
-#define WT_STAT_CONN_CACHE_EVICTION_WALKS_GAVE_UP_NO_TARGETS 1061
+#define WT_STAT_CONN_CACHE_EVICTION_WALKS_GAVE_UP_NO_TARGETS 1060
/*!
* cache: eviction walks gave up because they saw too many pages and
* found too few candidates
*/
-#define WT_STAT_CONN_CACHE_EVICTION_WALKS_GAVE_UP_RATIO 1062
+#define WT_STAT_CONN_CACHE_EVICTION_WALKS_GAVE_UP_RATIO 1061
/*! cache: eviction walks reached end of tree */
-#define WT_STAT_CONN_CACHE_EVICTION_WALKS_ENDED 1063
+#define WT_STAT_CONN_CACHE_EVICTION_WALKS_ENDED 1062
/*! cache: eviction walks started from root of tree */
-#define WT_STAT_CONN_CACHE_EVICTION_WALK_FROM_ROOT 1064
+#define WT_STAT_CONN_CACHE_EVICTION_WALK_FROM_ROOT 1063
/*! cache: eviction walks started from saved location in tree */
-#define WT_STAT_CONN_CACHE_EVICTION_WALK_SAVED_POS 1065
+#define WT_STAT_CONN_CACHE_EVICTION_WALK_SAVED_POS 1064
/*! cache: eviction worker thread active */
-#define WT_STAT_CONN_CACHE_EVICTION_ACTIVE_WORKERS 1066
+#define WT_STAT_CONN_CACHE_EVICTION_ACTIVE_WORKERS 1065
/*! cache: eviction worker thread created */
-#define WT_STAT_CONN_CACHE_EVICTION_WORKER_CREATED 1067
+#define WT_STAT_CONN_CACHE_EVICTION_WORKER_CREATED 1066
/*! cache: eviction worker thread evicting pages */
-#define WT_STAT_CONN_CACHE_EVICTION_WORKER_EVICTING 1068
+#define WT_STAT_CONN_CACHE_EVICTION_WORKER_EVICTING 1067
/*! cache: eviction worker thread removed */
-#define WT_STAT_CONN_CACHE_EVICTION_WORKER_REMOVED 1069
+#define WT_STAT_CONN_CACHE_EVICTION_WORKER_REMOVED 1068
/*! cache: eviction worker thread stable number */
-#define WT_STAT_CONN_CACHE_EVICTION_STABLE_STATE_WORKERS 1070
+#define WT_STAT_CONN_CACHE_EVICTION_STABLE_STATE_WORKERS 1069
/*!
* cache: failed eviction of pages that exceeded the in-memory maximum
* count
*/
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE_FAIL 1071
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE_FAIL 1070
/*!
* cache: failed eviction of pages that exceeded the in-memory maximum
* time (usecs)
*/
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE_FAIL_TIME 1072
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE_FAIL_TIME 1071
/*! cache: files with active eviction walks */
-#define WT_STAT_CONN_CACHE_EVICTION_WALKS_ACTIVE 1073
+#define WT_STAT_CONN_CACHE_EVICTION_WALKS_ACTIVE 1072
/*! cache: files with new eviction walks started */
-#define WT_STAT_CONN_CACHE_EVICTION_WALKS_STARTED 1074
+#define WT_STAT_CONN_CACHE_EVICTION_WALKS_STARTED 1073
/*! cache: force re-tuning of eviction workers once in a while */
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE_RETUNE 1075
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE_RETUNE 1074
/*! cache: hazard pointer blocked page eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_HAZARD 1076
+#define WT_STAT_CONN_CACHE_EVICTION_HAZARD 1075
/*! cache: hazard pointer check calls */
-#define WT_STAT_CONN_CACHE_HAZARD_CHECKS 1077
+#define WT_STAT_CONN_CACHE_HAZARD_CHECKS 1076
/*! cache: hazard pointer check entries walked */
-#define WT_STAT_CONN_CACHE_HAZARD_WALKS 1078
+#define WT_STAT_CONN_CACHE_HAZARD_WALKS 1077
/*! cache: hazard pointer maximum array length */
-#define WT_STAT_CONN_CACHE_HAZARD_MAX 1079
+#define WT_STAT_CONN_CACHE_HAZARD_MAX 1078
/*! cache: in-memory page passed criteria to be split */
-#define WT_STAT_CONN_CACHE_INMEM_SPLITTABLE 1080
+#define WT_STAT_CONN_CACHE_INMEM_SPLITTABLE 1079
/*! cache: in-memory page splits */
-#define WT_STAT_CONN_CACHE_INMEM_SPLIT 1081
+#define WT_STAT_CONN_CACHE_INMEM_SPLIT 1080
/*! cache: internal pages evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_INTERNAL 1082
+#define WT_STAT_CONN_CACHE_EVICTION_INTERNAL 1081
/*! cache: internal pages split during eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_SPLIT_INTERNAL 1083
+#define WT_STAT_CONN_CACHE_EVICTION_SPLIT_INTERNAL 1082
/*! cache: leaf pages split during eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_SPLIT_LEAF 1084
+#define WT_STAT_CONN_CACHE_EVICTION_SPLIT_LEAF 1083
/*! cache: lookaside score */
-#define WT_STAT_CONN_CACHE_LOOKASIDE_SCORE 1085
+#define WT_STAT_CONN_CACHE_LOOKASIDE_SCORE 1084
/*! cache: lookaside table entries */
-#define WT_STAT_CONN_CACHE_LOOKASIDE_ENTRIES 1086
+#define WT_STAT_CONN_CACHE_LOOKASIDE_ENTRIES 1085
/*! cache: lookaside table insert calls */
-#define WT_STAT_CONN_CACHE_LOOKASIDE_INSERT 1087
+#define WT_STAT_CONN_CACHE_LOOKASIDE_INSERT 1086
/*! cache: lookaside table remove calls */
-#define WT_STAT_CONN_CACHE_LOOKASIDE_REMOVE 1088
+#define WT_STAT_CONN_CACHE_LOOKASIDE_REMOVE 1087
/*! cache: maximum bytes configured */
-#define WT_STAT_CONN_CACHE_BYTES_MAX 1089
+#define WT_STAT_CONN_CACHE_BYTES_MAX 1088
/*! cache: maximum page size at eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_MAXIMUM_PAGE_SIZE 1090
+#define WT_STAT_CONN_CACHE_EVICTION_MAXIMUM_PAGE_SIZE 1089
/*! cache: modified pages evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_DIRTY 1091
+#define WT_STAT_CONN_CACHE_EVICTION_DIRTY 1090
/*! cache: modified pages evicted by application threads */
-#define WT_STAT_CONN_CACHE_EVICTION_APP_DIRTY 1092
+#define WT_STAT_CONN_CACHE_EVICTION_APP_DIRTY 1091
/*! cache: overflow pages read into cache */
-#define WT_STAT_CONN_CACHE_READ_OVERFLOW 1093
+#define WT_STAT_CONN_CACHE_READ_OVERFLOW 1092
/*! cache: page split during eviction deepened the tree */
-#define WT_STAT_CONN_CACHE_EVICTION_DEEPEN 1094
+#define WT_STAT_CONN_CACHE_EVICTION_DEEPEN 1093
/*! cache: page written requiring lookaside records */
-#define WT_STAT_CONN_CACHE_WRITE_LOOKASIDE 1095
+#define WT_STAT_CONN_CACHE_WRITE_LOOKASIDE 1094
/*! cache: pages currently held in the cache */
-#define WT_STAT_CONN_CACHE_PAGES_INUSE 1096
+#define WT_STAT_CONN_CACHE_PAGES_INUSE 1095
/*! cache: pages evicted because they exceeded the in-memory maximum count */
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE 1097
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE 1096
/*!
* cache: pages evicted because they exceeded the in-memory maximum time
* (usecs)
*/
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE_TIME 1098
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE_TIME 1097
/*! cache: pages evicted because they had chains of deleted items count */
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE_DELETE 1099
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE_DELETE 1098
/*!
* cache: pages evicted because they had chains of deleted items time
* (usecs)
*/
-#define WT_STAT_CONN_CACHE_EVICTION_FORCE_DELETE_TIME 1100
+#define WT_STAT_CONN_CACHE_EVICTION_FORCE_DELETE_TIME 1099
/*! cache: pages evicted by application threads */
-#define WT_STAT_CONN_CACHE_EVICTION_APP 1101
+#define WT_STAT_CONN_CACHE_EVICTION_APP 1100
/*! cache: pages queued for eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED 1102
+#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED 1101
/*! cache: pages queued for urgent eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED_URGENT 1103
+#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED_URGENT 1102
/*! cache: pages queued for urgent eviction during walk */
-#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED_OLDEST 1104
+#define WT_STAT_CONN_CACHE_EVICTION_PAGES_QUEUED_OLDEST 1103
/*! cache: pages read into cache */
-#define WT_STAT_CONN_CACHE_READ 1105
+#define WT_STAT_CONN_CACHE_READ 1104
/*! cache: pages read into cache requiring lookaside entries */
-#define WT_STAT_CONN_CACHE_READ_LOOKASIDE 1106
+#define WT_STAT_CONN_CACHE_READ_LOOKASIDE 1105
/*! cache: pages requested from the cache */
-#define WT_STAT_CONN_CACHE_PAGES_REQUESTED 1107
+#define WT_STAT_CONN_CACHE_PAGES_REQUESTED 1106
/*! cache: pages seen by eviction walk */
-#define WT_STAT_CONN_CACHE_EVICTION_PAGES_SEEN 1108
+#define WT_STAT_CONN_CACHE_EVICTION_PAGES_SEEN 1107
/*! cache: pages selected for eviction unable to be evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_FAIL 1109
+#define WT_STAT_CONN_CACHE_EVICTION_FAIL 1108
/*! cache: pages walked for eviction */
-#define WT_STAT_CONN_CACHE_EVICTION_WALK 1110
+#define WT_STAT_CONN_CACHE_EVICTION_WALK 1109
/*! cache: pages written from cache */
-#define WT_STAT_CONN_CACHE_WRITE 1111
+#define WT_STAT_CONN_CACHE_WRITE 1110
/*! cache: pages written requiring in-memory restoration */
-#define WT_STAT_CONN_CACHE_WRITE_RESTORE 1112
+#define WT_STAT_CONN_CACHE_WRITE_RESTORE 1111
/*! cache: percentage overhead */
-#define WT_STAT_CONN_CACHE_OVERHEAD 1113
+#define WT_STAT_CONN_CACHE_OVERHEAD 1112
/*! cache: tracked bytes belonging to internal pages in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_INTERNAL 1114
+#define WT_STAT_CONN_CACHE_BYTES_INTERNAL 1113
/*! cache: tracked bytes belonging to leaf pages in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_LEAF 1115
+#define WT_STAT_CONN_CACHE_BYTES_LEAF 1114
/*! cache: tracked dirty bytes in the cache */
-#define WT_STAT_CONN_CACHE_BYTES_DIRTY 1116
+#define WT_STAT_CONN_CACHE_BYTES_DIRTY 1115
/*! cache: tracked dirty pages in the cache */
-#define WT_STAT_CONN_CACHE_PAGES_DIRTY 1117
+#define WT_STAT_CONN_CACHE_PAGES_DIRTY 1116
/*! cache: unmodified pages evicted */
-#define WT_STAT_CONN_CACHE_EVICTION_CLEAN 1118
+#define WT_STAT_CONN_CACHE_EVICTION_CLEAN 1117
/*! connection: auto adjusting condition resets */
-#define WT_STAT_CONN_COND_AUTO_WAIT_RESET 1119
+#define WT_STAT_CONN_COND_AUTO_WAIT_RESET 1118
/*! connection: auto adjusting condition wait calls */
-#define WT_STAT_CONN_COND_AUTO_WAIT 1120
+#define WT_STAT_CONN_COND_AUTO_WAIT 1119
/*! connection: detected system time went backwards */
-#define WT_STAT_CONN_TIME_TRAVEL 1121
+#define WT_STAT_CONN_TIME_TRAVEL 1120
/*! connection: files currently open */
-#define WT_STAT_CONN_FILE_OPEN 1122
+#define WT_STAT_CONN_FILE_OPEN 1121
/*! connection: memory allocations */
-#define WT_STAT_CONN_MEMORY_ALLOCATION 1123
+#define WT_STAT_CONN_MEMORY_ALLOCATION 1122
/*! connection: memory frees */
-#define WT_STAT_CONN_MEMORY_FREE 1124
+#define WT_STAT_CONN_MEMORY_FREE 1123
/*! connection: memory re-allocations */
-#define WT_STAT_CONN_MEMORY_GROW 1125
+#define WT_STAT_CONN_MEMORY_GROW 1124
/*! connection: pthread mutex condition wait calls */
-#define WT_STAT_CONN_COND_WAIT 1126
+#define WT_STAT_CONN_COND_WAIT 1125
/*! connection: pthread mutex shared lock read-lock calls */
-#define WT_STAT_CONN_RWLOCK_READ 1127
+#define WT_STAT_CONN_RWLOCK_READ 1126
/*! connection: pthread mutex shared lock write-lock calls */
-#define WT_STAT_CONN_RWLOCK_WRITE 1128
+#define WT_STAT_CONN_RWLOCK_WRITE 1127
/*! connection: total fsync I/Os */
-#define WT_STAT_CONN_FSYNC_IO 1129
+#define WT_STAT_CONN_FSYNC_IO 1128
/*! connection: total read I/Os */
-#define WT_STAT_CONN_READ_IO 1130
+#define WT_STAT_CONN_READ_IO 1129
/*! connection: total write I/Os */
-#define WT_STAT_CONN_WRITE_IO 1131
+#define WT_STAT_CONN_WRITE_IO 1130
/*! cursor: cursor create calls */
-#define WT_STAT_CONN_CURSOR_CREATE 1132
+#define WT_STAT_CONN_CURSOR_CREATE 1131
/*! cursor: cursor insert calls */
-#define WT_STAT_CONN_CURSOR_INSERT 1133
+#define WT_STAT_CONN_CURSOR_INSERT 1132
/*! cursor: cursor modify calls */
-#define WT_STAT_CONN_CURSOR_MODIFY 1134
+#define WT_STAT_CONN_CURSOR_MODIFY 1133
/*! cursor: cursor next calls */
-#define WT_STAT_CONN_CURSOR_NEXT 1135
+#define WT_STAT_CONN_CURSOR_NEXT 1134
/*! cursor: cursor prev calls */
-#define WT_STAT_CONN_CURSOR_PREV 1136
+#define WT_STAT_CONN_CURSOR_PREV 1135
/*! cursor: cursor remove calls */
-#define WT_STAT_CONN_CURSOR_REMOVE 1137
+#define WT_STAT_CONN_CURSOR_REMOVE 1136
/*! cursor: cursor reserve calls */
-#define WT_STAT_CONN_CURSOR_RESERVE 1138
+#define WT_STAT_CONN_CURSOR_RESERVE 1137
/*! cursor: cursor reset calls */
-#define WT_STAT_CONN_CURSOR_RESET 1139
+#define WT_STAT_CONN_CURSOR_RESET 1138
/*! cursor: cursor restarted searches */
-#define WT_STAT_CONN_CURSOR_RESTART 1140
+#define WT_STAT_CONN_CURSOR_RESTART 1139
/*! cursor: cursor search calls */
-#define WT_STAT_CONN_CURSOR_SEARCH 1141
+#define WT_STAT_CONN_CURSOR_SEARCH 1140
/*! cursor: cursor search near calls */
-#define WT_STAT_CONN_CURSOR_SEARCH_NEAR 1142
+#define WT_STAT_CONN_CURSOR_SEARCH_NEAR 1141
/*! cursor: cursor update calls */
-#define WT_STAT_CONN_CURSOR_UPDATE 1143
+#define WT_STAT_CONN_CURSOR_UPDATE 1142
/*! cursor: truncate calls */
-#define WT_STAT_CONN_CURSOR_TRUNCATE 1144
+#define WT_STAT_CONN_CURSOR_TRUNCATE 1143
/*! data-handle: connection data handles currently active */
-#define WT_STAT_CONN_DH_CONN_HANDLE_COUNT 1145
+#define WT_STAT_CONN_DH_CONN_HANDLE_COUNT 1144
/*! data-handle: connection sweep candidate became referenced */
-#define WT_STAT_CONN_DH_SWEEP_REF 1146
+#define WT_STAT_CONN_DH_SWEEP_REF 1145
/*! data-handle: connection sweep dhandles closed */
-#define WT_STAT_CONN_DH_SWEEP_CLOSE 1147
+#define WT_STAT_CONN_DH_SWEEP_CLOSE 1146
/*! data-handle: connection sweep dhandles removed from hash list */
-#define WT_STAT_CONN_DH_SWEEP_REMOVE 1148
+#define WT_STAT_CONN_DH_SWEEP_REMOVE 1147
/*! data-handle: connection sweep time-of-death sets */
-#define WT_STAT_CONN_DH_SWEEP_TOD 1149
+#define WT_STAT_CONN_DH_SWEEP_TOD 1148
/*! data-handle: connection sweeps */
-#define WT_STAT_CONN_DH_SWEEPS 1150
+#define WT_STAT_CONN_DH_SWEEPS 1149
/*! data-handle: session dhandles swept */
-#define WT_STAT_CONN_DH_SESSION_HANDLES 1151
+#define WT_STAT_CONN_DH_SESSION_HANDLES 1150
/*! data-handle: session sweep attempts */
-#define WT_STAT_CONN_DH_SESSION_SWEEPS 1152
+#define WT_STAT_CONN_DH_SESSION_SWEEPS 1151
/*! lock: checkpoint lock acquisitions */
-#define WT_STAT_CONN_LOCK_CHECKPOINT_COUNT 1153
+#define WT_STAT_CONN_LOCK_CHECKPOINT_COUNT 1152
/*! lock: checkpoint lock application thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_APPLICATION 1154
+#define WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_APPLICATION 1153
/*! lock: checkpoint lock internal thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_INTERNAL 1155
+#define WT_STAT_CONN_LOCK_CHECKPOINT_WAIT_INTERNAL 1154
/*!
* lock: dhandle lock application thread time waiting for the dhandle
* lock (usecs)
*/
-#define WT_STAT_CONN_LOCK_DHANDLE_WAIT_APPLICATION 1156
+#define WT_STAT_CONN_LOCK_DHANDLE_WAIT_APPLICATION 1155
/*!
* lock: dhandle lock internal thread time waiting for the dhandle lock
* (usecs)
*/
-#define WT_STAT_CONN_LOCK_DHANDLE_WAIT_INTERNAL 1157
+#define WT_STAT_CONN_LOCK_DHANDLE_WAIT_INTERNAL 1156
/*! lock: dhandle read lock acquisitions */
-#define WT_STAT_CONN_LOCK_DHANDLE_READ_COUNT 1158
+#define WT_STAT_CONN_LOCK_DHANDLE_READ_COUNT 1157
/*! lock: dhandle write lock acquisitions */
-#define WT_STAT_CONN_LOCK_DHANDLE_WRITE_COUNT 1159
+#define WT_STAT_CONN_LOCK_DHANDLE_WRITE_COUNT 1158
/*! lock: metadata lock acquisitions */
-#define WT_STAT_CONN_LOCK_METADATA_COUNT 1160
+#define WT_STAT_CONN_LOCK_METADATA_COUNT 1159
/*! lock: metadata lock application thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_METADATA_WAIT_APPLICATION 1161
+#define WT_STAT_CONN_LOCK_METADATA_WAIT_APPLICATION 1160
/*! lock: metadata lock internal thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_METADATA_WAIT_INTERNAL 1162
+#define WT_STAT_CONN_LOCK_METADATA_WAIT_INTERNAL 1161
/*! lock: schema lock acquisitions */
-#define WT_STAT_CONN_LOCK_SCHEMA_COUNT 1163
+#define WT_STAT_CONN_LOCK_SCHEMA_COUNT 1162
/*! lock: schema lock application thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_SCHEMA_WAIT_APPLICATION 1164
+#define WT_STAT_CONN_LOCK_SCHEMA_WAIT_APPLICATION 1163
/*! lock: schema lock internal thread wait time (usecs) */
-#define WT_STAT_CONN_LOCK_SCHEMA_WAIT_INTERNAL 1165
+#define WT_STAT_CONN_LOCK_SCHEMA_WAIT_INTERNAL 1164
/*!
* lock: table lock application thread time waiting for the table lock
* (usecs)
*/
-#define WT_STAT_CONN_LOCK_TABLE_WAIT_APPLICATION 1166
+#define WT_STAT_CONN_LOCK_TABLE_WAIT_APPLICATION 1165
/*!
* lock: table lock internal thread time waiting for the table lock
* (usecs)
*/
-#define WT_STAT_CONN_LOCK_TABLE_WAIT_INTERNAL 1167
+#define WT_STAT_CONN_LOCK_TABLE_WAIT_INTERNAL 1166
/*! lock: table read lock acquisitions */
-#define WT_STAT_CONN_LOCK_TABLE_READ_COUNT 1168
+#define WT_STAT_CONN_LOCK_TABLE_READ_COUNT 1167
/*! lock: table write lock acquisitions */
-#define WT_STAT_CONN_LOCK_TABLE_WRITE_COUNT 1169
+#define WT_STAT_CONN_LOCK_TABLE_WRITE_COUNT 1168
/*! log: busy returns attempting to switch slots */
-#define WT_STAT_CONN_LOG_SLOT_SWITCH_BUSY 1170
+#define WT_STAT_CONN_LOG_SLOT_SWITCH_BUSY 1169
/*! log: force checkpoint calls slept */
-#define WT_STAT_CONN_LOG_FORCE_CKPT_SLEEP 1171
+#define WT_STAT_CONN_LOG_FORCE_CKPT_SLEEP 1170
/*! log: log bytes of payload data */
-#define WT_STAT_CONN_LOG_BYTES_PAYLOAD 1172
+#define WT_STAT_CONN_LOG_BYTES_PAYLOAD 1171
/*! log: log bytes written */
-#define WT_STAT_CONN_LOG_BYTES_WRITTEN 1173
+#define WT_STAT_CONN_LOG_BYTES_WRITTEN 1172
/*! log: log files manually zero-filled */
-#define WT_STAT_CONN_LOG_ZERO_FILLS 1174
+#define WT_STAT_CONN_LOG_ZERO_FILLS 1173
/*! log: log flush operations */
-#define WT_STAT_CONN_LOG_FLUSH 1175
+#define WT_STAT_CONN_LOG_FLUSH 1174
/*! log: log force write operations */
-#define WT_STAT_CONN_LOG_FORCE_WRITE 1176
+#define WT_STAT_CONN_LOG_FORCE_WRITE 1175
/*! log: log force write operations skipped */
-#define WT_STAT_CONN_LOG_FORCE_WRITE_SKIP 1177
+#define WT_STAT_CONN_LOG_FORCE_WRITE_SKIP 1176
/*! log: log records compressed */
-#define WT_STAT_CONN_LOG_COMPRESS_WRITES 1178
+#define WT_STAT_CONN_LOG_COMPRESS_WRITES 1177
/*! log: log records not compressed */
-#define WT_STAT_CONN_LOG_COMPRESS_WRITE_FAILS 1179
+#define WT_STAT_CONN_LOG_COMPRESS_WRITE_FAILS 1178
/*! log: log records too small to compress */
-#define WT_STAT_CONN_LOG_COMPRESS_SMALL 1180
+#define WT_STAT_CONN_LOG_COMPRESS_SMALL 1179
/*! log: log release advances write LSN */
-#define WT_STAT_CONN_LOG_RELEASE_WRITE_LSN 1181
+#define WT_STAT_CONN_LOG_RELEASE_WRITE_LSN 1180
/*! log: log scan operations */
-#define WT_STAT_CONN_LOG_SCANS 1182
+#define WT_STAT_CONN_LOG_SCANS 1181
/*! log: log scan records requiring two reads */
-#define WT_STAT_CONN_LOG_SCAN_REREADS 1183
+#define WT_STAT_CONN_LOG_SCAN_REREADS 1182
/*! log: log server thread advances write LSN */
-#define WT_STAT_CONN_LOG_WRITE_LSN 1184
+#define WT_STAT_CONN_LOG_WRITE_LSN 1183
/*! log: log server thread write LSN walk skipped */
-#define WT_STAT_CONN_LOG_WRITE_LSN_SKIP 1185
+#define WT_STAT_CONN_LOG_WRITE_LSN_SKIP 1184
/*! log: log sync operations */
-#define WT_STAT_CONN_LOG_SYNC 1186
+#define WT_STAT_CONN_LOG_SYNC 1185
/*! log: log sync time duration (usecs) */
-#define WT_STAT_CONN_LOG_SYNC_DURATION 1187
+#define WT_STAT_CONN_LOG_SYNC_DURATION 1186
/*! log: log sync_dir operations */
-#define WT_STAT_CONN_LOG_SYNC_DIR 1188
+#define WT_STAT_CONN_LOG_SYNC_DIR 1187
/*! log: log sync_dir time duration (usecs) */
-#define WT_STAT_CONN_LOG_SYNC_DIR_DURATION 1189
+#define WT_STAT_CONN_LOG_SYNC_DIR_DURATION 1188
/*! log: log write operations */
-#define WT_STAT_CONN_LOG_WRITES 1190
+#define WT_STAT_CONN_LOG_WRITES 1189
/*! log: logging bytes consolidated */
-#define WT_STAT_CONN_LOG_SLOT_CONSOLIDATED 1191
+#define WT_STAT_CONN_LOG_SLOT_CONSOLIDATED 1190
/*! log: maximum log file size */
-#define WT_STAT_CONN_LOG_MAX_FILESIZE 1192
+#define WT_STAT_CONN_LOG_MAX_FILESIZE 1191
/*! log: number of pre-allocated log files to create */
-#define WT_STAT_CONN_LOG_PREALLOC_MAX 1193
+#define WT_STAT_CONN_LOG_PREALLOC_MAX 1192
/*! log: pre-allocated log files not ready and missed */
-#define WT_STAT_CONN_LOG_PREALLOC_MISSED 1194
+#define WT_STAT_CONN_LOG_PREALLOC_MISSED 1193
/*! log: pre-allocated log files prepared */
-#define WT_STAT_CONN_LOG_PREALLOC_FILES 1195
+#define WT_STAT_CONN_LOG_PREALLOC_FILES 1194
/*! log: pre-allocated log files used */
-#define WT_STAT_CONN_LOG_PREALLOC_USED 1196
+#define WT_STAT_CONN_LOG_PREALLOC_USED 1195
/*! log: records processed by log scan */
-#define WT_STAT_CONN_LOG_SCAN_RECORDS 1197
+#define WT_STAT_CONN_LOG_SCAN_RECORDS 1196
/*! log: slot close lost race */
-#define WT_STAT_CONN_LOG_SLOT_CLOSE_RACE 1198
+#define WT_STAT_CONN_LOG_SLOT_CLOSE_RACE 1197
/*! log: slot close unbuffered waits */
-#define WT_STAT_CONN_LOG_SLOT_CLOSE_UNBUF 1199
+#define WT_STAT_CONN_LOG_SLOT_CLOSE_UNBUF 1198
/*! log: slot closures */
-#define WT_STAT_CONN_LOG_SLOT_CLOSES 1200
+#define WT_STAT_CONN_LOG_SLOT_CLOSES 1199
/*! log: slot join atomic update races */
-#define WT_STAT_CONN_LOG_SLOT_RACES 1201
+#define WT_STAT_CONN_LOG_SLOT_RACES 1200
/*! log: slot join calls atomic updates raced */
-#define WT_STAT_CONN_LOG_SLOT_YIELD_RACE 1202
+#define WT_STAT_CONN_LOG_SLOT_YIELD_RACE 1201
/*! log: slot join calls did not yield */
-#define WT_STAT_CONN_LOG_SLOT_IMMEDIATE 1203
+#define WT_STAT_CONN_LOG_SLOT_IMMEDIATE 1202
/*! log: slot join calls found active slot closed */
-#define WT_STAT_CONN_LOG_SLOT_YIELD_CLOSE 1204
+#define WT_STAT_CONN_LOG_SLOT_YIELD_CLOSE 1203
/*! log: slot join calls slept */
-#define WT_STAT_CONN_LOG_SLOT_YIELD_SLEEP 1205
+#define WT_STAT_CONN_LOG_SLOT_YIELD_SLEEP 1204
/*! log: slot join calls yielded */
-#define WT_STAT_CONN_LOG_SLOT_YIELD 1206
+#define WT_STAT_CONN_LOG_SLOT_YIELD 1205
/*! log: slot join found active slot closed */
-#define WT_STAT_CONN_LOG_SLOT_ACTIVE_CLOSED 1207
+#define WT_STAT_CONN_LOG_SLOT_ACTIVE_CLOSED 1206
/*! log: slot joins yield time (usecs) */
-#define WT_STAT_CONN_LOG_SLOT_YIELD_DURATION 1208
+#define WT_STAT_CONN_LOG_SLOT_YIELD_DURATION 1207
/*! log: slot transitions unable to find free slot */
-#define WT_STAT_CONN_LOG_SLOT_NO_FREE_SLOTS 1209
+#define WT_STAT_CONN_LOG_SLOT_NO_FREE_SLOTS 1208
/*! log: slot unbuffered writes */
-#define WT_STAT_CONN_LOG_SLOT_UNBUFFERED 1210
+#define WT_STAT_CONN_LOG_SLOT_UNBUFFERED 1209
/*! log: total in-memory size of compressed records */
-#define WT_STAT_CONN_LOG_COMPRESS_MEM 1211
+#define WT_STAT_CONN_LOG_COMPRESS_MEM 1210
/*! log: total log buffer size */
-#define WT_STAT_CONN_LOG_BUFFER_SIZE 1212
+#define WT_STAT_CONN_LOG_BUFFER_SIZE 1211
/*! log: total size of compressed records */
-#define WT_STAT_CONN_LOG_COMPRESS_LEN 1213
+#define WT_STAT_CONN_LOG_COMPRESS_LEN 1212
/*! log: written slots coalesced */
-#define WT_STAT_CONN_LOG_SLOT_COALESCED 1214
+#define WT_STAT_CONN_LOG_SLOT_COALESCED 1213
/*! log: yields waiting for previous log file close */
-#define WT_STAT_CONN_LOG_CLOSE_YIELDS 1215
+#define WT_STAT_CONN_LOG_CLOSE_YIELDS 1214
/*! reconciliation: fast-path pages deleted */
-#define WT_STAT_CONN_REC_PAGE_DELETE_FAST 1216
+#define WT_STAT_CONN_REC_PAGE_DELETE_FAST 1215
/*! reconciliation: page reconciliation calls */
-#define WT_STAT_CONN_REC_PAGES 1217
+#define WT_STAT_CONN_REC_PAGES 1216
/*! reconciliation: page reconciliation calls for eviction */
-#define WT_STAT_CONN_REC_PAGES_EVICTION 1218
+#define WT_STAT_CONN_REC_PAGES_EVICTION 1217
/*! reconciliation: pages deleted */
-#define WT_STAT_CONN_REC_PAGE_DELETE 1219
+#define WT_STAT_CONN_REC_PAGE_DELETE 1218
/*! reconciliation: split bytes currently awaiting free */
-#define WT_STAT_CONN_REC_SPLIT_STASHED_BYTES 1220
+#define WT_STAT_CONN_REC_SPLIT_STASHED_BYTES 1219
/*! reconciliation: split objects currently awaiting free */
-#define WT_STAT_CONN_REC_SPLIT_STASHED_OBJECTS 1221
+#define WT_STAT_CONN_REC_SPLIT_STASHED_OBJECTS 1220
/*! session: open cursor count */
-#define WT_STAT_CONN_SESSION_CURSOR_OPEN 1222
+#define WT_STAT_CONN_SESSION_CURSOR_OPEN 1221
/*! session: open session count */
-#define WT_STAT_CONN_SESSION_OPEN 1223
+#define WT_STAT_CONN_SESSION_OPEN 1222
/*! session: table alter failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_ALTER_FAIL 1224
+#define WT_STAT_CONN_SESSION_TABLE_ALTER_FAIL 1223
/*! session: table alter successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_ALTER_SUCCESS 1225
+#define WT_STAT_CONN_SESSION_TABLE_ALTER_SUCCESS 1224
/*! session: table alter unchanged and skipped */
-#define WT_STAT_CONN_SESSION_TABLE_ALTER_SKIP 1226
+#define WT_STAT_CONN_SESSION_TABLE_ALTER_SKIP 1225
/*! session: table compact failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_COMPACT_FAIL 1227
+#define WT_STAT_CONN_SESSION_TABLE_COMPACT_FAIL 1226
/*! session: table compact successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_COMPACT_SUCCESS 1228
+#define WT_STAT_CONN_SESSION_TABLE_COMPACT_SUCCESS 1227
/*! session: table create failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_CREATE_FAIL 1229
+#define WT_STAT_CONN_SESSION_TABLE_CREATE_FAIL 1228
/*! session: table create successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_CREATE_SUCCESS 1230
+#define WT_STAT_CONN_SESSION_TABLE_CREATE_SUCCESS 1229
/*! session: table drop failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_DROP_FAIL 1231
+#define WT_STAT_CONN_SESSION_TABLE_DROP_FAIL 1230
/*! session: table drop successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_DROP_SUCCESS 1232
+#define WT_STAT_CONN_SESSION_TABLE_DROP_SUCCESS 1231
/*! session: table rebalance failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_REBALANCE_FAIL 1233
+#define WT_STAT_CONN_SESSION_TABLE_REBALANCE_FAIL 1232
/*! session: table rebalance successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_REBALANCE_SUCCESS 1234
+#define WT_STAT_CONN_SESSION_TABLE_REBALANCE_SUCCESS 1233
/*! session: table rename failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_RENAME_FAIL 1235
+#define WT_STAT_CONN_SESSION_TABLE_RENAME_FAIL 1234
/*! session: table rename successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_RENAME_SUCCESS 1236
+#define WT_STAT_CONN_SESSION_TABLE_RENAME_SUCCESS 1235
/*! session: table salvage failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_FAIL 1237
+#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_FAIL 1236
/*! session: table salvage successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_SUCCESS 1238
+#define WT_STAT_CONN_SESSION_TABLE_SALVAGE_SUCCESS 1237
/*! session: table truncate failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_FAIL 1239
+#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_FAIL 1238
/*! session: table truncate successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_SUCCESS 1240
+#define WT_STAT_CONN_SESSION_TABLE_TRUNCATE_SUCCESS 1239
/*! session: table verify failed calls */
-#define WT_STAT_CONN_SESSION_TABLE_VERIFY_FAIL 1241
+#define WT_STAT_CONN_SESSION_TABLE_VERIFY_FAIL 1240
/*! session: table verify successful calls */
-#define WT_STAT_CONN_SESSION_TABLE_VERIFY_SUCCESS 1242
+#define WT_STAT_CONN_SESSION_TABLE_VERIFY_SUCCESS 1241
/*! thread-state: active filesystem fsync calls */
-#define WT_STAT_CONN_THREAD_FSYNC_ACTIVE 1243
+#define WT_STAT_CONN_THREAD_FSYNC_ACTIVE 1242
/*! thread-state: active filesystem read calls */
-#define WT_STAT_CONN_THREAD_READ_ACTIVE 1244
+#define WT_STAT_CONN_THREAD_READ_ACTIVE 1243
/*! thread-state: active filesystem write calls */
-#define WT_STAT_CONN_THREAD_WRITE_ACTIVE 1245
+#define WT_STAT_CONN_THREAD_WRITE_ACTIVE 1244
/*! thread-yield: application thread time evicting (usecs) */
-#define WT_STAT_CONN_APPLICATION_EVICT_TIME 1246
+#define WT_STAT_CONN_APPLICATION_EVICT_TIME 1245
/*! thread-yield: application thread time waiting for cache (usecs) */
-#define WT_STAT_CONN_APPLICATION_CACHE_TIME 1247
+#define WT_STAT_CONN_APPLICATION_CACHE_TIME 1246
/*!
* thread-yield: connection close blocked waiting for transaction state
* stabilization
*/
-#define WT_STAT_CONN_TXN_RELEASE_BLOCKED 1248
+#define WT_STAT_CONN_TXN_RELEASE_BLOCKED 1247
/*! thread-yield: connection close yielded for lsm manager shutdown */
-#define WT_STAT_CONN_CONN_CLOSE_BLOCKED_LSM 1249
+#define WT_STAT_CONN_CONN_CLOSE_BLOCKED_LSM 1248
/*! thread-yield: data handle lock yielded */
-#define WT_STAT_CONN_DHANDLE_LOCK_BLOCKED 1250
+#define WT_STAT_CONN_DHANDLE_LOCK_BLOCKED 1249
/*!
* thread-yield: get reference for page index and slot time sleeping
* (usecs)
*/
-#define WT_STAT_CONN_PAGE_INDEX_SLOT_REF_BLOCKED 1251
+#define WT_STAT_CONN_PAGE_INDEX_SLOT_REF_BLOCKED 1250
/*! thread-yield: log server sync yielded for log write */
-#define WT_STAT_CONN_LOG_SERVER_SYNC_BLOCKED 1252
+#define WT_STAT_CONN_LOG_SERVER_SYNC_BLOCKED 1251
/*! thread-yield: page acquire busy blocked */
-#define WT_STAT_CONN_PAGE_BUSY_BLOCKED 1253
+#define WT_STAT_CONN_PAGE_BUSY_BLOCKED 1252
/*! thread-yield: page acquire eviction blocked */
-#define WT_STAT_CONN_PAGE_FORCIBLE_EVICT_BLOCKED 1254
+#define WT_STAT_CONN_PAGE_FORCIBLE_EVICT_BLOCKED 1253
/*! thread-yield: page acquire locked blocked */
-#define WT_STAT_CONN_PAGE_LOCKED_BLOCKED 1255
+#define WT_STAT_CONN_PAGE_LOCKED_BLOCKED 1254
/*! thread-yield: page acquire read blocked */
-#define WT_STAT_CONN_PAGE_READ_BLOCKED 1256
+#define WT_STAT_CONN_PAGE_READ_BLOCKED 1255
/*! thread-yield: page acquire time sleeping (usecs) */
-#define WT_STAT_CONN_PAGE_SLEEP 1257
+#define WT_STAT_CONN_PAGE_SLEEP 1256
/*!
* thread-yield: page delete rollback time sleeping for state change
* (usecs)
*/
-#define WT_STAT_CONN_PAGE_DEL_ROLLBACK_BLOCKED 1258
+#define WT_STAT_CONN_PAGE_DEL_ROLLBACK_BLOCKED 1257
/*! thread-yield: page reconciliation yielded due to child modification */
-#define WT_STAT_CONN_CHILD_MODIFY_BLOCKED_PAGE 1259
+#define WT_STAT_CONN_CHILD_MODIFY_BLOCKED_PAGE 1258
/*!
* thread-yield: tree descend one level yielded for split page index
* update
*/
-#define WT_STAT_CONN_TREE_DESCEND_BLOCKED 1260
+#define WT_STAT_CONN_TREE_DESCEND_BLOCKED 1259
/*! transaction: number of named snapshots created */
-#define WT_STAT_CONN_TXN_SNAPSHOTS_CREATED 1261
+#define WT_STAT_CONN_TXN_SNAPSHOTS_CREATED 1260
/*! transaction: number of named snapshots dropped */
-#define WT_STAT_CONN_TXN_SNAPSHOTS_DROPPED 1262
+#define WT_STAT_CONN_TXN_SNAPSHOTS_DROPPED 1261
/*! transaction: transaction begins */
-#define WT_STAT_CONN_TXN_BEGIN 1263
+#define WT_STAT_CONN_TXN_BEGIN 1262
/*! transaction: transaction checkpoint currently running */
-#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING 1264
+#define WT_STAT_CONN_TXN_CHECKPOINT_RUNNING 1263
/*! transaction: transaction checkpoint generation */
-#define WT_STAT_CONN_TXN_CHECKPOINT_GENERATION 1265
+#define WT_STAT_CONN_TXN_CHECKPOINT_GENERATION 1264
/*! transaction: transaction checkpoint max time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX 1266
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MAX 1265
/*! transaction: transaction checkpoint min time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN 1267
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_MIN 1266
/*! transaction: transaction checkpoint most recent time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT 1268
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_RECENT 1267
/*! transaction: transaction checkpoint scrub dirty target */
-#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TARGET 1269
+#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TARGET 1268
/*! transaction: transaction checkpoint scrub time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TIME 1270
+#define WT_STAT_CONN_TXN_CHECKPOINT_SCRUB_TIME 1269
/*! transaction: transaction checkpoint total time (msecs) */
-#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL 1271
+#define WT_STAT_CONN_TXN_CHECKPOINT_TIME_TOTAL 1270
/*! transaction: transaction checkpoints */
-#define WT_STAT_CONN_TXN_CHECKPOINT 1272
+#define WT_STAT_CONN_TXN_CHECKPOINT 1271
/*!
* transaction: transaction checkpoints skipped because database was
* clean
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_SKIPPED 1273
+#define WT_STAT_CONN_TXN_CHECKPOINT_SKIPPED 1272
/*! transaction: transaction failures due to cache overflow */
-#define WT_STAT_CONN_TXN_FAIL_CACHE 1274
+#define WT_STAT_CONN_TXN_FAIL_CACHE 1273
/*!
* transaction: transaction fsync calls for checkpoint after allocating
* the transaction ID
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST 1275
+#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST 1274
/*!
* transaction: transaction fsync duration for checkpoint after
* allocating the transaction ID (usecs)
*/
-#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST_DURATION 1276
+#define WT_STAT_CONN_TXN_CHECKPOINT_FSYNC_POST_DURATION 1275
/*! transaction: transaction range of IDs currently pinned */
-#define WT_STAT_CONN_TXN_PINNED_RANGE 1277
+#define WT_STAT_CONN_TXN_PINNED_RANGE 1276
/*! transaction: transaction range of IDs currently pinned by a checkpoint */
-#define WT_STAT_CONN_TXN_PINNED_CHECKPOINT_RANGE 1278
+#define WT_STAT_CONN_TXN_PINNED_CHECKPOINT_RANGE 1277
/*!
* transaction: transaction range of IDs currently pinned by named
* snapshots
*/
-#define WT_STAT_CONN_TXN_PINNED_SNAPSHOT_RANGE 1279
+#define WT_STAT_CONN_TXN_PINNED_SNAPSHOT_RANGE 1278
/*! transaction: transaction range of timestamps currently pinned */
-#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP 1280
+#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP 1279
/*!
* transaction: transaction range of timestamps pinned by the oldest
* timestamp
*/
-#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_OLDEST 1281
+#define WT_STAT_CONN_TXN_PINNED_TIMESTAMP_OLDEST 1280
/*! transaction: transaction sync calls */
-#define WT_STAT_CONN_TXN_SYNC 1282
+#define WT_STAT_CONN_TXN_SYNC 1281
/*! transaction: transactions commit timestamp queue inserts to head */
-#define WT_STAT_CONN_TXN_COMMIT_QUEUE_HEAD 1283
+#define WT_STAT_CONN_TXN_COMMIT_QUEUE_HEAD 1282
/*! transaction: transactions commit timestamp queue inserts total */
-#define WT_STAT_CONN_TXN_COMMIT_QUEUE_INSERTS 1284
+#define WT_STAT_CONN_TXN_COMMIT_QUEUE_INSERTS 1283
/*! transaction: transactions commit timestamp queue length */
-#define WT_STAT_CONN_TXN_COMMIT_QUEUE_LEN 1285
+#define WT_STAT_CONN_TXN_COMMIT_QUEUE_LEN 1284
/*! transaction: transactions committed */
-#define WT_STAT_CONN_TXN_COMMIT 1286
+#define WT_STAT_CONN_TXN_COMMIT 1285
/*! transaction: transactions read timestamp queue inserts to head */
-#define WT_STAT_CONN_TXN_READ_QUEUE_HEAD 1287
+#define WT_STAT_CONN_TXN_READ_QUEUE_HEAD 1286
/*! transaction: transactions read timestamp queue inserts total */
-#define WT_STAT_CONN_TXN_READ_QUEUE_INSERTS 1288
+#define WT_STAT_CONN_TXN_READ_QUEUE_INSERTS 1287
/*! transaction: transactions read timestamp queue length */
-#define WT_STAT_CONN_TXN_READ_QUEUE_LEN 1289
+#define WT_STAT_CONN_TXN_READ_QUEUE_LEN 1288
/*! transaction: transactions rolled back */
-#define WT_STAT_CONN_TXN_ROLLBACK 1290
+#define WT_STAT_CONN_TXN_ROLLBACK 1289
/*! transaction: update conflicts */
-#define WT_STAT_CONN_TXN_UPDATE_CONFLICT 1291
+#define WT_STAT_CONN_TXN_UPDATE_CONFLICT 1290
/*!
* @}
diff --git a/src/third_party/wiredtiger/src/log/log.c b/src/third_party/wiredtiger/src/log/log.c
index 17c77f532bb..4c32b9b02ed 100644
--- a/src/third_party/wiredtiger/src/log/log.c
+++ b/src/third_party/wiredtiger/src/log/log.c
@@ -2658,10 +2658,8 @@ __wt_log_flush(WT_SESSION_IMPL *session, uint32_t flags)
* Wait until all current outstanding writes have been written
* to the file system.
*/
- while (__wt_log_cmp(&last_lsn, &lsn) > 0) {
- __wt_sleep(0, WT_THOUSAND);
+ while (__wt_log_cmp(&last_lsn, &lsn) > 0)
WT_RET(__wt_log_flush_lsn(session, &lsn, false));
- }
__wt_verbose(session, WT_VERB_LOG,
"log_flush: flags %#" PRIx32 " LSN %" PRIu32 "/%" PRIu32,
diff --git a/src/third_party/wiredtiger/src/lsm/lsm_tree.c b/src/third_party/wiredtiger/src/lsm/lsm_tree.c
index c5b63df099f..6927fe909f8 100644
--- a/src/third_party/wiredtiger/src/lsm/lsm_tree.c
+++ b/src/third_party/wiredtiger/src/lsm/lsm_tree.c
@@ -16,7 +16,7 @@ static int __lsm_tree_set_name(WT_SESSION_IMPL *, WT_LSM_TREE *, const char *);
/*
* __lsm_tree_discard_state --
- * Free the metadata configuration state-related LSM tree pointers.
+ * Free the metadata configuration state related LSM tree pointers.
*/
static void
__lsm_tree_discard_state(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree)
@@ -1127,7 +1127,7 @@ __wt_lsm_compact(WT_SESSION_IMPL *session, const char *name, bool *skipp)
WT_LSM_TREE *lsm_tree;
uint64_t progress;
uint32_t i;
- bool compacting, flushing, locked, push_flush, ref;
+ bool compacting, flushing, locked, ref;
compacting = flushing = locked = ref = false;
chunk = NULL;
@@ -1188,15 +1188,10 @@ __wt_lsm_compact(WT_SESSION_IMPL *session, const char *name, bool *skipp)
/*
* Set the switch transaction on the current chunk, if it
* hasn't been set before. This prevents further writes, so it
- * can be flushed by the checkpoint worker. If this is a newly
- * opened tree the primary chunk may already be stable. Only
- * push a flush work unit if necessary.
+ * can be flushed by the checkpoint worker.
*/
- push_flush = false;
if (lsm_tree->nchunks > 0 &&
- (chunk = lsm_tree->chunk[lsm_tree->nchunks - 1]) != NULL &&
- !F_ISSET(chunk, (WT_LSM_CHUNK_ONDISK | WT_LSM_CHUNK_STABLE))) {
- push_flush = true;
+ (chunk = lsm_tree->chunk[lsm_tree->nchunks - 1]) != NULL) {
if (chunk->switch_txn == WT_TXN_NONE) {
/*
* Make sure any cursors open on the tree see the
@@ -1214,14 +1209,15 @@ __wt_lsm_compact(WT_SESSION_IMPL *session, const char *name, bool *skipp)
ref = true;
}
- if (push_flush) {
+ locked = false;
+ __wt_lsm_tree_writeunlock(session, lsm_tree);
+
+ if (chunk != NULL) {
__wt_verbose(session, WT_VERB_LSM,
"Compact force flush %s flags 0x%" PRIx32
" chunk %" PRIu32 " flags 0x%" PRIx32,
name, lsm_tree->flags, chunk->id, chunk->flags);
flushing = true;
- locked = false;
- __wt_lsm_tree_writeunlock(session, lsm_tree);
/*
* Make sure the in-memory chunk gets flushed do not push a
* switch, because we don't want to create a new in-memory
@@ -1239,8 +1235,6 @@ __wt_lsm_compact(WT_SESSION_IMPL *session, const char *name, bool *skipp)
F_SET(lsm_tree, WT_LSM_TREE_COMPACTING);
__wt_verbose(session, WT_VERB_LSM,
"COMPACT: Start compacting %s", lsm_tree->name);
- locked = false;
- __wt_lsm_tree_writeunlock(session, lsm_tree);
}
/* Wait for the work unit queues to drain. */
@@ -1347,13 +1341,11 @@ __wt_lsm_tree_worker(WT_SESSION_IMPL *session,
WT_LSM_CHUNK *chunk;
WT_LSM_TREE *lsm_tree;
u_int i;
- bool exclusive, locked, need_release;
+ bool exclusive, locked;
locked = false;
- need_release = false;
exclusive = FLD_ISSET(open_flags, WT_DHANDLE_EXCLUSIVE);
WT_RET(__wt_lsm_tree_get(session, uri, exclusive, &lsm_tree));
- need_release = true;
/*
* We mark that we're busy using the tree to coordinate
@@ -1391,22 +1383,13 @@ __wt_lsm_tree_worker(WT_SESSION_IMPL *session,
if (FLD_ISSET(open_flags, WT_BTREE_ALTER)) {
WT_ERR(__wt_lsm_meta_write(session, lsm_tree, cfg[0]));
/*
- * We're about to discard the tree so we do not need to
- * release it later.
- */
- need_release = false;
- if (exclusive)
- __wt_lsm_tree_writeunlock(session, lsm_tree);
- else
- __wt_lsm_tree_readunlock(session, lsm_tree);
- locked = false;
- /*
- * We rewrote the meta-data. Discard the tree and the next
- * access will reopen it.
+ * We're about to read in the new configuration that
+ * we just wrote. Free the old ones.
*/
- WT_WITH_HANDLE_LIST_WRITE_LOCK(session,
- ret = __lsm_tree_discard(session, lsm_tree, false));
- WT_ERR(ret);
+ __lsm_tree_discard_state(session, lsm_tree);
+ if ((ret = __wt_lsm_meta_read(session, lsm_tree)) != 0)
+ WT_PANIC_ERR(session, ret,
+ "Failed to read updated LSM configuration");
}
err: if (locked) {
@@ -1415,7 +1398,6 @@ err: if (locked) {
else
__wt_lsm_tree_readunlock(session, lsm_tree);
}
- if (need_release)
- __wt_lsm_tree_release(session, lsm_tree);
+ __wt_lsm_tree_release(session, lsm_tree);
return (ret);
}
diff --git a/src/third_party/wiredtiger/src/reconcile/rec_write.c b/src/third_party/wiredtiger/src/reconcile/rec_write.c
index 7e9980e0887..b509c49cbbc 100644
--- a/src/third_party/wiredtiger/src/reconcile/rec_write.c
+++ b/src/third_party/wiredtiger/src/reconcile/rec_write.c
@@ -420,15 +420,8 @@ __wt_reconcile(WT_SESSION_IMPL *session, WT_REF *ref,
}
oldest_id = __wt_txn_oldest_id(session);
- if (LF_ISSET(WT_REC_EVICT)) {
+ if (LF_ISSET(WT_REC_EVICT))
mod->last_eviction_id = oldest_id;
-#ifdef HAVE_TIMESTAMPS
- WT_WITH_TIMESTAMP_READLOCK(session,
- &S2C(session)->txn_global.rwlock,
- __wt_timestamp_set(&mod->last_eviction_timestamp,
- &S2C(session)->txn_global.pinned_timestamp));
-#endif
- }
#ifdef HAVE_DIAGNOSTIC
/*
diff --git a/src/third_party/wiredtiger/src/support/stat.c b/src/third_party/wiredtiger/src/support/stat.c
index eeb1f2d26e9..b4533841ec6 100644
--- a/src/third_party/wiredtiger/src/support/stat.c
+++ b/src/third_party/wiredtiger/src/support/stat.c
@@ -761,7 +761,6 @@ static const char * const __stats_connection_desc[] = {
"cache: application threads page write from cache to disk count",
"cache: application threads page write from cache to disk time (usecs)",
"cache: bytes belonging to page images in the cache",
- "cache: bytes belonging to the lookaside table in the cache",
"cache: bytes currently in the cache",
"cache: bytes not belonging to page images in the cache",
"cache: bytes read into cache",
@@ -1095,7 +1094,6 @@ __wt_stat_connection_clear_single(WT_CONNECTION_STATS *stats)
stats->cache_write_app_count = 0;
stats->cache_write_app_time = 0;
/* not clearing cache_bytes_image */
- /* not clearing cache_bytes_lookaside */
/* not clearing cache_bytes_inuse */
/* not clearing cache_bytes_other */
stats->cache_bytes_read = 0;
@@ -1411,8 +1409,6 @@ __wt_stat_connection_aggregate(
WT_STAT_READ(from, cache_write_app_count);
to->cache_write_app_time += WT_STAT_READ(from, cache_write_app_time);
to->cache_bytes_image += WT_STAT_READ(from, cache_bytes_image);
- to->cache_bytes_lookaside +=
- WT_STAT_READ(from, cache_bytes_lookaside);
to->cache_bytes_inuse += WT_STAT_READ(from, cache_bytes_inuse);
to->cache_bytes_other += WT_STAT_READ(from, cache_bytes_other);
to->cache_bytes_read += WT_STAT_READ(from, cache_bytes_read);
diff --git a/src/third_party/wiredtiger/src/txn/txn.c b/src/third_party/wiredtiger/src/txn/txn.c
index c461e5f8e45..8b4a7fc7936 100644
--- a/src/third_party/wiredtiger/src/txn/txn.c
+++ b/src/third_party/wiredtiger/src/txn/txn.c
@@ -612,7 +612,7 @@ __wt_txn_commit(WT_SESSION_IMPL *session, const char *cfg[])
WT_TXN_GLOBAL *txn_global;
WT_TXN_OP *op;
u_int i;
- bool locked, readonly;
+ bool locked;
#ifdef HAVE_TIMESTAMPS
wt_timestamp_t prev_commit_timestamp, ts;
bool update_timestamp;
@@ -627,7 +627,6 @@ __wt_txn_commit(WT_SESSION_IMPL *session, const char *cfg[])
WT_ASSERT(session, !F_ISSET(txn, WT_TXN_ERROR) ||
txn->mod_count == 0);
- readonly = txn->mod_count == 0;
/*
* Look for a commit timestamp.
*/
@@ -850,13 +849,6 @@ __wt_txn_commit(WT_SESSION_IMPL *session, const char *cfg[])
}
#endif
- /*
- * We're between transactions, if we need to block for eviction, it's
- * a good time to do so. Note that we must ignore any error return
- * because the user's data is committed.
- */
- if (!readonly)
- (void)__wt_cache_eviction_check(session, false, false, NULL);
return (0);
err: /*
@@ -882,12 +874,10 @@ __wt_txn_rollback(WT_SESSION_IMPL *session, const char *cfg[])
WT_TXN *txn;
WT_TXN_OP *op;
u_int i;
- bool readonly;
WT_UNUSED(cfg);
txn = &session->txn;
- readonly = txn->mod_count == 0;
WT_ASSERT(session, F_ISSET(txn, WT_TXN_RUNNING));
/* Rollback notification. */
@@ -931,13 +921,6 @@ __wt_txn_rollback(WT_SESSION_IMPL *session, const char *cfg[])
txn->mod_count = 0;
__wt_txn_release(session);
- /*
- * We're between transactions, if we need to block for eviction, it's
- * a good time to do so. Note that we must ignore any error return
- * because the user's data is committed.
- */
- if (!readonly)
- (void)__wt_cache_eviction_check(session, false, false, NULL);
return (ret);
}