Share Nothing. Shard Everything.
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.
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 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
- Are you depending on standard database replication for a failover scenario?
- Do you know how much “replication lag” you will incur with a server failure?
- Can you afford lost transactions?
- How many minutes or hours of downtime can you afford?
- Are your slave databases out of synch?
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...
Using dbShards/Scale, database users can determine:
- If Database Sharding is a valid approach for specific applications;
- Determine the optimum Database Sharding strategy;
- Reliably predict the performance gains that can be achieved with Database Sharding.
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...
- Is your database growing?
- Are routine maintenance tasks consuming too much time?
- Do you want to reorganize your database, but you can not afford to take it offline?
- Do you have database corruption but need to keep your operation running?
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 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...