Calvin (base de données déterministe)
Une architecture (article de recherche de 2012) pour bases de données distribuées qui commence par décider d'un ordre global de toutes les transactions, puis les exécute de façon déterministe sur tous les réplicas. Comme chacun suit le même ordre prédéterminé, aucun commit en deux phases entre les nœuds n'est nécessaire.
L'idée : inverser l'ordre habituel. Au lieu d'exécuter les transactions puis de coordonner leur résultat, tous les nœuds s'accordent D'ABORD sur une séquence (via un « séquenceur » et un consensus), puis exécutent les transactions exactement dans cet ordre. L'exécution étant déterministe, tous les réplicas arrivent au même résultat sans communiquer pendant l'exécution elle-même → pas de coordination de commit distribué, pas d'interblocages distribués. Le prix : l'ensemble de lecture/écriture d'une transaction doit être connu à l'avance (difficile pour les transactions interactives), et tout passe en série par le séquenceur. FaunaDB s'est construit sur les idées de Calvin. Un paradigme alternatif au style Spanner/Percolator, qui montre que le déterminisme peut remplacer une coordination coûteuse. À rapprocher de Percolator et de la base de données déterministe.