À ce que j'ai compris, XWiki a aussi une vision qui parle de réplication, avec XWiki Concerto, pour lequel ils viennent d'obtenir une aide de l'ANR (Agence Nationale de la Recherche).
Pour les Fûts, l'idée est de considérer que les données, versionnées, faut-il une nouvelle fois le rappeler, sont des résultats de traitements, et que les traitements sont ce que font les centraux quand ils exécutent les commandes postées par les caches applicatifs.
Le central assure :
- l'absence de conflits entre les traitements (puisque c'est lui qui les ordonnance)
- la cohérence des données
- l'indexation des données
- le versioning des données
- d'un référentiel temporel
- d'un référentiel des versions de données (« révisions »)
Quand deux centraux s'échangent des informations, on ne fait transiter que les commandes (« tout est message », rappelez-vous), pas les données. Ça n'aurait aucun sens de répliquer les données, car on est incapable d'assurer la cohérence d'une donnée isolée.
Les données sont en quelque sorte des validations par les centraux des commandes. Les commandes sont donc estampillées « non validées, locales à tel cache applicatif », ou « validées, provenant de tel central ». Les données sont estampillées « non validées, locales à tel cache applicatif », ou « validées, provenant du central auquel est rattaché le cache applicatif »
Même si elle ne concerne que les commandes, la réplication entre centraux doit s'appuyer sur des identifiants « universels », qui permettront de référencer dans tous les centraux les mêmes objets :
- identifiants d'articles (c'est le champ Message-ID dans NNTP)
- identifiants d'utilisateurs (c'est la base visible de la base du projet !)
- dates
- URLs, e-mails, adresses IP...
- types d'actions élémentaires
- autres identifiants, externes (exemple : ISBN...)
Aucun commentaire:
Enregistrer un commentaire