A distributed database is a single logical database stored across multiple interconnected computers or nodes located in different physical locations, providing greater scalability and availability. It is ideal for business-critical and geo-distributed applications that support large numbers of users. The instances of a distributed database could be located in different cities, such as New York, Los Angeles, and Berlin, or on separate machines within the same physical location, such as a data center.
Types of Distributed Databases
There are two common types of distributed databases: NoSQL and distributed SQL.
- NoSQL databases prioritize cloud-native scaling and resilience, but at the cost of schema enforcement and data consistency through ACID guarantees. NoSQL database examples include MongoDB, Cassandra, Couchbase, DynamoDB, and Azure CosmoDB.
- Distributed SQL databases offer cloud-native scaling, resilience, and ACID guarantees. They are ideal for organizations with high-volume, mission-critical transactional workloads. Examples of distributed SQL databases include YugabyteDB, CockroachDB, and TiDB. NoSQL databases are suitable for big data workloads, while distributed SQL databases are preferred for transactional workloads and system-of-record stores.
Examples of distributed databases
Types of Distributed Database Deployments
The primary objective of a distributed database is high availability, as it is essential the database and its contents remain accessible at all times. Since the data in a distributed database is replicated across various physical instances, there are two key distributed database deployments:
- Active-active—the database has two (or more) active nodes that shard data and all can process requests (both reads and writes) simultaneously.
- Active-passive—the database has a single active node that processes all reads and writes along with a “passive” node (also called a “spare”) that is ready to take over processing requests in the event of the active node failing due to a disaster.
Additional Distributed Database Topics to Explore: