summaryrefslogtreecommitdiff
path: root/libs/libmdbx/src/mdbx.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/libmdbx/src/mdbx.h')
-rw-r--r--libs/libmdbx/src/mdbx.h43
1 files changed, 25 insertions, 18 deletions
diff --git a/libs/libmdbx/src/mdbx.h b/libs/libmdbx/src/mdbx.h
index 8070ce6622..971b009402 100644
--- a/libs/libmdbx/src/mdbx.h
+++ b/libs/libmdbx/src/mdbx.h
@@ -1453,9 +1453,14 @@ typedef enum MDBX_cursor_op {
/* Page has not enough space - internal error */
#define MDBX_PAGE_FULL (-30786)
-/* Database contents grew beyond environment mapsize and engine was
- * unable to extend mapping, e.g. since address space is unavailable or busy */
-#define MDBX_MAP_RESIZED (-30785)
+/* Database engine was unable to extend mapping, e.g. since address space
+ * is unavailable or busy. This can mean:
+ * - Database size extended by other process beyond to environment mapsize
+ * and engine was unable to extend mapping while starting read transaction.
+ * Environment should be reopened to continue.
+ * - Engine was unable to extend mapping during write transaction
+ * or explicit call of mdbx_env_set_geometry(). */
+#define MDBX_UNABLE_EXTEND_MAPSIZE (-30785)
/* Environment or database is not compatible with the requested operation
* or the specified flags. This can mean:
@@ -2027,9 +2032,9 @@ LIBMDBX_API int mdbx_env_get_fd(MDBX_env *env, mdbx_filehandle_t *fd);
* size. Besides, the upper bound defines the linear address space
* reservation in each process that opens the database. Therefore changing
* the upper bound is costly and may be required reopening environment in
- * case of MDBX_MAP_RESIZED errors, and so on. Therefore, this value should
- * be chosen reasonable as large as possible, to accommodate future growth
- * of the database.
+ * case of MDBX_UNABLE_EXTEND_MAPSIZE errors, and so on. Therefore, this
+ * value should be chosen reasonable as large as possible, to accommodate
+ * future growth of the database.
* - The growth step must be greater than zero to allow the database to grow,
* but also reasonable not too small, since increasing the size by little
* steps will result a large overhead.
@@ -2049,6 +2054,7 @@ LIBMDBX_API int mdbx_env_get_fd(MDBX_env *env, mdbx_filehandle_t *fd);
* - Windows does not provide the usual API to augment a memory-mapped file
* (that is, a memory-mapped partition), but only by using "Native API"
* in an undocumented way.
+ *
* MDBX bypasses all Windows issues, but at a cost:
* - Ability to resize database on the fly requires an additional lock
* and release SlimReadWriteLock during each read-only transaction.
@@ -2069,10 +2075,10 @@ LIBMDBX_API int mdbx_env_get_fd(MDBX_env *env, mdbx_filehandle_t *fd);
*
* If the mapsize is increased by another process, MDBX silently and
* transparently adopt these changes at next transaction start. However,
- * mdbx_txn_begin() will return MDBX_MAP_RESIZED if new mapping size could not
- * be applied for current process (for instance if address space is busy).
- * Therefore, in the case of MDBX_MAP_RESIZED error you need close and reopen
- * the environment to resolve error.
+ * mdbx_txn_begin() will return MDBX_UNABLE_EXTEND_MAPSIZE if new mapping size
+ * could not be applied for current process (for instance if address space
+ * is busy). Therefore, in the case of MDBX_UNABLE_EXTEND_MAPSIZE error you
+ * need close and reopen the environment to resolve error.
*
* NOTE: Actual values may be different than your have specified because of
* rounding to specified database page size, the system page size and/or the
@@ -2103,13 +2109,13 @@ LIBMDBX_API int mdbx_env_get_fd(MDBX_env *env, mdbx_filehandle_t *fd);
* database is used by other processes or threaded
* (i.e. just pass -1 in this argument except absolutely
* necessity). Otherwise you must be ready for
- * MDBX_MAP_RESIZED error(s), unexpected pauses during
- * remapping and/or system errors like "addtress busy",
- * and so on. In other words, there is no way to handle
- * a growth of the upper bound robustly because there may
- * be a lack of appropriate system resources (which are
- * extremely volatile in a multi-process multi-threaded
- * environment).
+ * MDBX_UNABLE_EXTEND_MAPSIZE error(s), unexpected pauses
+ * during remapping and/or system errors like "addtress
+ * busy", and so on. In other words, there is no way to
+ * handle a growth of the upper bound robustly because
+ * there may be a lack of appropriate system resources
+ * (which are extremely volatile in a multi-process
+ * multi-threaded environment).
*
* [in] growth_step The growth step in bytes, must be greater than zero
* to allow the database to grow.
@@ -2301,7 +2307,8 @@ LIBMDBX_API void *mdbx_env_get_userctx(MDBX_env *env);
* possible errors are:
* - MDBX_PANIC = a fatal error occurred earlier and the environment
* must be shut down.
- * - MDBX_MAP_RESIZED = another process wrote data beyond this MDBX_env's
+ * - MDBX_UNABLE_EXTEND_MAPSIZE
+ * = another process wrote data beyond this MDBX_env's
* mapsize and this environment's map must be resized
* as well. See mdbx_env_set_mapsize().
* - MDBX_READERS_FULL = a read-only transaction was requested and the reader