This release has a few new (minor) features and a couple of bug
fixes. The most important change is not in code, but in the license. With this
release, I will no longer offer paid licenses. Instead, the code is released
under the Apache Public License 2.0, and free for use in closed, commercial
applications.
I have never worked full-time on upscaledb (and its predecessor hamsterdb), but the amount of time I have invested was often more than 40 hours per week. Over
the last year I realized that I do no longer have the resources and the grit to
do this. Spending time with the family is just way more valuable.
Still, it was a difficult decision. For many years I had the vision to write
database code for a living. Working on my own database, my own project, felt
like a dream coming true. Commercially, the dream turned out to be not
sustainable. It did not feel good to see that others had the same problems, but it helped nevertheless.
What now? I will continue working on upscaledb. I will invest my limited time
where it makes most sense (for me). Things that I do not enjoy or that consume
too much time will be neglected. That's mostly related to providing Win32
builds (if you look at the download page then you will see that they are
missing). Bugs will be fixed as soon as possible, patches are more than
welcome.
From the release notes:
New Features
Added a new API function for bulk operations (ups_db_bulk_operations in
ups/upscaledb_int.h)
Bugfixes
Fixed compiler error related to inline assembly on gcc 4.8.x
Fixed bug when ups_cursor_overwrite would overwrite a transactional record
instead of the (correct) btree record
Fixed several bugs in the duplicate key consolidation
issue #80: fixed streamvbyte compilation for c++11
Performance improvements when appending keys at the end of the
database
The flags UPS_HINT_APPEND and UPS_HINT_PREPEND are now deprecated
Removed the libuv dependency; switched to boost::asio instead
Performance improvements when using many duplicate keys (with a
duplicate table spanning multiple pages)
Committed transactions are now batched before they are flushed to
disk
The integer compression codecs UPS_COMPRESSOR_UINT32_GROUPVARINT and
UPS_COMPRESSOR_UINT32_STREAMVBYTE are now deprecated
The integer compression codec UPS_COMPRESSOR_UINT32_MASKEDVBYTE is now a
synonym for UPS_COMPRESSOR_UINT32_VARBYTE, but uses the MaskedVbyte
library under the hood.