hamsterdb: release 0.4.4 (unstable)
This release comes with loads of changes and new features!
New Features
- “Environments”: hamsterdb can now handle multiple files per database (default: up to 32). New functions were added to ham/hamsterdb.h. A new sample (env1.c) demonstrates the new functions, and the tutorial was updated.
- The Visual Studio 2005 Solution now supports 64bit builds.
- hamsterdb was ported to Windows CE - a Solution file is in the wince subdirectory.
- New flag HAM_LOCK_EXCLUSIVE places an exclusive file lock on the database.
Bugfixes
- The flag HAM_DISABLE_MMAP was ignored - fixed.
- Freelist pages were sometimes not marked as ‘dirty’ and not flushed to disk - fixed.
- The freelist pages were cached, but never flushed, and therefore polluted the cache - fixed.
- The flag HAM_DISABLE_FREELIST_FLUSH was ignored - fixed.
- Some deleted pages were not added to the freelist - fixed.
Other Changes
- An API change: ham_open_ex and ham_create_ex now expect an array of ham_parameter_t elements.
- The type of ham_key_t::size (declared in hamsterdb.h) is now ham_u16_t, and no longer ham_size_t.
- Performance improvements in the handling and caching of extended keys.
- More unittests were added.
To see a list of all changes, look in the file CHANGELOG.
Here’s a link to the documentation of the new environment functions:
http://www.hamsterdb.com/?page=doxygen&module=group__ham__env.html.
And here’s a link to the sample:
http://www.hamsterdb.com/dl/env1-0.4.4.c
Please be aware of the API changes mentioned above. They are not complicated, and most likely nobody is affected by them. If you’re affected, then the fixes are not too complicated.
The performance improvements can be quite huge if you have a lot of extended keys.
As always: go to hamsterdb for download and online documentation!
The next item on my roadmap are logical record numbers. If you have any implementation wishes, feel free to discuss them with me - either send me a mail or write a blog comment!