This document discusses sharding architectures for scaling databases and applications. Sharding involves splitting data across multiple databases to improve performance and allow parallelization. The key aspects covered include:
1. The problem sharding aims to address is scalability for applications with high read/write traffic and large amounts of data.
2. Sharding is described and distinguished from replication/backup/clustering approaches.
3. Implementation involves splitting tables or data by identifier and distributing them across database shards using a technique like modulo.
4. Optimization strategies are discussed like caching, connection pooling, and using aggregation daemons to coordinate shards.
5. Challenges with joins, relations, and migrating
2. Who the f*** is talking?
David Soria Parra <dsp@php.net>
PHP since 7 years
Software Engineer at Sun Microsystems
Sun Microsystems Web Stack
PHP Source Committer
Various other OSS Projects (Mercurial, etc)
8. Master/Master Master/Slave
Master / Master
unstable / no official support
replication not distribution
Master / Slave
no write optimization
replication not distribution