Google 把 Cloud Spanner 這個服務拿出來賣了:「Introducing Cloud Spanner: a global database service for mission-critical applications」,以及說明的「Inside Cloud Spanner and the CAP Theorem」。
Cloud Spanner 的規劃上是希望有 RDBMS 的能力 (像是 ACID 特性),又有強大的擴充能力 (scalability) 與可用性 (availability):
Today, we’re excited to announce the public beta for Cloud Spanner, a globally distributed relational database service that lets customers have their cake and eat it too: ACID transactions and SQL semantics, without giving up horizontal scaling and high availability.
在說明裡有提到 Cloud Spanner 是做到 CAP theorem 裡面的 CP:
The purist answer is “no” because partitions can happen and in fact have happened at Google, and during some partitions, Spanner chooses C and forfeits A. It is technically a CP system.
然後把 A 拉高到使用者不會在意 downtime 的程度:
However, no system provides 100% availability, so the pragmatic question is whether or not Spanner delivers availability that is so high that most users don't worry about its outages.
當然,比較讓人爭議的是 Twitter 上 Google Cloud 官方帳號的 tweet,直接講同時解決了 CAP 三個條件:
Cloud Spanner: the first horizontally scalable, globally consistent, relational database service https://t.co/QpXuTk9q6s
C✔️️
A✔️️
P✔️️ pic.twitter.com/UvziIKz1Y3— Google Cloud (@googlecloud) February 14, 2017
價錢不算便宜,不過對於想要找方案的人至少有選擇...