Skip to content
This repository has been archived by the owner on Sep 22, 2022. It is now read-only.

Releases: erthink/libmdbx

Release 0.5.0

12 Jun 23:17
Compare
Choose a tag to compare
  • Fix returning MDBX_RESULT_TRUE from page_alloc().
  • Fix false-positive ASAN issue.
  • Fix assertion for MDBX_NOTLS option.
  • Rework MADV_DONTNEED threshold.
  • Fix mdbx_chk utility for don't checking some numbers if walking of B-tree was disabled.
  • Use page's mp_txnid for basic integrity checking.
  • Add MDBX_FORCE_ASSERTIONS built-time option.
  • Rework MDBX_DBG_DUMP to avoid performance degradation.
  • Rename MDBX_NOSYNC to MDBX_SAFE_NOSYNC for clarity.
  • Interpret ERROR_ACCESS_DENIED from OpenProcess() as 'process exists'.
  • Avoid using FILE_FLAG_NO_BUFFERING for compatibility with small database pages.
  • Added install section for CMake.

Release 0.4.0

07 Dec 22:08
Compare
Choose a tag to compare
Release 0.4.0 Pre-release
Pre-release
  1. Support for Mac OSX, FreeBSD, NetBSD, OpenBSD, DragonFly BSD, OpenSolaris, OpenIndiana (AIX and HP-UX pending).
  2. Use bootid for decisions of rollback.
  3. Counting retired pages and extended transaction info.
  4. MDBX_ACCEDE flag for database opening.
  5. Using OFD-locks and tracking for in-process multi-opening.
  6. Hot backup into pipe.
  7. cmake & amalgamated sources.
  8. Fastest internal sort implementation.
  9. New internal dirty-list implementation with lazy sorting.
  10. Support for lazy-sync-to-disk with polling.
  11. Extended key length.
  12. Last update transaction number for each sub-database.
  13. Automatic read ahead enabling/disabling.
  14. More auto-compactification.
  15. -fsanitize=undefined and -Wpedantic.
  16. Rework page merging.
  17. Nested transactions.
  18. API description.
  19. Checking for non-local filesystems to avoid DB corruption.

0.2.0 2018-09-25

25 Sep 19:31
Compare
Choose a tag to compare

New features and Compatibility breaking:

  1. Compatible with v0.1.x (stable/1.0 branch).
  2. Identical database format for 32- and 64-bit builds.
  3. Dynamically DB file size (growth/shrink) and custom page size via mdbx_env_set_geometry().
  4. Support for Elbrus architecture.
  5. Support for Windows XP and later (building by MSVC 2013 and later, but not by MinGW).
  6. Support for MDBX_EXCLUSIVE mode, include network shares.
  7. Support for large write transactions.
  8. Extending mdbx_chk to verifing a inplaced sub-pages and accounting/statistics.
  9. Incompatible with v0.0.x (stable/0.0 branch) and with original/obsolete LMDB.

Fixes since v0.1.x releases (stable/1.0 branch):

  • major: fix corruption due LMDB-inherited rebalance bugs.
  • major: fix accounting for sorted-duplicates tables.
  • major: fix internal (LMDB-inherited and broken) audit.

