2021-01-26 07:26:09 +03:00
|
|
|
.\" Copyright 2015-2021 Leonid Yuriev <leo@yuriev.ru>.
|
2017-05-24 01:07:15 +03:00
|
|
|
.\" Copyright 2014-2015 Howard Chu, Symas Corp. All Rights Reserved.
|
2017-01-01 14:56:00 +03:00
|
|
|
.\" Copyright 2015,2016 Peter-Service R&D LLC <http://billing.ru/>.
|
2015-01-07 16:49:50 +03:00
|
|
|
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
|
mdbx: release v0.10.0
Acknowledgements:
-----------------
- [Mahlon E. Smith](https://github.com/mahlonsmith) for [Ruby bindings](https://rubygems.org/gems/mdbx/).
- [Alex Sharov](https://github.com/AskAlexSharov) for [mdbx-go](https://github.com/torquem-ch/mdbx-go), bug reporting and testing.
- [Artem Vorotnikov](https://github.com/vorot93) for bug reporting and PR.
- [Paolo Rebuffo](https://www.linkedin.com/in/paolo-rebuffo-8255766/), [Alexey Akhunov](https://github.com/AlexeyAkhunov) and Mark Grosberg for donations.
- [Noel Kuntze](https://github.com/Thermi) for preliminary [Python bindings](https://github.com/Thermi/libmdbx/tree/python-bindings)
New features:
-------------
- Added `mdbx_env_set_option()` and `mdbx_env_get_option()` for controls
various runtime options for an environment (announce of this feature was missed in a previous news).
- Added `MDBX_DISABLE_PAGECHECKS` build option to disable some checks to reduce an overhead
and detection probability of database corruption to a values closer to the LMDB.
The `MDBX_DISABLE_PAGECHECKS=1` provides a performance boost of about 10% in CRUD scenarios,
and conjointly with the `MDBX_ENV_CHECKPID=0` and `MDBX_TXN_CHECKOWNER=0` options can yield
up to 30% more performance compared to LMDB.
- Using float point (exponential quantized) representation for internal 16-bit values
of grow step and shrink threshold when huge ones (https://github.com/erthink/libmdbx/issues/166).
To minimize the impact on compatibility, only the odd values inside the upper half
of the range (i.e. 32769..65533) are used for the new representation.
- Added the `mdbx_drop` similar to LMDB command-line tool to purge or delete (sub)database(s).
- [Ruby bindings](https://rubygems.org/gems/mdbx/) is available now by [Mahlon E. Smith](https://github.com/mahlonsmith).
- Added `MDBX_ENABLE_MADVISE` build option which controls the use of POSIX `madvise()` hints and friends.
- The internal node sizes were refined, resulting in a reduction in large/overflow pages in some use cases
and a slight increase in limits for a keys size to ≈½ of page size.
- Added to `mdbx_chk` output number of keys/items on pages.
- Added explicit `install-strip` and `install-no-strip` targets to the `Makefile` (https://github.com/erthink/libmdbx/pull/180).
- Major rework page splitting (af9b7b560505684249b76730997f9e00614b8113) for
- An "auto-appending" feature upon insertion for both ascending and
descending key sequences. As a result, the optimality of page filling
increases significantly (more densely, less slackness) while
inserting ordered sequences of keys,
- A "splitting at middle" to make page tree more balanced on average.
- Added `mdbx_get_sysraminfo()` to the API.
- Added guessing a reasonable maximum DB size for the default upper limit of geometry (https://github.com/erthink/libmdbx/issues/183).
- Major rework internal labeling of a dirty pages (958fd5b9479f52f2124ab7e83c6b18b04b0e7dda) for
a "transparent spilling" feature with the gist to make a dirty pages
be ready to spilling (writing to a disk) without further altering ones.
Thus in the `MDBX_WRITEMAP` mode the OS kernel able to oust dirty pages
to DB file without further penalty during transaction commit.
As a result, page swapping and I/O could be significantly reduced during extra large transactions and/or lack of memory.
- Minimized reading leaf-pages during dropping subDB(s) and nested trees.
- Major rework a spilling of dirty pages to support [LRU](https://en.wikipedia.org/wiki/Cache_replacement_policies#Least_recently_used_(LRU))
policy and prioritization for a large/overflow pages.
- Statistics of page operations (split, merge, copy, spill, etc) now available through `mdbx_env_info_ex()`.
- Auto-setup limit for length of dirty pages list (`MDBX_opt_txn_dp_limit` option).
- Support `make options` to list available build options.
- Support `make help` to list available make targets.
- Silently `make`'s build by default.
- Preliminary [Python bindings](https://github.com/Thermi/libmdbx/tree/python-bindings) is available now
by [Noel Kuntze](https://github.com/Thermi) (https://github.com/erthink/libmdbx/issues/147).
Backward compatibility break:
-----------------------------
- The `MDBX_AVOID_CRT` build option was renamed to `MDBX_WITHOUT_MSVC_CRT`.
This option is only relevant when building for Windows.
- The `mdbx_env_stat()` always, and `mdbx_env_stat_ex()` when called with the zeroed transaction parameter,
now internally start temporary read transaction and thus may returns `MDBX_BAD_RSLOT` error.
So, just never use deprecated `mdbx_env_stat()' and call `mdbx_env_stat_ex()` with transaction parameter.
- The build option `MDBX_CONFIG_MANUAL_TLS_CALLBACK` was removed and now just a non-zero value of
the `MDBX_MANUAL_MODULE_HANDLER` macro indicates the requirement to manually call `mdbx_module_handler()`
when loading libraries and applications uses statically linked libmdbx on an obsolete Windows versions.
Fixes:
------
- Fixed performance regression due non-optimal C11 atomics usage (https://github.com/erthink/libmdbx/issues/160).
- Fixed "reincarnation" of subDB after it deletion (https://github.com/erthink/libmdbx/issues/168).
- Fixed (disallowing) implicit subDB deletion via operations on `@MAIN`'s DBI-handle.
- Fixed a crash of `mdbx_env_info_ex()` in case of a call for a non-open environment (https://github.com/erthink/libmdbx/issues/171).
- Fixed the selecting/adjustment values inside `mdbx_env_set_geometry()` for implicit out-of-range cases (https://github.com/erthink/libmdbx/issues/170).
- Fixed `mdbx_env_set_option()` for set initial and limit size of dirty page list ((https://github.com/erthink/libmdbx/issues/179).
- Fixed an unreasonably huge default upper limit for DB geometry (https://github.com/erthink/libmdbx/issues/183).
- Fixed `constexpr` specifier for the `slice::invalid()`.
- Fixed (no)readahead auto-handling (https://github.com/erthink/libmdbx/issues/164).
- Fixed non-alloy build for Windows.
- Switched to using Heap-functions instead of LocalAlloc/LocalFree on Windows.
- Fixed `mdbx_env_stat_ex()` to returning statistics of the whole environment instead of MainDB only (https://github.com/erthink/libmdbx/issues/190).
- Fixed building by GCC 4.8.5 (added workaround for a preprocessor's bug).
- Fixed building C++ part for iOS <= 13.0 (unavailability of `std::filesystem::path`).
- Fixed building for Windows target versions prior to Windows Vista (`WIN32_WINNT < 0x0600`).
- Fixed building by MinGW for Windows (https://github.com/erthink/libmdbx/issues/155).
TODO for a next releases:
-------------------------
- [Get rid of dirty-pages list in MDBX_WRITEMAP mode](https://github.com/erthink/libmdbx/issues/193).
- [Large/Overflow pages accounting for dirty-room](https://github.com/erthink/libmdbx/issues/192).
- [C++ Buffer issue](https://github.com/erthink/libmdbx/issues/191).
- Finalize C++ API (few typos and trivia bugs are still likely for now).
- [Support for RAW devices](https://github.com/erthink/libmdbx/issues/124).
- [Test framework issue](https://github.com/erthink/libmdbx/issues/127).
- [Support MessagePack for Keys & Values](https://github.com/erthink/libmdbx/issues/115).
- [Engage new terminology](https://github.com/erthink/libmdbx/issues/137).
- Packages for [Astra Linux](https://astralinux.ru/), [ALT Linux](https://www.altlinux.org/), [ROSA Linux](https://www.rosalinux.ru/), Fedora/RHEL, Debian/Ubuntu.
2021-05-09 02:57:12 +03:00
|
|
|
.TH MDBX_LOAD 1 "2021-05-09" "MDBX 0.10.0"
|
2015-01-07 16:49:50 +03:00
|
|
|
.SH NAME
|
2017-05-24 01:42:10 +03:00
|
|
|
mdbx_load \- MDBX environment import tool
|
2015-01-07 16:49:50 +03:00
|
|
|
.SH SYNOPSIS
|
2017-02-21 20:16:54 +03:00
|
|
|
.B mdbx_load
|
2015-01-07 16:49:50 +03:00
|
|
|
[\c
|
|
|
|
.BR \-V ]
|
|
|
|
[\c
|
2019-12-05 01:43:57 +03:00
|
|
|
.BR \-q ]
|
2015-01-07 16:49:50 +03:00
|
|
|
[\c
|
2019-12-05 01:43:57 +03:00
|
|
|
.BR \-a ]
|
|
|
|
[\c
|
|
|
|
.BI \-f \ file\fR]
|
2015-01-07 16:49:50 +03:00
|
|
|
[\c
|
|
|
|
.BI \-s \ subdb\fR]
|
|
|
|
[\c
|
|
|
|
.BR \-N ]
|
|
|
|
[\c
|
|
|
|
.BR \-T ]
|
2019-12-05 01:43:57 +03:00
|
|
|
[\c
|
|
|
|
.BR \-r ]
|
|
|
|
[\c
|
|
|
|
.BR \-n ]
|
|
|
|
.BR \ dbpath
|
2015-01-07 16:49:50 +03:00
|
|
|
.SH DESCRIPTION
|
|
|
|
The
|
2017-02-21 20:16:54 +03:00
|
|
|
.B mdbx_load
|
2015-01-07 16:49:50 +03:00
|
|
|
utility reads from the standard input and loads it into the
|
2017-05-24 01:42:10 +03:00
|
|
|
MDBX environment
|
2019-12-05 01:43:57 +03:00
|
|
|
.BR dbpath .
|
2015-01-07 16:49:50 +03:00
|
|
|
|
|
|
|
The input to
|
2017-02-21 20:16:54 +03:00
|
|
|
.B mdbx_load
|
2015-01-07 16:49:50 +03:00
|
|
|
must be in the output format specified by the
|
2017-02-21 20:16:54 +03:00
|
|
|
.BR mdbx_dump (1)
|
2015-01-07 16:49:50 +03:00
|
|
|
utility or as specified by the
|
|
|
|
.B -T
|
|
|
|
option below.
|
2020-09-25 02:10:55 +03:00
|
|
|
|
|
|
|
A simple escape mechanism, where newline and backslash (\\) characters are special, is
|
|
|
|
applied to the text input. Newline characters are interpreted as record separators.
|
|
|
|
Backslash characters in the text will be interpreted in one of two ways: If the backslash
|
|
|
|
character precedes another backslash character, the pair will be interpreted as a literal
|
|
|
|
backslash. If the backslash character precedes any other character, the two characters
|
|
|
|
following the backslash will be interpreted as a hexadecimal specification of a single
|
|
|
|
character; for example, \\0a is a newline character in the ASCII character set.
|
|
|
|
|
|
|
|
For this reason, any backslash or newline characters that naturally occur in the text
|
|
|
|
input must be escaped to avoid misinterpretation by
|
|
|
|
.BR mdbx_load .
|
|
|
|
|
2015-01-07 16:49:50 +03:00
|
|
|
.SH OPTIONS
|
|
|
|
.TP
|
|
|
|
.BR \-V
|
|
|
|
Write the library version number to the standard output, and exit.
|
|
|
|
.TP
|
2019-12-05 01:43:57 +03:00
|
|
|
.BR \-q
|
|
|
|
Be quiet.
|
|
|
|
.TP
|
2019-02-03 15:49:40 +03:00
|
|
|
.BR \-a
|
|
|
|
Append all records in the order they appear in the input. The input is assumed to already be
|
|
|
|
in correctly sorted order and no sorting or checking for redundant values will be performed.
|
|
|
|
This option must be used to reload data that was produced by running
|
|
|
|
.B mdbx_dump
|
|
|
|
on a database that uses custom compare functions.
|
|
|
|
.TP
|
2015-01-07 16:49:50 +03:00
|
|
|
.BR \-f \ file
|
|
|
|
Read from the specified file instead of from the standard input.
|
|
|
|
.TP
|
|
|
|
.BR \-s \ subdb
|
|
|
|
Load a specific subdatabase. If no database is specified, data is loaded into the main database.
|
|
|
|
.TP
|
|
|
|
.BR \-N
|
|
|
|
Don't overwrite existing records when loading into an already existing database; just skip them.
|
|
|
|
.TP
|
|
|
|
.BR \-T
|
|
|
|
Load data from simple text files. The input must be paired lines of text, where the first
|
|
|
|
line of the pair is the key item, and the second line of the pair is its corresponding
|
|
|
|
data item.
|
2019-12-05 01:43:57 +03:00
|
|
|
.TP
|
|
|
|
.BR \-r
|
|
|
|
Rescure mode. Ignore errors to load corrupted DB dump.
|
|
|
|
.TP
|
|
|
|
.BR \-n
|
|
|
|
Load an MDBX database which does not use subdirectories.
|
2020-09-25 02:10:55 +03:00
|
|
|
This is legacy option. For now MDBX handles this automatically.
|
2020-09-28 15:37:47 +03:00
|
|
|
|
2015-01-07 16:49:50 +03:00
|
|
|
.SH DIAGNOSTICS
|
|
|
|
Exit status is zero if no errors occur.
|
|
|
|
Errors result in a non-zero exit status and
|
|
|
|
a diagnostic message being written to standard error.
|
|
|
|
|
|
|
|
.SH "SEE ALSO"
|
2019-09-10 16:08:21 +03:00
|
|
|
.BR mdbx_dump (1),
|
|
|
|
.BR mdbx_chk (1),
|
|
|
|
.BR mdbx_stat (1),
|
|
|
|
.BR mdbx_copy (1)
|
2021-03-10 14:43:49 +03:00
|
|
|
.BR mdbx_drop (1)
|
2015-01-07 16:49:50 +03:00
|
|
|
.SH AUTHOR
|
2019-12-05 01:43:57 +03:00
|
|
|
Howard Chu of Symas Corporation <http://www.symas.com>,
|
2020-02-18 02:22:47 +03:00
|
|
|
Leonid Yuriev <https://github.com/erthink>
|