Il existe de nombreux domaines de recherche à la fois dans la théorie et la pratique des bases de données distribuées.
L'un des principaux défis pratiques est celui de la mise en œuvre de mécanismes de contrôle de concurrence efficaces pour les bases de données distribuées et géorépliquées. Afin d'exécuter efficacement les transactions, ces mécanismes peuvent fournir des garanties plus faibles que la serialisabilité, ce qui nécessite que les transactions semblent être exécutées séquentiellement. Une alternative à la serialisabilité est celle de se contenter de l'isolement de l'instantané [1], mais il a été prouvé que cette échelle est mal adaptée aux systèmes géorépliqués et distribués. Dans l'état actuel de la technique, deux variantes différentes de l'isolement de cliché (SI) ont été définies pour gérer le contrôle de concurrence dans les systèmes géorépliqués: l'isolement de cliché parallèle (PSI) [2] et l'isolement de cliché non monotone (NMSI) [ 3,4]. Quant à ce qui concerne les bases de données distribuées (c'est-à-dire où les données sont partagées entre différents sites),
Ayant des notions différentes des niveaux d'isolement qui offrent des garanties plus faibles que la serialisabilité, une autre question importante est celle d'écrire les programmes de manière à ce que les exécutions semblent toujours être sérialisables. Un critère solide pour l'isolement de l'instantané a été conçu dans [1]. Certaines personnes de mon groupe travaillent actuellement à l'élaboration d'un critère raisonnable pour le PSI.
Une autre question pertinente, tant du point de vue théorique que pratique, est celle du découpage des transactions. Fondamentalement, le découpage est une technique d'analyse statique dans laquelle les transactions à gros grains sont décomposées en transactions plus petites et à grains fins. Pour la serialisabilité, cette question a été abordée dans [6], et la théorie résultante a été appliquée pour donner une implémentation pratique dans [7].
Du point de vue des fondements théoriques des bases de données distribuées, il a été proposé d'utiliser des techniques de la communauté des modèles de mémoire faible [8] pour définir formellement le comportement des transactions. Dans [9], les auteurs donnent une notion formelle du comportement des transactions; la même approche a été utilisée dans [10] pour spécifier le comportement des types de données répliqués.
Récemment, moi et certains de mes collègues (Alexey Gotsman et Hongseok Yang) avons construit, à partir des techniques développées dans [8,9,10], un cadre théorique pour spécifier le comportement observable des niveaux de cohérence pour les bases de données géorépliquées. Nous avons utilisé avec succès le cadre pour donner une axiomatisation du SI, du PSI et du NMSI, dont chacun s'est avéré correct en ce qui concerne une implémentation simple. Nous avons également exploité la théorie résultante pour concevoir un critère de découpage pour PSI. Nous espérons que ces résultats seront publiés dans un avenir prévisible.
N'hésitez pas à m'écrire si vous avez d'autres questions. J'espère que cela t'aides,
Andrea Cerone.
Références:
[1] Fekete et al, Making Serial Snapshot Isolation Serializable (2005)
[2] Sovran et al, Stockage transactionnel pour les systèmes géorépliqués (2011)
[3] Arkedani et al, Isolement de cliché non monotone: cohérence évolutive et forte pour les systèmes transactionnels géorépliqués (2013)
[4] Arkedani et al, Sur l'évolutivité de l'isolement de l'instantané (2013)
[5] Binnig et al, Isolement instantané distribué: les transactions globales paient globalement, les transactions locales paient localement
[6] Shasha et al, Découpage de transactions: algorithmes et études de performances (1995)
[7] Zhang et al, Chaînes de transactions: atteindre la sérialisation avec une faible latence dans les systèmes de stockage géo-distribués (2013)
[8] Alglave, Une hiérarchie formelle de modèles de mémoire faible (2012)
[9] Buckhardt et al, Understanding Eventual Cohérence (2013)
[10] Buckhardt et al, Types de données répliquées: spécification, vérification, optimalité (2014)