Release of upscaledb 2.2.1 by Christoph Rupp

Posted on Jul 02, 19:33:12 CET 2017 - SHARE:

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)


  • 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
  • issue #79: fixed crc32 failure when reusing deleted blobs spanning multiple pages
  • Fixed a bug when recovering duplicates that were inserted with one of the UPS_DUPLICATE_INSERT_* flags
  • Minor improvements for the journalling performance
  • Fixed compilation issues w/ gcc 6.2.1 (Thanks, Roel Brook)

Other Changes

  • License is now Apache License 2.0
  • 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.
  • Added Mingw compiler support (thanks, topilski)

All files are available on the download page.

Latest Posts

Jul 02, 19:33:12 CET 2017
Release of upscaledb 2.2.1

Sep 25, 21:23:03 CET 2016
First release of upscaledb-mysql 0.0.1

May 20, 18:55:21 CET 2016
32bit integer compression algorithms - part 3

Apr 11, 19:12:27 CET 2016
32bit integer compression algorithms - part 2

Mar 22, 18:38:21 CET 2016
Fast range queries in upscaledb

Apr 03, 22:26:51 CET 2016
Release of upscaledb 2.2.0

Latest Comments