Go Shard Thyself, CodeFutures Says
CodeFutures has received a patent for its ability to apply the types of database sharding techniques that have become popular with the advent of NoSQL databases to standard workloads running on traditional SQL databases.
CodeFutures was awarded U.S. Patent number 8,626,709 for its idea of Scalable Relational Database Replication, which forms the basis for the technology behind its distributed data sharding offering, called dbShards.
dbShards effectively breaks a standard MySQL (or PostgreSQL) database down into separate pieces that run on separate machines, in a master-slave setup, as part of a shared-nothing architecture. This approach optimizes the balance between memory, CPU, and disk, thereby boosting scalability and read/write throughput of data-intensive applications.
Sharding also boosts applications availability, as those familiar with NoSQL databases will attest to. But dbShards does not require a wholesale reboot of the data access layer, and instead can retain the SQL while delivering better scalability and resilience as an add-on, the company says.
In the ongoing war between SQL and NoSQL proponents, one of the central battles is over the notion that developers must throw out all the SQL they’ve ever learned and start over with NoSQL constructs if they are to get the database sharding benefits that NoSQL databases offer. The pushback from developers has given rise to the NewSQL movement, which retains the SQL-access element while adding horizontal scalability to traditional relational databases.
“Our mission is to help database administrators and the organizations they work for gain the utmost value from the massive volume of data that flows into – yet is hard to extract from – today’s database platforms,” CodeFutures CEO Cory Isaacson says in a statement. “This patent helps reduce data availability downtime, a problem that can be very problematic for many different types of organizations.”
CodeFutures claims dbShards is the first product that can apply database sharding to an existing SQL-based application and database without requiring modifications to the application code. The product consists of dbs/Client, which provide database drivers for Java, PHP, Python, and Ruby, as well as replication agents and query agents, which are needed to support parallel query functionality.
The product enables users to shard their database in a number of ways, including by transaction type, by data range, or other ways, such as by customer ID. dbShards is recommended by the vendor for use in large OLTP and Web-based applications that have high I/O demands or a large number of concurrent users. It can also be used for analytic applications.