Skip to content

Releases: ledgerwatch/lmdb-go

v1.16.0

10 Oct 04:25
6a21150
Compare
Choose a tag to compare
  • new API: env.SetMaxFreelistReuse
* Find a big enough contiguous page range for large values in freelist is hard
     * just allocate new pages and even don't try to search if value is bigger than this limit.
     * Measured in pages.
     *
     * Originally this parameter was introduced when "large freelist" (100K pages), after some it's pages re-used,
     * did save it's new value into FREE_DBI, but to write new value - it tried to find
     * contiguous page range in "large freelist" (how usually all updates work in LMDB), it took us
     * 10 minutes (it's part of mdb_txn_commit func). This corner-case starts to be visible after FREE_DBI gets
     * over 10K pages.
     * Notice: FREE_DBI stores id's of free pages, "FREE_DBI gets over 10K pages" means that DB has: 10K*PAGE_SIZE/8=5M free pages.
     *
     * Such "large freelist" can appear after write transactions of hundreds Gigabytes size
     * (for example data format migration or just big delete or DBI drop).
     * Our recommendation is to avoid accumulating such big freelist.
     *
     * Recommended value: set it bigger than usual value size of your app - set it as high as possible, but remember
     * that corner-case described above start be noticeable after maxfree_reuse>10K.
     *
     * Default value: 10K

v1.15.0

04 Sep 04:25
543d165
Compare
Choose a tag to compare

Improve custom comparator dup_cmp_exclude_suffix32
Add methods Cmp and DCmp

v1.14.0

29 Aug 08:22
0057532
Compare
Choose a tag to compare

Add custom comparator dup_cmp_exclude_suffix32

v1.13.0

01 Aug 07:01
Compare
Choose a tag to compare
Merge tag 'v1.11.0'

v1.12.0

01 Aug 06:31
e485e31
Compare
Choose a tag to compare

hide warning: -Wno-implicit-fallthrough