InfiniDB

InfiniDB was recently released as Open Source by Calpont. The science bit says:

InfiniDB Community Edition provides a scale-up analytics database engine for your data warehousing, business intelligence and read-intensive application needs. Enabled via MySQL and purpose-built for an analytical workload with column-oriented technology at its core, the multi-threaded capabilities of InfiniDB Community Edition fully encompass query, transactional support and bulk load operations.

Handily for us, there are RHEL 5 RPMS available to download so we were able to suck them down and install them - for this trial I used version 0.9.5.1. Following the instructions (we believe fully!) yielded a system that wouldn't start (and yes, we had disabled the existing MySQL install to ensure no port conflict!). Wiping everything and reinstalling then presented a working system.

There are some limitations to the data types supported - there is no support for unsigned numbers, and varchars are limited to 255. I expect this is a design decision as in a database structured around using InfiniDB then the strings would be stored in a MyISAM table and referenced.

A nice feature is support for DML operations - so you can do insert, update and delete.

After successfully exporting a table from MySQL and importing it into InfiniDB using their colxml and cpimport tools we had a table of data and were able to run some simple queries, select count(*) for example. However, after a teabreak the queries were no longer running and giving an error:

ERROR 122 (HY000): There was an internal error encountered in the Calpont Engine while processing this query. The query was cancelled. You may resubmit it if you like. The error is lost Connection to ExeMgr. If the problem continues, please contact your system administrator.

Not having the time or patience to dig deeper, I blitzed it once more and did another clean install. I then went to create the same table as earlier and boom! I saw the load climb up and then typically my wireless dropped out, when it came back I was unable to connect back in and our monitors were showing load sitting at 10. We left it 10 minutes, then rebooted. After a reboot, creating the same table took 20 seconds.

We then successfully imported 4 tables of data and proceeded to start our list of queries to test - the first one caused load to rise to 10 again and a reboot was required. This one has been raised as a bug!.

I decided to leave it there for the day. The InfiniDB system looks promising on paper, and has been written by people infinitely more intelligent than I am, but right now it's not stable enough for me to want to go any further. It is only in Alpha right now so bugs are to be expected - i'll definately be revisiting it when it's a bit more mature or when i've got time to go through and explore the bugs properly so I can contribute back.

Next up is Infobright and MonetDB - i'm tackling Infobright today so will see how things go!