Shard (database architecture)

shardingshardedshardshardsdatabase shardingdata shardinghorizontal partitioningsingle shard server
A database shard is a horizontal partition of data in a database or search engine.wikipedia
75 Related Articles

Shared-nothing architecture

shared-nothingshared nothing architectureshared nothing
This is also why sharding is related to a shared nothing architecture—once sharded, each shard can live in a totally separate logical schema instance / physical database server / data center / continent.
Google calls this sharding.

MySQL Cluster

ClusterNDB
MySQL Cluster: Auto-Sharding: Database is automatically and transparently partitioned across low-cost commodity nodes, allowing scale-out of read and write queries, without requiring changes to the application.
MySQL Cluster uses automatic sharding (partitioning) to scale out read and write operations on commodity hardware and can be accessed via SQL and Non-SQL (NoSQL) APIs

MapReduce

map reducemap-reducemap/reduce
eXtreme Scale: a cross-process in-memory key/value datastore (a variety of NoSQL datastore). It uses sharding to achieve scalability across processes for both data and MapReduce-style parallel processing.
In many situations, the input data might already be distributed ("sharded") among many different servers, in which case step 1 could sometimes be greatly simplified by assigning Map servers that would process the locally present input data.

MongoDB

MongoDB: allows sharding from version 1.6
MongoDB scales horizontally using sharding.

Elasticsearch

logstashElasticElastic Search
Elasticsearch: enterprise search server provides sharding capabilities.
"Elasticsearch is distributed, which means that indices can be divided into shards and each shard can have zero or more replicas. Each node hosts one or more shards, and acts as a coordinator to delegate operations to the correct shard(s). Rebalancing and routing are done automatically".

MonetDB

MonetDB/GIS
MonetDB: the open-source column-store MonetDB allows read-only sharding as its July 2015 release.
With the July 2015 release, MonetDB gained support for read-only data sharding and persistent indices.

IBM Informix

InformixInformix Dynamic ServerInformix Corporation
IBM Informix: IBM has allowed sharding in Informix since version 12.1 xC1 as part of the MACH11 technology. Informix 12.10 xC2 added full compatibility with MongoDB drivers, allowing the mix of regular relational tables with NoSQL collections, while still allowing sharding, failover and ACID properties.
The major enhancements made over previous releases were adding built-in index compression, integration of JSON collections with support for MongoDB JSON drivers into the server, and an enhancement permitting database objects to be partitioned across multiple servers in a cluster or grid (aka sharding).

Hibernate (framework)

HibernateHibernate ORMJBoss Hibernate
Hibernate Shards: provides for shards, although there has been little activity since 2007.
Hibernate Shards – horizontal partitioning for multiple relational databases

Oracle NoSQL Database

Oracle NoSQL
Oracle NoSQL Database: has automatic sharding and elastic, online expansion of the cluster (adding more shards).
Oracle NoSQL Database is a client-server, sharded, shared-nothing system.

OrientDB

OrientDB: allows sharding from version 1.7
Features such as horizontal scaling, fault tolerance, clustering, sharding, and replication aren’t disabled in the OrientDB Community Edition.

Block Range Index

Block Range Index
BRIN indexes provide similar benefits to horizontal partitioning or sharding but without needing to explicitly declare partitions.

MySQL

M'''ySQLMySQL 4.1MySQL 4.x
MySQL Fabric (part of MySQL utilities) includes sharding capability.
Further improvements in performance can be achieved by caching the results from database queries in memory using memcached, or breaking down a database into smaller chunks called shards which can be spread across a number of distributed server clusters.

Spanner (database)

SpannerCloud Spanner
Spanner: Google's global-scale distributed database, shards data across multiple Paxos state machines to scale to "millions of machines across hundreds of datacenters and trillions of database rows".
Spanner uses the Paxos algorithm as part of its operation to shard data across hundreds of datacenters.

Partition (database)

partitioninghorizontal partitioningpartitions
A database shard is a horizontal partition of data in a database or search engine. Horizontal partitioning is a database design principle whereby rows of a database table are held separately, rather than being split into columns (which is what normalization and vertical partitioning do, to differing extents). Horizontal partitioning splits one or more tables by row, usually within a single instance of a schema and a database server.

Database

database management systemdatabasesdatabase systems
A database shard is a horizontal partition of data in a database or search engine.

Web search engine

search enginesearch enginessearch
A database shard is a horizontal partition of data in a database or search engine.

Database server

SQL Serverdatabasedatabase servers
Each of multiple shards is held on a separate database server instance, to spread load.

Row (database)

rowsrowrecord
Horizontal partitioning is a database design principle whereby rows of a database table are held separately, rather than being split into columns (which is what normalization and vertical partitioning do, to differing extents).

Column (database)

columnscolumnAttribute
Horizontal partitioning is a database design principle whereby rows of a database table are held separately, rather than being split into columns (which is what normalization and vertical partitioning do, to differing extents).

Database normalization

normalizationnormalizednormal form
Horizontal partitioning is a database design principle whereby rows of a database table are held separately, rather than being split into columns (which is what normalization and vertical partitioning do, to differing extents).

Database index

indexindexesindexing
This reduces index size, which generally improves search performance.

Consistent hashing

Consistent hashing is a technique used in sharding to spread large loads across multiple smaller services and servers.

Distributed computing

distributeddistributed systemsdistributed system
Where distributed computing is used to separate load between multiple servers (either for performance or reliability reasons), a shard approach may also be useful.

Database schema

schemarelational schemaschemas
Horizontal partitioning splits one or more tables by row, usually within a single instance of a schema and a database server.