This release fixes a few minor bugs and adds a performance for In-Memory Databases: Users can now request a pointer to the stored record data by specifying the flag HAM_DIRECT_ACCES to ham_find, ham_cursor_find[_ex] and ham_cursor_move. Thus they can overwrite the record data without calling ham_insert or ham_cursor_overwrite. Also, a few flags were removed and the interface for ham_get_key_count was changed – please see the README.
As usual everything’s available for download here.
chris Coding, hamsterdb, Libraries
After months of work and receiving/integrating tons of patches, i’m happy that 1.1.0 is finally released!
I have increased the minor version because major new functionality was added and the database file format is not backwards compatible (however, 1.1.0 can read/write databases from 1.0.x).
Most of the patches were contributed by Ger Hobbelt (http://www.hobbelt.com, http://www.hebbut.net). Thank sa lot for the great work!
What’s new?
- “Approximate matching” – retrieves the nearest neighbour if a key is not found. Useful i.e. for time-based lookup (timestamp used as index)
- Major performance improvements, esp. in freelist management and in the caching
- Data Access Modes optimize runtime behaviour for performance depending on your Database characteristics (i.e. “read/write” vs “sequential inserts”)
- New functions to get runtime information (ham_env_get_parameter, ham_get_parameter)
- A new function ham_get_key_count() returns the number of keys
- several bugfixes
As usual everything’s available for download here.
What’s on the plate for the next release? I have more patches from ger to merge, i will clean up/refactor some parts of the code and i want to give direct access to records in in-memory databases (means you can retrieve the pointer to the stored record instead of a copy, and you can directly modify/overwrite it).
The long-term plans for hamsterdb are to merge the functionality of hamsterdb Transactional Storage into hamsterdb Embedded Storage. I decided that i don’t have the resources to develop two different databases, and since Embedded Storage already has many users and i get frequent feedback it makes sense to concentrate my energy to it.
chris Coding, hamsterdb, Libraries