Percolator (transactions)
Le modèle de Google (2010) pour bâtir des transactions ACID distribuées au-dessus d'un magasin clé-valeur (Bigtable), via un commit en deux phases piloté par le client et un oracle d'horodatage central. La base de bases SQL distribuées modernes comme TiDB.
Contexte : Google a conçu Percolator pour mettre à jour l'index de recherche de façon incrémentale, et il lui fallait des transactions au-dessus de Bigtable, qui n'en offrait pas. Fonctionnement : un commit en deux phases piloté par le client, qui stocke les métadonnées de verrou et de validation dans des colonnes supplémentaires de Bigtable ; un « Timestamp Oracle » distribue des horodatages globalement ordonnés pour l'isolation par instantané (snapshot isolation). Il n'existe aucun service coordinateur de transactions central — la logique vit dans le client et dans le magasin de données. L'héritage : le modèle transactionnel de TiDB s'appuie directement sur Percolator, et ses idées ont influencé toute la vague de bases SQL distribuées. À distinguer de Spanner, qui recourt au matériel TrueTime. Un article influent, qui a montré qu'on peut obtenir de l'ACID sur un magasin clé-valeur extensible. Voir aussi la transaction distribuée et Spanner TrueTime.