Archive

Archive for October, 2011

hamsterdb: release 1.1.14

October 21st, 2011

This is the latest stable release from the 1.1.x branch.

This release improves performance and scalability for databases with several million items by avoiding two expensive memcpy’s and a linked list traversal when aborting or committing transactions. If you do not use transactions then don’t bother, but if you do (and your database is big enough) then you should see a significant performance gain.

This release also fixes a bug when erasing extended keys caused an SMO (btree re-balancing). This bug was present since the beginning of time and it took 6 years till it was noticed.

A new function ham_cursor_get_record_size was introduced. The cache size is now a 64bit variable and can be > 4 GB. Large files were enabled on 32bit linux.

All listed issues were reported by (mostly) commercial licensees, including code to reproduce. Thanks for all the contributions!

As usual, everything’s available for download here: http://hamsterdb.com/download.

chris Coding, Databases, hamsterdb, Libraries

hamsterdb: release 2.0.0.rc2

October 11th, 2011

This is the first stabilization release of the new (unstable) 2.0.0 branch which re-implemented the Transaction handling. Several bugs were fixed, and most (all?) of the code was refactored. A C++ compiler is now required to compile hamsterdb. All new features and bug fixes of 1.1.14 (will be released soon) were merged. This release is not ready for production! There are still two tests that currently fail and fixing these requires me to rewrite most of ham_cursor_move. Also, some of the Transaction routines (esp. in combination with extended keys and/or duplicates) have performance issues. There will be at least two more stabilization releases till 2.0.0 is ready for production.

Sources and CHANGELOG are available for download here!

chris Coding, Databases, hamsterdb, Libraries

Smallest Zend Ajax snippet ever

October 4th, 2011

I discovered this more or less by accident – the smallest ajax action handler ever:

Ajax with Zend is a bit cumbersome. While it’s documented well, you still have to disable the Layout, you might want to disable the View etc. Using die() violates all MVC principles and most likely everything else you ever heard about programming style, but it works great.

die() is an equivalent to exit. It prints the parameter to stdout and terminates the script. The Apache server will capture the output and return it to the browser with a status code of 200 (success). die() properly cleans up all objects and calls their destructors.

chris Coding