Google vient de mettre à disposition en version beta sur Google Cloud Platform sa nouvelle base de données Cloud Spanner.
La première particularité de Cloud Spanner est qu’il s’agit d’une base de données relationnelle à la fois cohérente et scalable horizontalement (capable de répartir/répliquer les données sur un cluster). Cloud Spanner rentre ainsi dans la catégorie des bases de données NewSQL, au même titre que VoltDB ou CockroachDB.
La deuxième particularité de Cloud Spanner est qu’elle semble casser l’effet du CAP Theorem.
https://twitter.com/googlecloud/status/831549273544208384
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
Pour rappel, CAP signifie :
- C : Consistency, le système a toujours une unique valeur mise à jour dans les données partagées,
- A : Availability, disponibilité à 100 % pour la lecture et la mise à jour,
- P : Partitioning, le système est tolérant au partitionnement réseau (et donc tolérant à la panne).
Le CAP Theorem annonce que toute base de données ne peut que choisir deux de ces propriétés. Les bases SQL sont généralement CA, les bases NoSQL sont généralement AP ou CP.
Il se trouve que Cloud Spanner est techniquement une base de données de type CP, assuré par un two-phase commit (2PC). Mais elle minimise l’effet du CAP Theorem, sans le casser pour autant. Cloud Spanner annonce en effet une disponibilité à 99,999 % (5 9s availability). Eric Brewer, le créateur du CAP Theorem et VP des infrastructures chez Google Cloud, l’explique plus en détail dans son article : Inside Cloud Spanner and the CAP Theorem. La minimisation du CAP Theorem est principalement possible parce que Google maîtrise complètement son infrastructure. Ceci inclut TrueTime : un système proposant des horloges globalement synchronisées et gérant l’incertitude.
Cloud Spanner permet donc d’assurer un stockage cohérent, sécurisé, avec une forte disponibilité dans une base de données SQL hébergée par Google.