Morning Reading: Database Players to Watch
Catching up on our reading today, we saw a blog post from Chris Stevens, the multi-faceted VP of Engineering at Traxo, technology consultant, and Full Stack developer. In his post, he notes some of the impressive new database technologies he’s seeing lately in tech blogs and on the conference circuit.
Chris says that when it makes sense he advises his clients to look at non-relational datatstores, but for a number of reasons he works with MySQL wherever possible. Many of his clients looking to run globally distributed applications often need to distribute the database across more than one data center (geo-distribution) for fault tolerance and localized performance.
“Globally distributed applications often require localized performance,” he said in his post. “We can do some work loading front-end assets from CDN edge nodes near the end user, but in the end, a long-haul WAN connection back to a database half-way around the world probably isn’t going to be sufficient.”
The four companies he lists in his blog include GenieDB, along with MongoDB, Couchbase, and Cassandra. You’ll find the GenieDB part of Chris’ post below and rest of the blog post is here: Database Players to Watch.
A few months ago at Gluecon, I talked with the GenieDB guys and walked through the demo of their MySQL storage engine built specifically to deal with the issues I raised in the opening paragraphs. Specifically, they appear to be solving the master-master and global distribution (multi-region / multi data center) problems that are usually just plain hard to do with MySQL.
At the conference, they demo’d a WordPress site backed by two database instances: one on the west coast, one on the east coast. Using different browser windows, you could write a comment to the west coast site and see it update on the east coast site almost immediately. They then stopped the database server on the east coast while continuing to make changes on the west coast. Their storage engine held those changes until the east coast rejoined and was brought back into sync within a few seconds. No primary key or auto-increment issues to worry about. No app changes required. Toss in some global latency-based DNS routing (i.e. Route53, Dyn, etc) and you could have a global presence with regionalized performance.
Genie is now marketing, almost exclusively it seems, a globally distributed MySQL as a Service. This is also interesting. They would like to de-throne the cloud standard at this point for MySQL: Multi-AZ RDS on Amazon. In theory, the GenieDB DbaaS product would have the advantage because the RDS solution is not master-master and is not multi-region.
Thanks, Chris! While there’s no such thing as 100% data uptime, that doesn’t mean losing data, latency, or slow response times ever need to factor into the equation.