/How_soon_is_eventual.pdf

  • « Eventual Consistency : How soon is eventual ? An Evaluation of Amazon S3’s Consistency Behavior » de David Bermbach et Stefan Tai

    http://www.aifb.kit.edu/images/1/17/How_soon_is_eventual.pdf

    Dans toute base de données répartie, un problème récurrent est celui de la cohérence (« consistency ») entre les différentes copies. Beaucoup de telles bases fournissent uniquement une cohérence finale (« eventual consistency ») c’est-à-dire que les données finissent par être cohérentes, un certain temps après l’écriture, mais ne le sont pas tout de suite. C’est le cas du DNS ou des SGBD répliqués mais aussi du service de stockage #S3 d’#Amazon.

    Cet article a essayé de quantifier cette cohérence finale : au bout de combien de temps les clients S3 verront-ils tous la même valeur ? Il y a deux façons d’étudier la cohérence, une façon interne (« data-centric », on regarde l’état des différentes copies) qui nécessite d’avoir un accès au système et une façon externe (« client-centric »), qui consiste à mesurer depuis N clients extérieurs (ce qui fait qu’on n’a pas forcément testé toutes les copies). Ne travaillant pas pour Amazon, les chercheurs n’avaient accès qu’à la seconde méthode.

    Les résultats sont rigolos, notamment le fait que, plus d’une fois, ils ont vu les données reculer dans le temps. On écrit A, on attend, on écrit B, certains clients voient A pendant un certain temps (c’est normal) mais on a aussi des clients qui voient B, puis revoient A pendant un moment (avant que tout finisse par être cohérent). Ce phénomène se nomme « monotonic read consistency violation » et semble assez fréquent sur S3.