diff options
Diffstat (limited to 'src/conn/conn_cache.c')
-rw-r--r-- | src/conn/conn_cache.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/conn/conn_cache.c b/src/conn/conn_cache.c index 6a8d3430aa1..7e94e9e87dc 100644 --- a/src/conn/conn_cache.c +++ b/src/conn/conn_cache.c @@ -43,13 +43,28 @@ __cache_config_local(WT_SESSION_IMPL *session, bool shared, const char *cfg[]) cache->eviction_trigger = (u_int)cval.val; if (F_ISSET(conn, WT_CONN_IN_MEMORY)) - cache->eviction_dirty_target = + cache->eviction_checkpoint_target = + cache->eviction_dirty_target = cache->eviction_dirty_trigger = 100U; else { WT_RET(__wt_config_gets( + session, cfg, "eviction_checkpoint_target", &cval)); + cache->eviction_checkpoint_target = (u_int)cval.val; + + WT_RET(__wt_config_gets( session, cfg, "eviction_dirty_target", &cval)); cache->eviction_dirty_target = (u_int)cval.val; + /* + * Sanity check the checkpoint target: don't allow a value + * lower than the dirty target. + */ + if (cache->eviction_checkpoint_target > 0 && + cache->eviction_checkpoint_target < + cache->eviction_dirty_target) + cache->eviction_checkpoint_target = + cache->eviction_dirty_target; + WT_RET(__wt_config_gets( session, cfg, "eviction_dirty_trigger", &cval)); cache->eviction_dirty_trigger = (u_int)cval.val; |