Commit Graph

29 Commits

Author SHA1 Message Date
Leonid Yuriev
3a39874025 mdbx: update ChangeLog.
Change-Id: Ie3163ca1ffe4528564bb4c997b813c519510851d
2020-11-15 08:02:25 +03:00
Leonid Yuriev
a32c69813d mdbx: update ChangeLog.
Change-Id: If4b99d93967e077e97e1423010686d6e21a984b5
2020-10-31 02:55:22 +03:00
Leonid Yuriev
2e3a552c3c mdbx: update ChangeLog.
Change-Id: I7d4eda460db2418682f072d3a38b7971796e2b2a
2020-10-23 03:33:08 +03:00
Leonid Yuriev
f73a8a8680 mdbx: add latency gathering for commit stages.
Change-Id: If68ceb6e69e5e565ce9de0fd9a80424b6da280c5
2020-10-21 01:00:48 +03:00
Leonid Yuriev
de1856a73c mdbx: workaround for broken DEFINE_ENUM_FLAG_OPERATORS from Windows SDK.
Change-Id: I5335c72061b7c5b6b29c683061a5da95544b9753
2020-10-10 23:53:35 +03:00
Leonid Yuriev
0627d902dd mdbx: add mdbx_env_delete().
Resolves https://github.com/erthink/libmdbx/issues/119
Related to https://github.com/Kerollmops/heed/issues/58

Change-Id: Iec5bf5978e45bb6843f3ed8dd06ea4d34f2895cb
2020-10-10 00:58:53 +03:00
Leonid Yuriev
05b3b4e51e mdbx-packages: add patch for buildroot.
Based on v0.9.1.0

