From 4e95a079eeecbc648835b2e3dfaf646804e75053 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9B=D0=B5=D0=BE=D0=BD=D0=B8=D0=B4=20=D0=AE=D1=80=D1=8C?= =?UTF-8?q?=D0=B5=D0=B2=20=28Leonid=20Yuriev=29?= Date: Thu, 20 Oct 2022 19:00:29 +0300 Subject: [PATCH] =?UTF-8?q?mdbx:=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B8=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20`MDBX=5FCOMM?= =?UTF-8?q?IT=5FPAGES`=20=D0=B2=20`MDBX=5FAUXILARY=5FIOV=5FMAX`.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core.c | 8 ++++---- src/internals.h | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/core.c b/src/core.c index e23bf107..f8a2b827 100644 --- a/src/core.c +++ b/src/core.c @@ -4047,15 +4047,15 @@ __cold static void kill_page(MDBX_txn *txn, MDBX_page *mp, pgno_t pgno, if ((txn->mt_flags & MDBX_WRITEMAP) == 0) osal_pwrite(env->me_lazy_fd, mp, bytes, pgno2bytes(env, pgno)); } else { - struct iovec iov[MDBX_COMMIT_PAGES]; + struct iovec iov[MDBX_AUXILARY_IOV_MAX]; iov[0].iov_len = env->me_psize; iov[0].iov_base = (char *)env->me_pbuf + env->me_psize; size_t iov_off = pgno2bytes(env, pgno), n = 1; while (--npages) { iov[n] = iov[0]; - if (++n == MDBX_COMMIT_PAGES) { - osal_pwritev(env->me_lazy_fd, iov, MDBX_COMMIT_PAGES, iov_off); - iov_off += pgno2bytes(env, MDBX_COMMIT_PAGES); + if (++n == MDBX_AUXILARY_IOV_MAX) { + osal_pwritev(env->me_lazy_fd, iov, MDBX_AUXILARY_IOV_MAX, iov_off); + iov_off += pgno2bytes(env, MDBX_AUXILARY_IOV_MAX); n = 0; } } diff --git a/src/internals.h b/src/internals.h index ab748f3a..721a6131 100644 --- a/src/internals.h +++ b/src/internals.h @@ -1579,12 +1579,12 @@ typedef struct MDBX_node { #error "Oops, some flags overlapped or wrong" #endif -/* max number of pages to commit in one writev() call */ -#define MDBX_COMMIT_PAGES 64 -#if defined(IOV_MAX) && IOV_MAX < MDBX_COMMIT_PAGES /* sysconf(_SC_IOV_MAX) */ -#undef MDBX_COMMIT_PAGES -#define MDBX_COMMIT_PAGES IOV_MAX -#endif +/* Max length of iov-vector passed to writev() call, used for auxilary writes */ +#define MDBX_AUXILARY_IOV_MAX 64 +#if defined(IOV_MAX) && IOV_MAX < MDBX_AUXILARY_IOV_MAX +#undef MDBX_AUXILARY_IOV_MAX +#define MDBX_AUXILARY_IOV_MAX IOV_MAX +#endif /* MDBX_AUXILARY_IOV_MAX */ /* * /