libmdbx/src/man1/mdbx_stat.1

87 lines
2.4 KiB
Groff
Raw Normal View History

.\" Copyright 2015-2021 Leonid Yuriev <leo@yuriev.ru>.
.\" Copyright 2012-2015 Howard Chu, Symas Corp. All Rights Reserved.
.\" 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_STAT 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_stat \- MDBX environment status tool
2015-01-07 16:49:50 +03:00
.SH SYNOPSIS
.B mdbx_stat
2015-01-07 16:49:50 +03:00
[\c
.BR \-V ]
[\c
2019-12-05 01:43:57 +03:00
.BR \-q ]
[\c
.BR \-p ]
[\c
2015-01-07 16:49:50 +03:00
.BR \-e ]
[\c
.BR \-f [ f [ f ]]]
[\c
.BR \-r [ r ]]
[\c
.BR \-a \ |
.BI \-s \ subdb\fR]
2019-12-05 01:43:57 +03:00
.BR \ dbpath
[\c
.BR \-n ]
2015-01-07 16:49:50 +03:00
.SH DESCRIPTION
The
.B mdbx_stat
2017-05-24 01:42:10 +03:00
utility displays the status of an MDBX environment.
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
.BR \-p
Display overall statistics of page operations of all (running, completed
and aborted) transactions in the current multi-process session (since the
first process opened the database after everyone had previously closed it).
.TP
2015-01-07 16:49:50 +03:00
.BR \-e
Display information about the database environment.
.TP
.BR \-f
Display information about the environment GC.
If \fB\-ff\fP is given, summarize each GC/freelist entry.
If \fB\-fff\fP is given, display the full list of page IDs in the GC/freelist.
2015-01-07 16:49:50 +03:00
.TP
.BR \-r
Display information about the environment reader table.
Shows the process ID, thread ID, and transaction ID for each active
reader slot. The process ID and transaction ID are in decimal, the
thread ID is in hexadecimal. The transaction ID is displayed as "-"
if the reader does not currently have a read transaction open.
If \fB\-rr\fP is given, check for stale entries in the reader
table and clear them. The reader table will be printed again
after the check is performed.
.TP
.BR \-a
Display the status of all of the subdatabases in the environment.
.TP
.BR \-s \ subdb
Display the status of a specific subdatabase.
2019-12-05 01:43:57 +03:00
.TP
.BR \-n
Display the status of an MDBX database which does not use subdirectories.
This is legacy option. For now MDBX handles this automatically
for existing databases, but may be required while creating new.
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"
.BR mdbx_chk (1),
.BR mdbx_copy (1),
.BR mdbx_dump (1),
.BR mdbx_load (1)
.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>,
Leonid Yuriev <https://github.com/erthink>