Today we are excited to announce our acquisition of Akiban Technologies. This acquisition means that we will be able to provide true SQL capabilities on top of FoundationDB much earlier than we anticipated. When we were introduced to the Akiban team and technology it was easy to see the potential of a partnership—FoundationDB and Akiban have been pursuing different parts of the same vision for the past four years. It didn’t take long to realize that the best outcome would be if we could all work as a single team. I’m glad to say that in a very short time we’ve made that happen and our new expanded team is united on an amazing set of future products.
Akiban builds a SQL database with a novel object-structured design. Using the SQL database interface to abstract a novel data organization has been successful in the past. See, for example, the rise of column-oriented databases which store compressed and normalized columns instead of rows. By adopting this new underlying structure, a huge range of queries became orders of magnitude more efficient than they were when the data was stored as rows.
Akiban noticed that many SQL databases contain multiple tables that are almost always accessed together. These “table groups” often store the logical equivalent of an object or document. Imagine a User table linked to an Orders table linked to a Line Items table. Many web applications, especially those using an ORM, tend to access all of these tables together. Loading an “order history” page, for example, will need to lookup all of the Line Items for each of the Orders. With a traditional row-oriented SQL database, this join operation will involve many slow random database IOs. Akiban’s technology instead stores the data for this table group together, interleaved in its natural hierarchical order, requiring a simple database scan in lieu of lots of random IO. Joins within table groups become free!
Cool technology, but what does it have to do with FoundationDB—a NoSQL database? Well, we think of FoundationDB as more of a storage substrate than a fully featured database. As explained on our layers page, we rely on higher-level tools to provide FoundationDB with traditional database capabilities such as indexing and query languages. Akiban had the foresight to create a strong abstraction between their own underlying storage substrate and their database’s API and capabilities. Amazingly, Akiban choose the abstraction of an ordered, transactional, key-value store for its storage layer—exactly what FoundationDB provides! (OK, it’s not that amazing, we’re seeing more and more new systems built using this abstraction.) What this means is that Akiban’s technology is a natural fit as a powerful layer on top of the FoundationDB engine, and, like all layers, will inherit the exceptional properties of FoundationDB including scalability, fault tolerance, and true ACID transactions.
It would be an understatement to say that we are excited about the possibilities of bringing together these technologies into a SQL layer for our users!
If you want to be the first to get access to this upcoming SQL layer, please register below.