hamsterdb 2.0.0.rc2 - Release Notes

This version is UNSTABLE!! This release stabilizes the 2.0.0 branch. It fixes several bugs and improves the performance. Also, all new features and fixes of the 1.1.14-branch were merged.
Additionally, there were hundreds of internal changes, code cleanups and refactorings. A C++ compiler is now required to compile hamsterdb (although the interface is still ANSI-C). In previous versions some source files also required a C++ compiler, but these files were all optional.
This release is not stable and not ready for production.

Version 2.0.0 allows to start an arbitrary number of Transactions that run in parallel. All modified keys are stored in RAM and are flushed to disk when the Transaction is committed. If the Transaction is aborted then the information in RAM is simply discarded. For recovery a journal is written; the journal does not write the physical page information, but a logical meta-information about the operations in this Transaction. (This version of 2.0.0rc1 still uses the physical log in combination with the new journal; the old log will be removed in the next versions). At runtime, the information in RAM and in the btree index is then consolidated. Users who do not use Transactions should not notice any difference between 1.x and this version. Compared to 1.x, a few functions were disabled if Transactions are enabled: - sorting duplicate keys (HAM_SORT_DUPLICATES) - approximate matching - direct access (HAM_DIRECT_ACCESS) - partial read/write (HAM_PARTIAL) See below for known issues and bugs.

New Features

Bugfixes

Other Changes

Known Issues

The following tests fail because of bugs in hamsterdb when using cursors to 
move over duplicate keys.
./test --use-transactions=200 --fullcheck-backwards ../../testfiles/1/220.tst
./test --use-transactions=200 --fullcheck-backwards ../../testfiles/2/102.tst

For more information, read the README and the ChangeLog.