Jump to content

Distributed SQL

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Reboot (talk | contribs) at 18:56, 26 January 2021 (still working on this. Saving.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

A distributed SQL database is a relational database which replicates data across multiple servers. Distributed SQL databases are strongly consistent and most support consistency across racks, data centers, and wide area networks including cloud availability zones and cloud geographic zones. Distributed SQL databases typically use the Paxos or Raft to achieve consensus across multiple nodes. Sometimes distributed SQL database are referred to as NewSQL but NewSQL is a more inclusive term that includes databases that are not distributed databases.

History

Google's Spanner was the first modern distributed SQL database. Google described the database and its architecture in a 2012 whitepaper called "Spanner: Google's Globally-Distributed Database". The paper described Spanner as having evolved from a Big Table-like key value store into a temporal multi-version database where data is stored in "schematized semi-relational tables."[1]

Spanner uses atomic clocks with the Paxos algorithm to accomplish consensus with regards to state distributed between servers. In 2017 two Google engineers left the company to create Cockroach DB which achieves similar results using the Raft algorithm without atomic clocks or customer hardware.[2] Following this, other entries have emerged in the market such as MariaDB's SkySQL and YugabyteDB.

Spanner is primarily used for transactional and time-series use cases. However, Google furthered this research with a follow on paper about Google F1 which it describes as a Hybrid transactional/analytical processing database built on Spanner.[3] At present most distributed SQL databases are transactional/OLTP style databases as opposed to OLAP or hybrid with the exception of MariaDB's SkySQL.

Architecture

Distributed SQL databases