Cary Breese, CEO, and Sumeet Sheokand, CTO, of GenieDB came by to introduce me to their company and their Database as a Service offering. Their demo of a distributed database running in three different countries was thought provoking.
Who is GenieDB?
Founded in 2011, GenieDB has addressed itself to providing a reliable, easy to use and deploy database service to support organizations' cloud computing projects. The company hoped, in its words, to solve the problem of "how to easily distribute a standard SQL application across large geographic distances, to achieve higher levels of application resiliency and performance than previously possible, and to do so in a way that would be extremely easy to implement and manage."
After seeing their quick demonstration, it appears that they've developed technology that offers an answer.
Addressing the distributed world
Breese and Shoekand spent some time discussing the challenges of distributed databases. Distributed databases have to address the fact that the network is a key inhibitor as well as a facilitator.
Database-based applications need quick access to data and the ability to quickly update data items. Any perceived performance problems in those areas could result in the failure of those applications. Customers just won't use an application that performs poorly.
GenieDB developed replication technology that hides the latency and bandwidth limitations of networks while still offering IT and database administrators an easy way to install and use the service. I believe that the "secret sauce" is sophisticated compression and network buffering.
GenieDB also enhanced MySQL so that it supports multi-mastering; that is, each instance of the database, regardless of where it resides geographically or in what cloud service provider's data center, should be able to keep going even if other members of the database cluster fail. GenieDB's service offers a clever clustering and replication capability that make it possible for each database instance to think that it has access to the data all the time even though some of the data may not be stored locally.
Geo-tagging and living with emerging laws and regulations
A big question revolves around what a database service provider can do to address the growing technical problem of restrictive laws and regulations in different countries. What can a user of a Database service that spans the world do? GenieDB points to Geo-tagging as a solution.
Here's what GenieDB has to say about the technology it has developed:
Complying with local customer data protection/privacy laws is among the drivers for the need to sequester certain data in certain locations (Geo-Compliance). This is the “other side of the coin” from Geo-distributed replication. GenieDB’s geographic focus for managing data is uniquely suited to providing a Geo-compliance solution. GenieDB nodes can be tagged with geo-location attributes. Coupled with restriction rules defined during table creation, this allows the GenieDB engine to control which nodes see which data.
Using this feature, scenarios such as tables with customer-identifying data can be restricted to origination locations while other aggregate data is replicated and available at all locations. GenieDB ensures that the nodes that are restricted from seeing certain data never even know that such data exists. All queries for manipulating the restricted data would need to be run from the restricted nodes.
It was impressive to see how easy it was to select a cloud service provider's network, datacenters within that network, and then start up a database instance. GenieDB set up three instances on Google Engine, each in a different country. In moments, MySQL instances were up and running. Data was entered in one country and could be shortly viewed from the database instance running in another country. A database instance could be killed and the other instances continued working. It looked easy enough to use that this analyst was convinced that he could use the product.
GenieDB isn't alone, however, in attempting to address this need. I'm aware of other suppliers, such as ClearDB, Cloudant, Continuent, Microsoft, NuoDB, and TransLattice, that are also doing so. GenieDB's offering appears to be inexpensive, easy to use, and quite powerful.
It's worth taking the time to learn more about what GenieDB is doing before making a product selection.