Fixes since 0.1.5 2018-06-14:

  • fix LMDB-inherited empty and unneeded large/overflow pages.
  • fix LMDB-inherited cursor tracking bugs.
  • fix MDBX_CORRUPTED due concurrent open/shrink collision.
  • fix concurrent opening with custom pagesize.
  • fix MDBX_EKEYMISMATCH while update multi-value with MDBX_CURRENT.
  • linux: fix fallback2shared for mdbx_lck_exclusive().
  • windows: fix truncation race while unmap().
  • windows: fix nasty suspend_and_append() bug.
  • tools: fix wrong 'bad sequence' messages from mdbx_stat.
  • minor: doc fixes (ITS#8908 and ITS#8857).

Fixes since 0.1.4 2018-05-04:

  • MAJOR: force steady-sync when shrinking DB.
  • windows: disable non-blocking DB-close.
  • minor: skip meta if usedbytes beyond EOF.
  • minor: return MDBX_CORRUPTED instead of crash if MDBX_DUPSORT mismatch.

Fixes since 0.1.3 2018-04-03:

  • MAJOR: fix wrong freeDB search.
  • windows: fix lck_reader_alive_check().

Fixes since 0.1.2 2018-03-22:

  • MAJOR: fix/rework rthc to avoid GNU libc ntpl bug.
  • minor: fix cursor tracking inside mdbx_rebalance().
  • minor: fix mdbx_cursor_put(MDBX_APPEND+MDBX_NOOVERWRITE) return MDBX_KEYEXIST instead of MDBX_EKEYMISMATCH.

Fixes since 0.1.1 2018-03-14:

  • minor: fix/rework cache-line alignment.
  • minor: fix unaligned access to mp_ptrs[] on fake-page.
  • minor: lookup suitable txnid for rollback to avoid meta-pages clashes.
  • tool: rework/fix read-write mode inside mdbx_chk.
  • minor: fix minor memleak (Coverity).
  • minor: add workaround for Elbrus's libc bug.

Fixes since 0.1.0 2018-03-07:

  • minor: fix missing MDBX_DEVEL=1.

0.1.6 2018-09-23

25 Sep 18:47
Compare
Choose a tag to compare

New features and Compatibility breaking since stable/0.0:

  1. Incompatible with v0.0.x (stable/0.0 branch) and with original/obsolete LMDB.
  2. Identical database format for 32- and 64-bit builds.
  3. Dynamically DB file size (growth/shrink) and mdbx_env_set_geometry().
  4. Support for Elbrus architecture.
  5. Support for Windows (2008 and later, MSVC 2013 and later).

Fixes since 0.1.5 2018-06-14:

  • fix LMDB-inherited empty and unneeded large/overflow pages.
  • fix LMDB-inherited cursor tracking bugs.
  • fix MDBX_CORRUPTED due concurrent open/shrink collision.
  • fix concurrent opening with custom pagesize.
  • fix MDBX_EKEYMISMATCH while update multi-value with MDBX_CURRENT.
  • linux: fix fallback2shared for mdbx_lck_exclusive().
  • windows: fix truncation race while unmap().
  • windows: fix nasty suspend_and_append() bug.
  • tools: fix wrong 'bad sequence' messages from mdbx_stat.
  • minor: doc fixes (ITS#8908 and ITS#8857).

Fixes since 0.1.4 2018-05-04:

  • MAJOR: force steady-sync when shrinking DB.
  • windows: disable non-blocking DB-close.
  • minor: skip meta if usedbytes beyond EOF.
  • minor: return MDBX_CORRUPTED instead of crash if MDBX_DUPSORT mismatch.

Fixes since 0.1.3 2018-04-03:

  • MAJOR: fix wrong freeDB search.
  • windows: fix lck_reader_alive_check().

Fixes since 0.1.2 2018-03-22:

  • MAJOR: fix/rework rthc to avoid GNU libc ntpl bug.
  • minor: fix cursor tracking inside mdbx_rebalance().
  • minor: fix mdbx_cursor_put(MDBX_APPEND+MDBX_NOOVERWRITE) return MDBX_KEYEXIST instead of MDBX_EKEYMISMATCH.

Fixes since 0.1.1 2018-03-14:

  • minor: fix/rework cache-line alignment.
  • minor: fix unaligned access to mp_ptrs[] on fake-page.
  • minor: lookup suitable txnid for rollback to avoid meta-pages clashes.
  • tool: rework/fix read-write mode inside mdbx_chk.
  • minor: fix minor memleak (Coverity).
  • minor: add workaround for Elbrus's libc bug.

Fixes since 0.1.0 2018-03-07:

  • minor: fix missing MDBX_DEVEL=1.

0.0.4 (Оbsolete, LMDB compatible) 2018-09-21

25 Sep 18:58
Compare
Choose a tag to compare

Release of the stable/0.0 branch, which contains legacy code that compatible to original LMDB API.

Corresponds to LMDB v0.9.22, but NOT includes all fixes from libmdbx mainstream, for instance this fix for cursor state after a deletion.

Changes since 0.0.2 2018-07-15:

  • prevent DB corruption due LMDB-inherited rebalance bug (fixed in the master branch and 0.2.x).
  • minor doc fixes (ITS#8908 and ITS#8857).

Changes since 0.0.2 2018-05-04:

  • add fallthrough for modern GCC and CLang.
  • add include <sys/sysmacros.h> for modern GNU libc.
  • migrate to Circle-CI 2.0
  • update Project Status in the README.

Fixes since 0.0.1 2017-08-12 (corresponds to LMDB v0.9.21):

Fixes since 0.0.0 2017-07-04:

  • more for cursor_del() (ITS#8699, ITS#8622).
  • fix extra madvise(MADV_REMOVE).
  • fix mdbx_set_attr().

0.0.3 (Оbsolete, LMDB compatible) 2018-07-15

09 Aug 09:39
Compare
Choose a tag to compare

Release of the stable/0.0 branch, which contains legacy code that compatible to original LMDB API.

Corresponds to LMDB v0.9.22, but NOT includes all fixes from libmdbx mainstream, for instance this fix for cursor state after a deletion.

Changes since 0.0.2 2018-05-04:

  • add fallthrough for modern GCC and CLang.
  • add include <sys/sysmacros.h> for modern GNU libc.
  • migrate to Circle-CI 2.0
  • update Project Status in the README.

Fixes since 0.0.1 2017-08-12 (corresponds to LMDB v0.9.21):

Fixes since 0.0.0 2017-07-04:

  • more for cursor_del() (ITS#8699, ITS#8622).
  • fix extra madvise(MADV_REMOVE).
  • fix mdbx_set_attr().

0.1.5 2018-06-14

09 Aug 11:06
Compare
Choose a tag to compare

New features and Compatibility breaking since stable0.0:

  1. Incompatible with v0.0.x (stable/0.0 branch) and with original/obsolete LMDB.
  2. Identical database format for 32- and 64-bit builds.
  3. Dynamically DB file size (growth/shrink) and mdbx_env_set_geometry().
  4. Support for Elbrus architecture.
  5. Support for Windows (2008 and later, MSVC 2013 and later).

Fixes since 0.1.4 2018-05-04:

  • MAJOR: force steady-sync when shrinking DB.
  • windows: disable non-blocking DB-close.
  • minor: skip meta if usedbytes beyond EOF.
  • minor: return MDBX_CORRUPTED instead of crash if MDBX_DUPSORT mismatch.

Fixes since 0.1.3 2018-04-03:

  • MAJOR: fix wrong freeDB search.
  • windows: fix lck_reader_alive_check().

Fixes since 0.1.2 2018-03-22:

  • MAJOR: fix/rework rthc to avoid GNU libc ntpl bug.
  • minor: fix cursor tracking inside mdbx_rebalance().
  • minor: fix mdbx_cursor_put(MDBX_APPEND+MDBX_NOOVERWRITE) return MDBX_KEYEXIST instead of MDBX_EKEYMISMATCH.

Fixes since 0.1.1 2018-03-14:

  • minor: fix/rework cache-line alignment.
  • minor: fix unaligned access to mp_ptrs[] on fake-page.
  • minor: lookup suitable txnid for rollback to avoid meta-pages clashes.
  • tool: rework/fix read-write mode inside mdbx_chk.
  • minor: fix minor memleak (Coverity).
  • minor: add workaround for Elbrus's libc bug.

Fixes since 0.1.0 2018-03-07:

  • minor: fix missing MDBX_DEVEL=1.

0.1.4 2018-05-04

09 Aug 10:33
Compare
Choose a tag to compare

New features and Compatibility breaking since stable0.0:

  1. Incompatible with v0.0.x (stable/0.0 branch) and with original/obsolete LMDB.
  2. Identical database format for 32- and 64-bit builds.
  3. Dynamically DB file size (growth/shrink) and mdbx_env_set_geometry().
  4. Support for Elbrus architecture.
  5. Support for Windows (2008 and later, MSVC 2013 and later).

Fixes since 0.1.3 2018-04-03:

  • MAJOR: fix wrong freeDB search.
  • windows: fix lck_reader_alive_check().

Fixes since 0.1.2 2018-03-22:

  • MAJOR: fix/rework rthc to avoid GNU libc ntpl bug.
  • minor: fix cursor tracking inside mdbx_rebalance().
  • minor: fix mdbx_cursor_put(MDBX_APPEND+MDBX_NOOVERWRITE) return MDBX_KEYEXIST instead of MDBX_EKEYMISMATCH.

Fixes since 0.1.1 2018-03-14:

  • minor: fix/rework cache-line alignment.
  • minor: fix unaligned access to mp_ptrs[] on fake-page.
  • minor: lookup suitable txnid for rollback to avoid meta-pages clashes.
  • tool: rework/fix read-write mode inside mdbx_chk.
  • minor: fix minor memleak (Coverity).
  • minor: add workaround for Elbrus's libc bug.

Fixes since 0.1.0 2018-03-07:

  • minor: fix missing MDBX_DEVEL=1.

0.0.2 2018-05-04

09 Aug 11:55
Compare
Choose a tag to compare

Release of the stable/0.0 branch, which contains legacy code that compatible to original LMDB API.

Corresponds to LMDB v0.9.22, but NOT includes all fixes from libmdbx mainstream, for instance this fix for cursor state after a deletion.

Fixes since 0.0.1 2017-08-12 (corresponds to LMDB v0.9.21):

Fixes since 0.0.0 2017-07-04:

  • more for cursor_del() (ITS#8699, ITS#8622).
  • fix extra madvise(MADV_REMOVE).
  • fix mdbx_set_attr().

0.1.3 2018-04-03

09 Aug 10:35
Compare
Choose a tag to compare

New features and Compatibility breaking since stable0.0:

  1. Incompatible with v0.0.x (stable/0.0 branch) and with original/obsolete LMDB.
  2. Identical database format for 32- and 64-bit builds.
  3. Dynamically DB file size (growth/shrink) and mdbx_env_set_geometry().
  4. Support for Elbrus architecture.
  5. Support for Windows (2008 and later, MSVC 2013 and later).

Fixes since 0.1.2 2018-03-22:

  • MAJOR: fix/rework rthc to avoid GNU libc ntpl bug.
  • minor: fix cursor tracking inside mdbx_rebalance().
  • minor: fix mdbx_cursor_put(MDBX_APPEND+MDBX_NOOVERWRITE) return MDBX_KEYEXIST instead of MDBX_EKEYMISMATCH.

Fixes since 0.1.1 2018-03-14:

  • minor: fix/rework cache-line alignment.
  • minor: fix unaligned access to mp_ptrs[] on fake-page.
  • minor: lookup suitable txnid for rollback to avoid meta-pages clashes.
  • tool: rework/fix read-write mode inside mdbx_chk.
  • minor: fix minor memleak (Coverity).
  • minor: add workaround for Elbrus's libc bug.

Fixes since 0.1.0 2018-03-07:

  • minor: fix missing MDBX_DEVEL=1.