From bf22699fb36159bb71ceba0cf50bce3b2673802e Mon Sep 17 00:00:00 2001 From: Leonid Yuriev Date: Thu, 13 Sep 2018 10:22:01 +0300 Subject: [PATCH] mdbx: avoid empty and unneeded large/overflow pages. Change-Id: I388a60180b999889fc15a1f3f3243c007a15edc6 --- src/mdbx.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/mdbx.c b/src/mdbx.c index 36606ef4..cd8d3761 100644 --- a/src/mdbx.c +++ b/src/mdbx.c @@ -8229,7 +8229,10 @@ int mdbx_cursor_put(MDBX_cursor *mc, MDBX_val *key, MDBX_val *data, if (F_ISSET(leaf->mn_flags, F_BIGDATA)) { MDBX_page *omp; pgno_t pg; - int level, ovpages, dpages = OVPAGES(env, data->iov_len); + int level, ovpages, + dpages = (LEAFSIZE(key, data) > env->me_nodemax) + ? OVPAGES(env, data->iov_len) + : 0; memcpy(&pg, olddata.iov_base, sizeof(pg)); if (unlikely((rc2 = mdbx_page_get(mc, pg, &omp, &level)) != 0))