diff options
author | Luke Chen <luke.chen@mongodb.com> | 2018-05-01 12:15:54 +1000 |
---|---|---|
committer | Luke Chen <luke.chen@mongodb.com> | 2018-05-01 12:15:54 +1000 |
commit | b5b11cc858e1da6d8c451e0e9be17122cf5968de (patch) | |
tree | a1cc3479914f771ed2e5a89edf5cef37f7d0aad9 /src/third_party/wiredtiger/src/lsm/lsm_tree.c | |
parent | e88d29393fa22c857af21e107a3bc20402625b10 (diff) | |
download | mongo-b5b11cc858e1da6d8c451e0e9be17122cf5968de.tar.gz |
Import wiredtiger: aa6646fd0a1394793edfcf799f5f41f1d073bc5d from branch mongodb-3.8
ref: abf0651a81..aa6646fd0a
for: 4.0.0-rc0
WT-4045 Don't retry fsync calls after EIO failure
WT-4051 Test format configures too-small LSM caches.
WT-4061 Don't rollback during recovery due to cache pressure
Diffstat (limited to 'src/third_party/wiredtiger/src/lsm/lsm_tree.c')
-rw-r--r-- | src/third_party/wiredtiger/src/lsm/lsm_tree.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/third_party/wiredtiger/src/lsm/lsm_tree.c b/src/third_party/wiredtiger/src/lsm/lsm_tree.c index 9a7ab20f18f..16b28a1aecc 100644 --- a/src/third_party/wiredtiger/src/lsm/lsm_tree.c +++ b/src/third_party/wiredtiger/src/lsm/lsm_tree.c @@ -467,25 +467,23 @@ static int __lsm_tree_open_check(WT_SESSION_IMPL *session, WT_LSM_TREE *lsm_tree) { WT_CONFIG_ITEM cval; + WT_CONNECTION_IMPL *conn; uint64_t maxleafpage, required; const char *cfg[] = { WT_CONFIG_BASE( session, WT_SESSION_create), lsm_tree->file_config, NULL }; + conn = S2C(session); + WT_RET(__wt_config_gets(session, cfg, "leaf_page_max", &cval)); maxleafpage = (uint64_t)cval.val; - /* - * Three chunks, plus one page for each participant in up to three - * concurrent merges. - */ - required = 3 * lsm_tree->chunk_size + - 3 * (lsm_tree->merge_max * maxleafpage); - if (S2C(session)->cache_size < required) + required = WT_LSM_TREE_MINIMUM_SIZE( + lsm_tree->chunk_size, lsm_tree->merge_max, maxleafpage); + if (conn->cache_size < required) WT_RET_MSG(session, EINVAL, "LSM cache size %" PRIu64 " (%" PRIu64 "MB) too small, " "must be at least %" PRIu64 " (%" PRIu64 "MB)", - S2C(session)->cache_size, - S2C(session)->cache_size / WT_MEGABYTE, + conn->cache_size, conn->cache_size / WT_MEGABYTE, required, (required + (WT_MEGABYTE - 1))/ WT_MEGABYTE); return (0); } |