Cory Isaacson, CEO, of codeFutures, and I spoke about how today's distributed applications often are more highly scalable than the database infrastructure they rely on. His company, codeFutures, would propose turning to a highly scalable database infrastructure rather than relying on older, more centralized database engines. He also points out that the centralized approach to data management might limit cloud computing application performance as well.
codeFutures makes its caseCory would tick off the following points to make his case:
- Organizations are facing extreme budget pressure
- Open source database products such as MySQL, PostgreSQL offer a cost saving alternative, but may not scale or have the reliability
- Commercial database offerings from the major vendors (I guess he means Oracle, IBM, Sybase, etc.) are reliable, expensive and have trouble matching the scaling possible with distributed multi-tier application architectures.
The logic he uses to support his company's solution is pretty simple. Do the following, he would suggest, and
- Small databases are fast
- Large databases are slow
- So, keep databases small
codeFutures, of course, is offering a product, dbShards, that addresses all of these issues.
Snapshot analysisDistributed databases must be starting to became a new industry trend because so many suppliers have some to me presenting how they solve the problems centralized, unified databases present in a highly distributed, multi-tier application environment.
Although codeFutures would present that their product, dbShards, is the only approach that solves the problem, I would have to point out that there are a number of alternatives including Membase, GemFire and the clustered version of MySQL. That being said, they're offering an approach that allows incremental adoption (read evolutionary not revolutionary) and could be a good way for organizations that are facing performance problems that can be attributed to a database bottleneck.
Visit their site, http://www.codefutures.com to read more about what they're doing. It's pretty interesting.
Note: Cory Isaacson, codeFutures' CEO wanted to comment. Here's what he had to say.
Thanks for the post.
There are many approaches to database scalability for sure.
dbShards offers several unique capabilities, especially the ability to evolve your scalability and performance according to the needs of your application. Just install our plug-compatible client driver and lightweight agent, configure and go.
We utilize a technique called Relational Sharding, proven to support the highest possible performance because data is partitioned based on application-specific needs, preserving data relationships in the partitioning scheme itself. Other tools utilize mechanical methods not under developer control, often relying on a "scatter/gather" approach for individual rows, such that relationships and lists must be reconstructed "on the fly." With dbShards, since the data is fully relational and matches the existing application database design, joins, range queries, ordering and aggregation are all supported in a transparent fashion to the application with exceptional performance.
Further, dbShards provides incredibly fast high availability and reliability with our "out of band" reliable replication technology.