Change-Id: If61d1f47e3ad71479ccfb1d25dbfd4a5c9e750cc
2020-10-10 00:52:37 +03:00
Leonid Yuriev
8f490d1474 mdbx: update ChangeLog.md
Change-Id: Icdfd9d06276623983454a0c58282856134d50150
2020-10-08 13:31:22 +03:00
Leonid Yuriev
44b1a3bcff
mdbx: release v0.9.1
Added features:

 - Preliminary C++ API with support for C++17 polymorphic allocators.
 - [Online C++ API reference](https://erthink.github.io/libmdbx/) by Doxygen.
 - Quick reference for Insert/Update/Delete operations.
 - Explicit `MDBX_SYNC_DURABLE` to sync modes for API clarity.
 - Explicit `MDBX_ALLDUPS` and `MDBX_UPSERT` for API clarity.
 - Support for read transactions preparation (`MDBX_TXN_RDONLY_PREPARE` flag).
 - Support for cursor preparation/(pre)allocation and reusing (`mdbx_cursor_create()` and `mdbx_cursor_bind()` functions).
 - Support for checking database using specified meta-page (see `mdbx_chk -h`).
 - Support for turn to the specific meta-page after checking (see `mdbx_chk -h`).
 - Support for explicit reader threads (de)registration.
 - The `mdbx_txn_break()` function to explicitly mark a transaction as broken.
 - Improved handling of corrupted databases by `mdbx_chk` utility and `mdbx_walk_tree()` function.
 - Improved DB corruption detection by checking parent-page-txnid.
 - Improved opening large DB (> 4Gb) from 32-bit code.
 - Provided `pure-function` and `const-function` attributes to C API.
 - Support for user-settable context for transactions & cursors.
 - Revised API and documentation related to Handle-Slow-Readers callback feature.

Deprecated functions and flags:

 - For clarity and API simplification the `MDBX_MAPASYNC` flag is deprecated.
   Just use `MDBX_SAFE_NOSYNC` or `MDBX_UTTERLY_NOSYNC` instead of it.
 - `MDBX_oom_func`, `mdbx_env_set_oomfunc()` and `mdbx_env_get_oomfunc()`
   replaced with `MDBX_hsr_func`, `mdbx_env_get_hsr` and `mdbx_env_get_hsr()`.

Fixes:

 - Fix `mdbx_strerror()` for `MDBX_BUSY` error (no error description is returned).
 - Fix update internal meta-geo information in read-only mode (`EACCESS` or `EBADFD` error).
 - Fix `mdbx_page_get()` null-defer when DB corrupted (crash by `SIGSEGV`).
 - Fix `mdbx_env_open()` for re-opening after non-fatal errors (`mdbx_chk` unexpected failures).
 - Workaround for MSVC 19.27 `static_assert()` bug.
 - Doxygen descriptions and refinement.
 - Update Valgrind's suppressions.
 - Workaround to avoid infinite loop of 'nested' testcase on MIPS under QEMU.
 - Fix a lot of typos & spelling (Thanks to Josh Soref for PR).
 - Fix `getopt()` messages for Windows (Thanks to Andrey Sporaw for reporting).
 - Fix MSVC compiler version requirements (Thanks to Andrey Sporaw for reporting).
 - Workarounds for QEMU's bugs to run tests for cross-builded library under QEMU.
 - Now C++ compiler optional for building by CMake.

TODO for next version(s):

 - Rework/speedup the implementation of the dirty page list (lazy compactification, lazy sorting via merge).
 - Finalize C++ API (few typos and trivia bugs are likely for now).
 - Packages for ROSA Linux, ALT Linux, Fedora/RHEL, Debian/Ubuntu.

Change-Id: I668d77e4545d444b60708b8c64a66ce43b2c56a0
2020-09-30 13:28:01 +03:00
Leonid Yuriev
f6850f5367 mdbx: Support for user-settable cursor context.
Change-Id: I9bd60c432924e39020b2d3af3280f13c44d6cd91
2020-09-29 21:15:25 +03:00
Leonid Yuriev
c8a0951566 mdbx: rework API and Docs around Handle-Slow-Readers (no algorithmic changes).
Change-Id: I5b76a8400ce6f5f241f8e4a7f53d746fe39f8e1e
2020-09-29 21:15:25 +03:00
Leonid Yuriev
6294e1710a mdbx: support for user-settable transaction context.
Change-Id: Ib4a345628e2c1ca2f95ac7615ea53d94911e5198
2020-09-29 20:59:55 +03:00
Leonid Yuriev
fde4186883 mdbx: update ChangeLog.
Change-Id: Ib2edc6e0f453d113cacc6c4a5b1851d2ef8b1a52
2020-09-29 20:59:54 +03:00
Leonid Yuriev
5627521f16 mdbx++: more spelling.
Change-Id: I3f33e695fb918c6a57c39047bba54a72ecb9bc5b
2020-09-27 17:01:59 +03:00
Leonid Yuriev
693f353811 mdbx: update ChangeLog.
Change-Id: Ic334ab08b517056752f2e00fdf26299e2cfabfac
2020-09-25 02:17:57 +03:00
Leonid Yuriev
5c89717ecd mdbx: update ChangeLog (preparation to v9.1 release).
Change-Id: I58313f4bae4c31f4979d1000b45b3d5c04a9312d
2020-09-22 00:41:05 +03:00
Leonid Yuriev
88a4b8cb9b mdbx++: Initial C++ API (some extra methods are not implemented).
Change-Id: I0478d0c94dcd12b52916e87815e5731817407c3c
2020-08-28 16:45:30 +03:00
Leonid Yuriev
100ac532ed mdbx-docs: update ChangeLog.
Change-Id: I3c54dc41321b737046ce44757ae4a62e4e1317b8
2020-08-07 13:09:22 +03:00
Leonid Yuriev
0a01b46112 mdbx: add mdbx_thread_register() and mdbx_thread_unregister().
Change-Id: I605bc75a20631e781043fafcc26f5e59cb40adaa
2020-07-31 01:33:16 +03:00
Leonid Yuriev
dcd61289d8 mdbx-doc: more for Doxygen (refs, build options).
Change-Id: I8b15bce3d6638a24bdafa3171ae10f01311862d7
2020-07-29 02:18:44 +03:00
Leonid Yuriev
e3efef40c4 mdbx: initial support for doxygen.
Change-Id: I5258b9f5dac981f03658ed35a799a52250a3e136
2020-07-23 11:58:04 +03:00
Leonid Yuriev
e989cb05ed mdbx: deprecate mdbx_dbi_open_ex() and custom comparators.
Change-Id: I1d20f77b9ba5d8d5ec891df17019377afb466b06
2020-07-07 19:33:59 +03:00
Leonid Yuriev
e34e58f529 mdbx: reformat ChangeLog (cosmetics).
Change-Id: Ida9e18a512604c3fff8d3d88558020f694e740b0
2020-07-07 00:38:27 +03:00
Leonid Yuriev
fc9ae9ebc6 mdbx: bump version to 0.8.2
Change-Id: I99ace837318d3aef4086392272c8256d966ef2fd
2020-07-06 16:37:35 +03:00
Leonid Yuriev
3351c1f869 mdbx: implements remapping of the database file when it it possible.
Change-Id: Ida15ba1f396a33b2c6063e680dff612f39a9608f
2020-07-06 16:23:52 +03:00
Leonid Yuriev
2d0a5c42a9 mdbx: avoids unnecessary remap in case geometry changed concurrently by another process(es).
Change-Id: Ibf3a90bc79b1e8e0fa752dabc21b129a697c08d4
2020-07-06 14:35:41 +03:00
Leonid Yuriev
6439a95b65 mdbx: update changelog.
Change-Id: I6b88bbe002449b5345d303824843903cfb8bc503
2020-07-06 14:35:41 +03:00
Leonid Yuriev
35313d18bc mdbx-posix: refine mdbx_lck_init(), allow multi-opending with MDBX_LOCKING_SYSV. 2020-06-15 12:51:35 +03:00
Leonid Yuriev
0bb950ad55 mdbx: provide ChangeLog.
Change-Id: I1fce6d48c8f5cbef5ecf1e932cbd9c7dff58462d
2020-06-13 03:07:15 +03:00