Share Nothing. Shard Everything.

dbShards Overview

dbShards is the industry’s first software product that allows database sharding to be applied to existing applications and databases with little or no modification to existing code. Database sharding is a simple concept - instead of storing application data in a single database on a single server with shared CPU, memory and disk, the database is divided into a number of smaller "shards", each of which can be hosted on independent servers, with dedicated CPU, memory and disk, therefore greatly reducing resource contention. Because each shard is small, the database server can do a much better job of storing indexes and query caches in memory, resulting in significantly improved performance. Just as databases slow down exponentially as they grow beyond the limits of a single server, sharding a database can result in better-than-linear performance gains.

Database Sharding

The Sharding Process

The first step to sharding is to decide on a sharding strategy for your database. dbShards supports a wide range of sharding strategies and algorithms, as outlined in our database sharding whitepaper.

Once a sharding strategy has been configured, dbShards tools automate the initial sharding of a single database into a number of smaller databases (shards) that can be hosted on separate physical servers in a true shared-nothing environment.

Converting an existing application to work with the sharded database is simply a matter of replacing the database driver with the dbShards database driver as well as installing and configuring dbShards replication and query agents on each shard server. dbShards currently supports Java, PHP and Ruby clients.

dbShards Editions

dbShards is available in the following product editions:

dbShards Features & Benefits

dbShards consists of separate modules and services that can be used independently or as an integrated suite:

dbShards Reliable Replication

dbShards Reliable Replication provides high-performance, guaranteed database replication that includes automated failover. In the event of a failure, your database client applications are automatically switched to a replicated database, with sub-second response and continuous operation. Read More...

dbShards/Scale

Using dbShards/Scale, database users can determine:

In most cases, dbShards/Scale can be implemented without application code changes. The sharded database application can run transparently across a number of commodity servers and disks, in a highly reliable and extremely affordable configuration. Read More...

dbShards/Optimize

The unique dbShards/Optimize service can improve performance several fold, while reducing the size of your databases by reclaiming unused space. If you are running out of capacity, this service can recapture capacity on your current servers, adding years of useful life to your systems. In most cases, expensive hardware upgrades can be avoided or put off for months or even years. Read More...

dbShards/Client

dbShards/Client is a replacement database driver (available for Java, PHP, Ruby, C, C++) that resides between an application and a standard database driver, such as the MySQL driver, and automatically routes transactions to one or more shards based on a sharding strategy. This approach to sharding allows existing applications to benefit from database sharding with minimal code changes. dbShards/Client fully integrates with the other dbShards components such as dbShards/Replicate and dbShards/Scale, including full reliability and automated instantaneous failover – all part of the complete dbShards solution. Read More...