Calpont has gone through a lot of strategy iterations since its founding. The super-short version is that Calpont originally planned an appliance built around a SQL chip, much like Kickfire. But after various changes in management and venture backing, Calpont turned itself into a software-only analytic DBMS vendor relying on a MySQL front end. Calpont is now at the stage of announcing an Early Adopter program at the MySQL conference on Wednesday, although details of Calpont’s product release timing, pricing, feature set, etc. are all To Be Determined.
Minor highlights of the Calpont technical story include:
- Calpont plans to offer a MySQL storage engine for analytic database processing. Thus, Calpont will compete with Infobright, Kickfire, and perhaps Tokutek.
- Like Infobright and Kickfire, Calpont is building a columnar engine.
- Calpont plans for there to be both shared-everything and shared-nothing versions of its product. The shared-everything version may be ready sooner. At least some form of scale-out should be available from the get-go.
- Despite being columnar, Calpont hasn’t implemented compression yet. Naturally, fixing that is a high priority.
- Like Infobright, Calpont is starting out by only processing some SQL statements itself, leaving the rest to the native MySQL engine. Also like Infobright, Calpont plans before long to process most or all SQL itself.
- Calpont’s software takes execution plans generated by MySQL and executes them — well, differently than MySQL would have. This required “small” modifications to MySQL’s open source code. Development chief John Weber conjectures that Kickfire and Infobright made similar modifications for similar reasons.
- I forgot to ask if/when Calpont will have ACID compliance.
- Calpont plans to support both 1-gig and 10-gig Ethernet for its networking.
- Calpont is working on a UDF (User-Defined Function) framework, with the first language being C++.
So far, that’s all pretty standard stuff. What’s most unique about Calpont’s design is its multi-tier architecture. Like Oracle Exadata, Calpont has both a server tier (the Director and User modules) and a storage tier (the Performance modules — yes, I think those names are all atrocious). Compared to Exadata, however, Calpont does relatively more of the total work on the storage tier and less on the server level. Specifically:
- The Director modules are MySQL instances. The User and Performance modules are Calpont code.
- The User modules receive intermediate result sets from the Performance modules and redistribute them as needed. User modules also feed final results up to the Director module to be sent back to the application that requested them.
- Performance modules read and write data, perform joins and aggregations, and so on.
- Modules can be distributed among physical nodes as you wish. You don’t actually have to have dedicated nodes for each kind of module.
- Calpont’s scalability has been tested up to 8 nodes running Performance modules (64 cores), and the results were highly linear.