summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Chen <luke.chen@mongodb.com>2021-04-28 11:40:52 +1000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-04-28 02:04:09 +0000
commit0e6db36e92d82cc81cbd40ffd607eae88dc1f09d (patch)
tree32e07ebd974281a208faf9ea3dc93a748b4ec22e
parentf4579a4bdd80f7884c3352089c034f97de80b464 (diff)
downloadmongo-0e6db36e92d82cc81cbd40ffd607eae88dc1f09d.tar.gz
Import wiredtiger: 91e1466e1dbc024d00c89b34630551348767399e from branch mongodb-4.2r4.2.14-rc0r4.2.14
ref: 9d20694ad1..91e1466e1d for: 4.2.14 WT-7373 Improve slow random cursor operations on oplog
-rw-r--r--src/third_party/wiredtiger/import.data2
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_random.c7
2 files changed, 5 insertions, 4 deletions
diff --git a/src/third_party/wiredtiger/import.data b/src/third_party/wiredtiger/import.data
index f25a44554c1..cffaacccdaf 100644
--- a/src/third_party/wiredtiger/import.data
+++ b/src/third_party/wiredtiger/import.data
@@ -2,5 +2,5 @@
"vendor": "wiredtiger",
"github": "wiredtiger/wiredtiger.git",
"branch": "mongodb-4.2",
- "commit": "9d20694ad13222211f2afb3b2328163b5156fb6c"
+ "commit": "91e1466e1dbc024d00c89b34630551348767399e"
}
diff --git a/src/third_party/wiredtiger/src/btree/bt_random.c b/src/third_party/wiredtiger/src/btree/bt_random.c
index fa59f785757..b0647156c30 100644
--- a/src/third_party/wiredtiger/src/btree/bt_random.c
+++ b/src/third_party/wiredtiger/src/btree/bt_random.c
@@ -298,10 +298,11 @@ __random_leaf(WT_CURSOR_BTREE *cbt)
return (__cursor_kv_return(cbt, upd));
/*
- * Try again if there are at least a few hundred disk-based entries: this may be a normal leaf
- * page with big items.
+ * Try again if there are at least a few hundred disk-based entries or this is a page as we read
+ * it from disk, it might be a normal leaf page with big items.
*/
- if (cbt->ref->page->entries > WT_RANDOM_DISK_ENOUGH / 2) {
+ if (cbt->ref->page->entries > WT_RANDOM_DISK_ENOUGH / 5 ||
+ (cbt->ref->page->dsk != NULL && cbt->ref->page->modify == NULL)) {
WT_RET(__random_leaf_disk(cbt, &upd, &valid));
if (valid)
return (__cursor_kv_return(cbt, upd));