Simple, efficient, ultra-fast, scalable data store wrapper for LMDB
OTHER License
Bot releases are visible (Hide)
Published by github-actions[bot] over 2 years ago
Published by github-actions[bot] over 2 years ago
Published by github-actions[bot] over 2 years ago
Published by github-actions[bot] over 2 years ago
V2.2.0 has enabled the overlappingSync
functionality by default and improved the scheduling of sync operations to achieve better performance.
This release also introduces support for temporary databases. By simply omitting the path when opening a database, lmdb-js will auto-generate a temporary database (in the system temp directory), and delete it on close (it will also be opened with sync disabled for better performance). This can be useful for testing or creating intermediary tables.
The release also includes support for coordinating with the weak referencing cache to clear "kept" objects for better garbage collection in long-running synchronous jobs.
And v2.2.0 includes better performance for retrieving large binary entries by employing a reduced memory copying technique (affects entries over > 64KB).
Published by github-actions[bot] over 2 years ago
Published by github-actions[bot] over 2 years ago
Published by github-actions[bot] over 2 years ago
Published by github-actions[bot] almost 3 years ago
Published by github-actions[bot] almost 3 years ago
Published by github-actions[bot] almost 3 years ago
Published by github-actions[bot] almost 3 years ago
Published by github-actions[bot] almost 3 years ago
The most significant new capability in this release is support for Deno. Deno functionality still has a number of limitations (no async transactions), but core functionality is now available. This release also includes new functionality for supporting asynchronous prefetching for gets, in situations where page faults/disk-I/O are likely. Also includes bug fixes for closing databases. Of particular note is that the close()
method is now asynchronous (returns a promise).
Published by github-actions[bot] almost 3 years ago
Published by github-actions[bot] almost 3 years ago
Published by github-actions[bot] almost 3 years ago
Published by github-actions[bot] almost 3 years ago
Published by github-actions[bot] almost 3 years ago
Published by github-actions[bot] almost 3 years ago
Published by github-actions[bot] almost 3 years ago
The most central change in v2.0 is a rewrite of how data is batched and written to LMDB, implementing a true multi-thread producer-consumer protocol such that all writes are directly and immediately serialized to a binary format that the writer thread can consume in real-time. This has multiple implications (and hopefully benefits):
In lmdb-js, LMDB now supports "overlapping" syncs. This allows transactions to safely commit prior to be flushed to disk, and then the data can be flushed (and database metadata updated) after the transaction is visible and unlocked, allowing most of the disk I/O to happen in parallel with future write transactions, which can potentially provide some significant performance benefits in some heavy-write situations.
V.2+ is now published to https://www.npmjs.com/package/lmdb as its canonical NPM package. The 1.x line will continue to be available in the lmdb-store
package. The repository has also been renamed to lmdb-js, to reflect the cross-platform goals of this project with Deno support coming soon (and significant internal upgrades in v2 to support this).
There aren't any intentionally substantive breaking changes to the (documented) API itself, just cleanup and removal of previously deprecated APIs. But the underlying changes are large enough that testing should be done with an update.
Published by github-actions[bot] almost 3 years ago