mdbx: rename MDBX_CACHE_METAPTR build-time option.

This commit is contained in:
Леонид Юрьев (Leonid Yuriev) 2022-07-10 09:18:29 +03:00
parent 12d2879a9f
commit 149e708830
3 changed files with 28 additions and 31 deletions

View File

@ -5743,12 +5743,12 @@ constmeta_txnid(const MDBX_env *env, const MDBX_meta *meta) {
} }
static __inline void meta_cache_clear(MDBX_env *env) { static __inline void meta_cache_clear(MDBX_env *env) {
#if MDBX_CACHE_METAS #if MDBX_CACHE_METAPTR
env->cache_last_meta = nullptr; env->cache_last_meta = nullptr;
env->cache_steady_meta = nullptr; env->cache_steady_meta = nullptr;
#else #else
(void)env; (void)env;
#endif /* MDBX_CACHE_METAS */ #endif /* MDBX_CACHE_METAPTR */
} }
static __inline txnid_t meta_txnid(const MDBX_env *env, static __inline txnid_t meta_txnid(const MDBX_env *env,
@ -5888,44 +5888,41 @@ meta_mostrecent(const enum meta_choise_mode mode, const MDBX_env *env) {
static volatile const MDBX_meta *meta_prefer_steady(const MDBX_env *env) { static volatile const MDBX_meta *meta_prefer_steady(const MDBX_env *env) {
return return
#if MDBX_CACHE_METAS #if MDBX_CACHE_METAPTR
((MDBX_env *)env)->cache_steady_meta = ((MDBX_env *)env)->cache_steady_meta =
#endif /* MDBX_CACHE_METAS */ #endif /* MDBX_CACHE_METAPTR */
meta_mostrecent(prefer_steady, env); meta_mostrecent(prefer_steady, env);
} }
MDBX_NOTHROW_PURE_FUNCTION static const MDBX_meta * MDBX_NOTHROW_PURE_FUNCTION static const MDBX_meta *
constmeta_prefer_steady(const MDBX_env *env) { constmeta_prefer_steady(const MDBX_env *env) {
#if MDBX_CACHE_METAS #if MDBX_CACHE_METAPTR
mdbx_assert(env, !env->cache_steady_meta || if (likely(env->cache_steady_meta)) {
env->cache_steady_meta == mdbx_assert(env,
meta_mostrecent(prefer_steady, env)); env->cache_steady_meta == meta_mostrecent(prefer_steady, env));
return (const MDBX_meta *)(env->cache_steady_meta ? env->cache_steady_meta : return (const MDBX_meta *)env->cache_steady_meta;
#else }
return (const MDBX_meta *)( #endif /* MDBX_CACHE_METAPTR */
#endif /* MDBX_CACHE_METAS */ return (const MDBX_meta *)meta_prefer_steady(env);
meta_prefer_steady(env));
} }
static volatile const MDBX_meta *meta_prefer_last(const MDBX_env *env) { static volatile const MDBX_meta *meta_prefer_last(const MDBX_env *env) {
return return
#if MDBX_CACHE_METAS #if MDBX_CACHE_METAPTR
((MDBX_env *)env)->cache_last_meta = ((MDBX_env *)env)->cache_last_meta =
#endif /* MDBX_CACHE_METAS */ #endif /* MDBX_CACHE_METAPTR */
meta_mostrecent(prefer_last, env); meta_mostrecent(prefer_last, env);
} }
MDBX_NOTHROW_PURE_FUNCTION static const MDBX_meta * MDBX_NOTHROW_PURE_FUNCTION static const MDBX_meta *
constmeta_prefer_last(const MDBX_env *env) { constmeta_prefer_last(const MDBX_env *env) {
#if MDBX_CACHE_METAS #if MDBX_CACHE_METAPTR
mdbx_assert(env, if (likely(env->cache_last_meta)) {
!env->cache_last_meta || mdbx_assert(env, env->cache_last_meta == meta_mostrecent(prefer_last, env));
env->cache_last_meta == meta_mostrecent(prefer_last, env)); return (const MDBX_meta *)env->cache_last_meta;
return (const MDBX_meta *)(env->cache_last_meta ? env->cache_last_meta : }
#else #endif /* MDBX_CACHE_METAPTR */
return (const MDBX_meta *)( return (const MDBX_meta *)meta_prefer_last(env);
#endif /* MDBX_CACHE_METAS */
meta_prefer_last(env));
} }
static txnid_t mdbx_recent_committed_txnid(const MDBX_env *env) { static txnid_t mdbx_recent_committed_txnid(const MDBX_env *env) {

View File

@ -1189,10 +1189,10 @@ struct MDBX_env {
MDBX_txn *me_txn; /* current write transaction */ MDBX_txn *me_txn; /* current write transaction */
mdbx_fastmutex_t me_dbi_lock; mdbx_fastmutex_t me_dbi_lock;
#if MDBX_CACHE_METAS #if MDBX_CACHE_METAPTR
volatile const MDBX_meta *cache_last_meta; volatile const MDBX_meta *cache_last_meta;
volatile const MDBX_meta *cache_steady_meta; volatile const MDBX_meta *cache_steady_meta;
#endif /* MDBX_CACHE_METAS */ #endif /* MDBX_CACHE_METAPTR */
MDBX_dbi me_numdbs; /* number of DBs opened */ MDBX_dbi me_numdbs; /* number of DBs opened */
MDBX_page *me_dp_reserve; /* list of malloc'ed blocks for re-use */ MDBX_page *me_dp_reserve; /* list of malloc'ed blocks for re-use */

View File

@ -92,11 +92,11 @@
#error MDBX_ENABLE_BIGFOOT must be defined as 0 or 1 #error MDBX_ENABLE_BIGFOOT must be defined as 0 or 1
#endif /* MDBX_ENABLE_BIGFOOT */ #endif /* MDBX_ENABLE_BIGFOOT */
#ifndef MDBX_CACHE_METAS #ifndef MDBX_CACHE_METAPTR
#define MDBX_CACHE_METAS 0 #define MDBX_CACHE_METAPTR 0
#elif !(MDBX_CACHE_METAS == 0 || MDBX_CACHE_METAS == 1) #elif !(MDBX_CACHE_METAPTR == 0 || MDBX_CACHE_METAPTR == 1)
#error MDBX_CACHE_METAS must be defined as 0 or 1 #error MDBX_CACHE_METAPTR must be defined as 0 or 1
#endif /* MDBX_CACHE_METAS */ #endif /* MDBX_CACHE_METAPTR */
/** Controls use of POSIX madvise() hints and friends. */ /** Controls use of POSIX madvise() hints and friends. */
#ifndef MDBX_ENABLE_MADVISE #ifndef MDBX_ENABLE_MADVISE