I found some typical structures of distributed database systems and I want to write short reviews in the following posts.
Database systems on a single machine suffers from low availability (single point failure), low concurrency (one query per core), low reliability (no replication) and low scalability (computing resources limitation). Therefore large systems try to solve these problems in a distributed way.
Some easy practices are Master-Slaves model. One master serves as a writing server. It may have another standby second master to improve availability in case the primary master fails. Then many slaves are used to responding to reading requests. New data written to the master should be propagated to slaves. So synchronization and keeping consistency takes time.
Oracle RAC is an advanced solution which is fully distributed. CPUs are distributed in each machine. Memory are managed like a pool with Cache Fusion technology which connects memory directly using high bandwidth interconnection network. Disks are treated like a pool too, using storage area network (SAN).