synchronisation de données divergentes -...
TRANSCRIPT
![Page 1: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/1.jpg)
Synchronisation de données divergentes
Pascal Molli ,Maître de Conférence Université Henri Poincaré, Nancy 1
Projet Inria ECOO
![Page 2: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/2.jpg)
Contexte
Travail mobile Avant la déconnection -> réplication A la reconnection -> synchronisation
Travail de groupe Avant l’insularisation -> réplication Avant la publication -> réconciliation
![Page 3: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/3.jpg)
Synchroniser ?? Copies identiques après synchro… Mais quel état de convergence ?
Selon quel critère critère de correction (~sérialisabilité)
Quelle granularité de réconciliation ? Pour quels types d’objets ?
Entier, texte, XML, tables… même synchroniseur ? Qui résout les conflits?
Système ? Utilisateur ? administrateur ?
Quand résoudre les conflits ? Pendant la synchro ou après ??
![Page 4: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/4.jpg)
Objectif Créer un synchroniseur
Sûr critère de correction
Générique Même algo qqsoit le type des données
partagées
À fine granularité Créer des réseaux de synchronisation
Modélisation de procédés « dataflow »
![Page 5: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/5.jpg)
État de l’art Synchroniseurs de fichiers
Unisson, IntelliSync, Microsoft Synchronizer Synchroniseurs de données
ActiveSync, Hotsync, I-Sync Système distribués
CODA, Bayou, Ficus, IceCube Basé de données répliquées
Réplication asymétrique
![Page 6: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/6.jpg)
Synchroniseur de fichiers
Unisson, rsync, Intellisync, Windows Synchronizer
Propager les mises-à-jour non-conflictuelles
Déléguer aux utilisateurs la résolution des conflits
![Page 7: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/7.jpg)
Exemples de conflits User1
MkFile (/a)
User1 Edit(/a/b) Synchronize(/)
User2 Mkdir (/a) Synchronize(/)
User2 Rm(/a)
![Page 8: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/8.jpg)
![Page 9: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/9.jpg)
Synchroniseurs de fichiers
PB: Granularité de conflits Ajouter un paragraphe / Corriger les fôtes
d’ortografe…
Convergence grossière vers un état sans conflit
![Page 10: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/10.jpg)
Synchroniseurs de données
ActiveSync (microsoft), HotSync (Palm), I-Sync (apple)…
~synchroniseurs de fichiers + connaissance de certains types de
fichiers…
![Page 11: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/11.jpg)
![Page 12: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/12.jpg)
Synchroniseurs de données
PB: généricité. Certains conflits sont résolus selon le
type de fichier… Convergence vers un état pouvant
contenir des conflits
![Page 13: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/13.jpg)
CM Tools CVS, ClearClase, SourceSafe… Assure la réconciliation de certains types de
conflits: Update-Update sur fichiers textes ou XML
(algo diff3, XML Merge)
Mais pas tous… Rmdir/update file (mkdir/mkfile…)
Convergence non garantie dans tous les cas…
![Page 14: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/14.jpg)
Copy-Modify-Merge A
Checkout A Checkout A
checkin
Update !
checkin Update
![Page 15: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/15.jpg)
![Page 16: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/16.jpg)
![Page 17: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/17.jpg)
![Page 18: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/18.jpg)
QQ idées tout de même
PB: Certain conflits résolus selon le principe de
compensation (diff3) Convergence vers un état avec conflits D’autres sont délégués à l’utilisateur…
Pas de convergence dans tous les cas…
![Page 19: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/19.jpg)
Systèmes distribués Coda,Bayou,Ficus, Inter-mezzo Réplication et cohérence faible
Algorithmes épidémiques
Propager les mises-à-jour non conflictuelles Exécuter des procédures de fusions sur les
MAJ Conflictuelles Si elles échouent -> résolution de conflits
déléguées aux utilisateurs…
![Page 20: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/20.jpg)
Bayou_Write( update = {insert, Meetings, 12/18/95, 1:30pm, 60min, ``Budget Meeting''}, dependency_check = { query = ``SELECT key FROM Meetings WHERE day = 12/18/95 AND start < 2:30pm AND end > 1:30pm'', expected_result = EMPTY}, mergeproc = { alternates = {{12/18/95, 3:00pm}, {12/19/95, 9:30am}}; newupdate = {}; FOREACH a IN alternates { # check if there would be a conflict IF (NOT EMPTY ( SELECT key FROM Meetings WHERE day = a.date AND start < a.time + 60min AND end > a.time)) CONTINUE; # no conflict, can schedule meeting at that time newupdate = {insert, Meetings, a.date, a.time, 60min, ``Budget Meeting''}; BREAK; } IF (newupdate = {}) # no alternate is acceptable newupdate = {insert, ErrorLog, 12/18/95, 1:30pm, 60min, ``Budget Meeting''}; RETURN newupdate;} )
![Page 21: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/21.jpg)
Systèmes Distribués
PB: les conflits non résolus sont délégués à un administrateur
Les données en attendant sont soit gelées soit elles n’ont pas convergées.
![Page 22: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/22.jpg)
Système Distribué: IceCube
Basé opération Input: 2 journaux d’opérations
concurrentes Tests de toutes les histoires possibles Élimination des histoires ne respectant pas
certaines contraintes Choix parmi les histoires restantes…
Minimise les conflits
![Page 23: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/23.jpg)
Approche IceCube
![Page 24: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/24.jpg)
IceCube
PB: Explosion combinatoire Opérations non modifiées ->
Conflits non résolus délégués aux utilisateurs…
![Page 25: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/25.jpg)
BD Répliquées
Oracle, Sybase (Advanced replication) Plusieurs master-sites
Mêmes tuples Modification en parallèle
Un conflit !
![Page 26: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/26.jpg)
BD Répliquées
Dans Oracle: Détection automatique
Conflit de mise à jour, Conflit d’unicité Conflit de destruction
Résolution basée sur des procédures de fusions
![Page 27: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/27.jpg)
BD répliquées
Procédures de fusion pour conflit de mise à jour Basé sur « latest timestamp »
Convergence garanties (comme dans Lotus)
Ou sur « overwrite » Convergence non garantie
![Page 28: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/28.jpg)
Bd répliquées (fusion update) Procédure de fusion
Additive Average Discard Earliest TimeStamp Max Min Priority Group Site Priority
Convergence Yes NO NO NO YES* YES* YES** NO
*: values always increase
**: ordered update value
![Page 29: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/29.jpg)
BD répliquées
Fusion pour les conflits d’unicité Append the global site name of the
originating site to the column value from the originating site.
Append a generated sequence number to the column value from the originating site.
Discard the row value from the originating site.
![Page 30: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/30.jpg)
BD répliquées
Fusion pour les conflits de destruction Pas de procédure !
Finalement: Pas de convergence garantie dans le cas
général !!
![Page 31: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/31.jpg)
Synthèse Propagation des mises à jour non
conflictuelles Tentative de résolution automatique pour
certains conflits Si échec -> Résolution
par les utilisateurs (CM) par un administrateur (le reste) Soit pendant la synchro (interactif), Soit après (compensation)
![Page 32: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/32.jpg)
Problèmes…
Pas de critère de correction ! ~sérialisabilité
La correction d’une synchronisation n’est tout simplement pas définie !!
Pas de cadre formel !
![Page 33: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/33.jpg)
Approche
Transformées opérationnelles Un cadre théorique pour raisonner… Développé à l’origine pour le real-time
groupware (CSCW) Éditeurs collaboratifs synchrone (texte,
vectoriel) Premier papier en 89 (Ellis&Gibbs)
![Page 34: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/34.jpg)
Transformées opérationnelles N sites Chaque site a 1 copie des objets
partagés Une opération :
1) Générée et exécutée sur 1 site 2) Envoyée aux autres sites 3) Reçues par les autres sites 4) Ré-exécutée par les autres sites.
![Page 35: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/35.jpg)
efect
effect
efect
efects
Ins(5,s) Ins(2,f)
effecst effects
Ins(5,s) Ins(2,f)
Op1 Op2
![Page 36: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/36.jpg)
efect
effect
efect
efects
Ins(5,s) Ins(2,f)
effects effects
Ins(6,s) Ins(2,f)
T(Ins(5,s),Ins(2,f))=
Ins(6,s)
Op1 Op2
Op’2
Site 1 : user 1 Site 2 : user 2
![Page 37: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/37.jpg)
Structure de modèle Algorithmes (dOpt, GOTO, aDopted,
SOCT1,2,3,4,5) Responsable de la propagation des opérations Appelle les fonctions de transformation quand
nécessaire Indépendant des types objets partagés
Fonctions de transformations: Spécifique au type des objets partagés 2 opération concurrentes op1,op2 définies sur un
même état ‘s’ Retourne op’1 equivalent à op1 sur ‘s o op2’
![Page 38: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/38.jpg)
Critère de cohérence des copies Causalité :
Si op2 est exécutée après op1 sur 1 site, alors op2 est exécutée après op1 sur tous les sites.
Convergence Au repos, toutes les copies sont identiques
Intention Quand une opération est transformée, la
transformée à un effet équivalent à l’original
![Page 39: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/39.jpg)
Correction des fonctions de transformations
Les algorithmes garantissent Causalité, Intention, Convergence ssi…
Les fonctions de transformation garantissent:
C1 : op1.op2op1 ≡ op2.op1
op2
C2 : op3op1:op2 = op3
op2:op1
![Page 40: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/40.jpg)
Problème
Preuve des conditions C1 et C2 sur les fonctions de transformation
123 cas à vérifier pour ins(p,c), del(p) Et à re-vérifier à chaque changement ! Utilisation d’un prouveur de thèorème
spécifique (SPIKE + VOTE), Coopération projet CASSIS
![Page 41: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/41.jpg)
ELLIS (89)
Pr= priorité basé
sur l’identifieur du site émetteur
![Page 42: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/42.jpg)
Ellis !!
Site 1 : user 1
abc
axbc
abc
Site 2 : user 2
ac
Del(2) Ins(2,x)
axc xac
Del(3) Ins(1,x)
Op1 Op2
Op’1 Op’2
![Page 43: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/43.jpg)
Ressel 96 U1: priorité du site du user 1
Les priorités sont totalement ordonnées
![Page 44: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/44.jpg)
RESSEL !!
user 1 user 2
abc
ac
abc user 3
abyc
Ins(3,y) Del(2)
ayc ayc
Ins(2,y) Del(2)
ayxc axyc
Ins(3,x) Ins(2,x)
abc
axbc
Ins(2,x) Op1 Op2 Op3
Op’3 Op’2
Op’1 Op’’1
![Page 45: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/45.jpg)
SUN (98)
![Page 46: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/46.jpg)
SUN !!
Site 1 : user 1 Site 2 : user 2
abc
ac
abc Site 3 : user 3
abyc
Ins(3,y) Del(2)
ayc ayc
Ins(2,y) Del(2)
ayyc ayyc
Ins(3,y) Ins(2,y)
abc
aybc
Ins(2,y) Op1 Op2 Op3
Op’3 Op’2
Op’1 Op’’1
![Page 47: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/47.jpg)
Suleiman97 (Ok mais surpécifié)
![Page 48: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/48.jpg)
Nous (Ecsw03)
Ip= point d’insertion
![Page 49: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/49.jpg)
Synchronisation… Appliquer le modèle des transformées
au pb de synchronisation. Gérer tous les conflits avec le principe
de compensation (~à la diff3). Exemple:
Synchroniser un système de fichiers + le contenu des fichiers (pour les types
gérés).
![Page 50: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/50.jpg)
Objectif du synchroniseur
Réconcilier en respectant Causalité, convergence, intention Compensation
Granularité : opération Pour les types d’objets définis
![Page 51: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/51.jpg)
Synchro algorithme (basé SOCT4)
![Page 52: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/52.jpg)
Synchro exemple
Après S3, sur site1 Après S3, sur site2
![Page 53: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/53.jpg)
Système de fichier
![Page 54: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/54.jpg)
T(mkfile/mkfile)
s=ensemble des noms des nœuds frères + soi-même
![Page 55: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/55.jpg)
Exemple : état initial
![Page 56: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/56.jpg)
Exemple : scénario
![Page 57: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/57.jpg)
Exemple : opérations exécutées
![Page 58: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/58.jpg)
Exemple: état final
![Page 59: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/59.jpg)
Editeurs SAMS
Synchrone Asynchrone Multi-synchrone (synchroniseur)
Synchrone =synchronisation temps réél
![Page 60: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/60.jpg)
Un exemple en XML
![Page 61: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/61.jpg)
Opérations XML
![Page 62: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/62.jpg)
Transformées XML
![Page 63: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/63.jpg)
Editeur Sams de CRC Cards
![Page 64: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/64.jpg)
![Page 65: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/65.jpg)
![Page 66: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/66.jpg)
![Page 67: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/67.jpg)
![Page 68: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/68.jpg)
Compression d’histoire
PB: OT -> explosion des logs Utilisation de transformées en arrière
pour compresser les logs…
![Page 69: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/69.jpg)
Algorithme
D1 I1 D2 I2 D3 I3 D5 I4 D4
D1 I1 D2 I2 D3 I3 D5 I4 D4
D1 I1 D2 I2 D3 I3 D5 I4 D4
![Page 70: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/70.jpg)
Algorithme :
!si p2 < p1 alors insert(p2, c2) • insert(p1 + c2.taille, c1) sinon si p2 > p1 + c1.taille alors insert(p2 – c1.taille, c2) • insert(p1, c1) sinon // p1 ≤ p2 ≤ p1 + c1.taille insert(p1, (c1.insert(p2 – p1, c2)) // Factorisation finsi
Transposée de insert – insert…
![Page 71: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/71.jpg)
Algorithme :
!si p2 + lg2 < p1 alors delete(p2, lg2) • delete(p1 – lg2, lg1) sinon si p2 > p1 alors delete(p2 + lg1, lg2) • delete (p1, lg1) sinon // p2 ≤ p1 ≤ p2 + lg2 delete(p2, lg1 + lg2) // Factorisation finsi
Transposée de delete – delete…
![Page 72: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/72.jpg)
Algorithme :
!si p2 < p1 alors insert(p2, c2) • delete(p1 + c2.taille, lg1) sinon insert(p2 + lg1, c2) • delete(p1, lg1) finsi
Transposée de delete – insert…
![Page 73: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/73.jpg)
Algorithme : si p2 + lg2 < p1 alors delete(p2, lg2) • insert(p1 – lg2, c1) sinon si p2 > p1 + c1.taille alors delete(p2 – c1.taille, lg2) • insert(p1, c1) sinon si p2 < p1 alors si p2 + lg2 < p1 + c1.taille alors delete(p2, p1 – p2) • insert(p2, c1.droite(c1.taille – p2 – lg2 + p1 ) sinon delete(p2, lg2 - c1.taille) // Factorisation finsi sinon si p2 + lg2 < p1 + c1.taille alors // Factorisation insert(p1, c1.gauche(p2 – p1) + c1.droite(c1.taille – p2 – lg2 + p1)) sinon delete(p1, p2 + lg2 – p1 – c1.taille) • insert(p1, c1.gauche(p2 – p1)) finsi finsi
Transposée de insert – delete…
![Page 74: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/74.jpg)
![Page 75: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/75.jpg)
Réseaux de synchronisation
N channels (log based data sharing) 1 Channel:
N Replicates (on server or on local computers)
1 Replicate synchronize with 1-n channels
![Page 76: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/76.jpg)
![Page 77: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/77.jpg)
![Page 78: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/78.jpg)
Réseau de synchro
PB: Propriétés garanties: Propriétés locales -> propriétés globales ??
Nouvelles propriétés sur le réseau lui-même ? Monotonie ? non-déterminisme ?
Continuité ?
![Page 79: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/79.jpg)
Réseaux de synchronisation
Application : modélisation et exécution de procédés support pour les itérations Support pour le parallélisme Concurrent engineering…
![Page 80: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/80.jpg)
Pb de l’annulation
Annuler Pas seulement la dernière opération Une alternative à la compensation… Revenir sur les choix arbitraires des
fonctions de transformtion
![Page 81: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/81.jpg)
Algorithme naïf (basé sur le principe 1) (vidot03)
...!
op!
op!
...!
op!
seq!
seq!
2!
1!
3!
4!
5!
Oo!Hs(n) :!
![Page 82: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/82.jpg)
Problèmes Annulation…
2 nouvelles propriétés
Pb preuves…
![Page 83: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/83.jpg)
Conclusions
Synchroniser : Un pb ouvert
Transformations opérationnelles: Un modèle pour raisonner sur cohérence
des copies
![Page 84: Synchronisation de données divergentes - iihm.imag.friihm.imag.fr/nigay/GTMOB/Mai2003/PRES/Molli.pdf · Problème Preuve des conditions C1 et C2 sur les fonctions de transformation](https://reader034.vdocuments.pub/reader034/viewer/2022050305/5f6dff173587ef75180a7a96/html5/thumbnails/84.jpg)
Perspectives
Formalisation stricte du modèle Transformées opérationnelles vérifiant
C1, C2, C’3,C’4 ? Transformées opérationnelles et
cohérence sémantique Métriques de divergence Propriétés des réseaux de synchro