450 likes | 555 Views
Partage d’information à grande échelle. Marc Shapiro. Cambridge Distributed Systems Group. 1. Résumé des épisodes précédents…. Grandes étapes. 1978: Ingénieur ENSEEIHT 1978--1980: doctorant LAAS 1980--1982: Post-doc MIT Lab. for Computer Science 1982--1985: Chargé de Recherches CMIRH
E N D
Partage d’information à grande échelle Marc Shapiro Cambridge Distributed SystemsGroup
Grandes étapes • 1978: Ingénieur ENSEEIHT • 1978--1980: doctorant LAAS • 1980--1982: Post-doc MIT Lab. for Computer Science • 1982--1985: Chargé de Recherches CMIRH • 1984--1985: INRIA • 1986--1999: Directeur de recherche, responsable scientifique INRIA projet SOR • 1993--1994: Cornell • 1997: Jini, Sun Research Labs • 1999+: Senior Researcher, MSR Cambridge Gestion répartie d'objets
Thèses encadrées • Yek Loong Chong. U. de Cambridge, 2003. • Nicolas Richer. Paris 6, 2002. • Fabrice le Fessant (co-encadrement). Polytechnique, 2001. • Xavier Blondel. CNAM, 2000. • Aline Baggio. Paris 6, 1999. • Georges Brun-Cottan. Paris 6, 1998. • Julien Maisonneuve, Paris 6, 1996. • Paulo Ferreira. Paris 6, 1996. • Hervé Soulard. Paris 6, 1995. • David Plainfossé. Paris 6, 1994. • Daniel Edelson. UC Santa Cruz, 1993. • Michel Ruffin. Paris 6, 1992. • Yvon Gourhant. Paris 6, 1991. • Sabine Habert. Paris 6, 1989. • Mesaac Mounchili Makpangou. Paris 6, 1989. Gestion répartie d'objets
Computing Surveys, en cours PODC 2001 Livre Springer 2000 PLDI 1998 ECOOP 1998 ICDCS 1996 IWMM 1995 WDAG 1995 Livre IEEE 1994 OSDI 1994 ICDCS 1994 PODC 1992 RDS 1991 Computing Systems 1989 SOSP 1989 ICDCS 1986 Publications Gestion répartie d'objets
Le partage de l’information à grande échelle • Complexité des systèmes répartis : parallélisme, pannes, événement, latence • Objets: sémantique non prédéfinie • Système : • outils communs • aspects dynamiques • compromis • Traiter les problèmes de fond, impact sur le long terme Gestion répartie d'objets
Objets Fragmentés1981-1990 • Structuration • Contrôle de la transparence • Mandataire • programmable • spécifique au client • état du protocole • Système SOS • Voir • proxy Web • Jini • pages Web dynamiques Gestion répartie d'objets
Chaînes de Paires Souche-Scion 1990—1999 • Automatiser la gestion d’objets en réparti • Références • RM locaux + coordination asynchrone • Simplicité + efficacité • Tolérant les pannes détectables • Dérivation formelle x z y t Gestion répartie d'objets
RM asynchrone en mémoire répliquée 1993—2000 • Scalability asynch. • Consistency • Local GC • Distributed GC • Sufficient safety rules • Union rule • Clean propagation • Comprehensive scanning • Create before delete • Causal delivery • PerDiS Gestion répartie d'objets
Réplication optimiste 2001+ • Partage en écriture décentralisé • IceCube : • moteur général de réconciliation • journalisation d’opérations • paramétré par la sémantique • Cohérence à terme : • modèle : opérations + contraintes • sûreté + vivacité • invariant global • décrire et comprendre les solutions • Très préliminaire Gestion répartie d'objets
Optimistic replication • Replicas of shared objects on sites • Without synchronisation: • peer-to-peer read • and update! • Applications: • high latency networks • disconnected operation • cooperative work • Improves availability & performance • Consistency: a posteriori, offline • Merge independent updates Gestion répartie d'objets
Example: cooperative engineering with CVS • CVS: developing shared code • Local, disconnected replica: no interference • Conflicts: • Write same file = syntactic • Overlap in file = violates edit semantics • Doesn’t compile, test = violates application semantics • Both sides of a conflict are excluded • Manual repair Gestion répartie d'objets
Example: Bayou • General-purpose database • Any replica can update, log actions action = { dependency check, operation, merge-procedure } • Optimistic replication: • epidemic exchange logs • { roll-back, replay }*; commit • dep-check: semantic check for conflict • merge-proc: semantic repair Gestion répartie d'objets
1 0 3 0 4 2 Operation-based model 0 scheduling commitment 0 Gestion répartie d'objets
pre(x0) post(x0, f(x0)) x1:= f(x0) pre(x1) post(x1, g(x1)) x2:= g(x1) pre(x0) post(x’1, g(x0)) x’1:= g(x0) Execution model • operation = code + pre/post-conditions • Schedule must satisfy • Violation conflict • But pre/post-conditions often unknown • Conservative approximations Gestion répartie d'objets
Happens-before • True constraints unknown • e1 precedes e2 in process • e1 sends, e2 receives e1 e2 (e1 e2) (e2 e1) e1 ||e2 • e1 || e2: e1 does not causee2 • e1 e2: e1might cause e2 • Partial order, consistent with causal dependence • Schedule consistent with Gestion répartie d'objets
Syntactic vs. semantic mechanisms • Scalar timestamps • no concurrency detection • very conservative approx. of causality • Vector timestamps • detect concurrency • conservative approx. of causality • Alternative: explicit constraints Gestion répartie d'objets
Constraints between operations • Not all schedules are acceptable • Constraints, e.g. • x > 50 • respect causal ordering • all-or-nothing transactions • alternative execution paths • conflicting operations exclude each other Gestion répartie d'objets
IceCube: Primitive constraints • Constraint = predicate (action, schedule) • Declarative (“static binary”): • MustHave: a b if as and ab then bs (not necessarily contiguous nor in order) • Order: a b if a, bs and ab then a before b in s (not necessarily both nor contiguous) • Imperative (dynamic): a.preCondition (State) Gestion répartie d'objets
IceCube: log constraints alternatives predecessor- successor parcel • Express user intents: • Predecessor/successor: a b b a b uses effect of a; “a causes b” • Parcel: a b b a transaction • Alternatives: a b b a Gestion répartie d'objets
IceCube: Object constraints • Shared data type advertises staticsemantics • mutually exclusive a b b a • best order (e.g. bank:credits before debits) a b • Only between concurrent actions • Also: dynamic constraints mutually exclusive best order commute Gestion répartie d'objets
Optimistic concurrency control & scheduling • Two actions are either: • Dependent schedule in dependence order • Commutative schedule in any order • Concurrent with favourable order • schedule in non-conflicting order • Concurrent and conflicting • or exclude one, the other, or both Gestion répartie d'objets
IceCube scheduling • Insight: • conflict: choice of which action to exclude • maximise value Gestion répartie d'objets
0 4 0 5 log constraints 0 6 0 7 0 8 log constraints 0 9 0 10 0 11 IceCube scheduling model dynamic constraints 0 1 object constraints 0 2 Gestion répartie d'objets
Search vs. syntactic order Gestion répartie d'objets
Performance of IceCube heuristics Gestion répartie d'objets
Eventual consistency • Consistent with user intents • Consistent with data invariants • Replicas consistent with each other • Eventual consistency: • Each site receives all actions • Schedule that satisfies constraints • Common stable prefix • Equivalent results Gestion répartie d'objets
Stability • Peer-to-peer, indefinite tentative update + advisory reconciliation OK • But stability needed: • Users, external world depend on it • Garbage collect multilog • Only stable actions relevant for consistency • Stable: eventually decisions not changed • Committed: definitely included in all schedules • Aborted: definitely excluded Gestion répartie d'objets
Eventual consistency: intuitive • Liveness: sites receive all operations • Epidemic multicast • Quickly • Safety: sites compute the same value • Equivalent schedules • Stability: actions eventually not undone • Commit / abort Gestion répartie d'objets
Sound schedules • s sound = s satisfies constraints for all its actions: • Closed for MustHave as ab bs • Consistent with Order ( acyclic) (a,b s ab) a before b in s • Actions succeed a s a.preCondition (state) Gestion répartie d'objets
Maintaining local soundness • site i, schedule si: Legal: committedi si abortedi si = Safe: si sound • When aborting a, also abort actions that MustHave a • When committing a, also abort uncommitted actions that are ‘Order’ed before a Gestion répartie d'objets
Schedule equivalence • Equivalence: s t • s, t sound • as at • ordering is irrelevant! • Eventual consistency reduces to: • Same committed operations everywhere • All committed operations in every schedule • Schedules are sound Gestion répartie d'objets
Eventual consistency • action a, site i,k, schedule si: • Legal: committedi si abortedi si = • Safe: si sound • Live: a committedi abortedi a committedi a committedk a abortedi a abortedk Gestion répartie d'objets
Global safety invariant • sound [t time, i sitescommittedi(t)] • Closed for MustHave • Non-conflicting: Acyclic in Order • Actions successful s, a: a.preCondition (state) • Very strong! • i commits a at t only if j won’t commit conflicting b at t’ • a will succeed everywhere, anytime Gestion répartie d'objets
Maintaining global invariant Alternatives: • Common knowledge: deterministic abort rule [idem commit?] TWR • Unilateral abort [idem commit?] CVS, Holliday 2000 • Single primary site decides Bayou, CVS • Consensus before deciding Deno, Holliday 2000-2002 Gestion répartie d'objets
Stability with TWR • Independent objects • Independent writes (no MustHave nor Order) • All sites take same decision: • Given two writes to same object, abort the earlier • Whether concurrent or not • Write stable when seen by all sites • Disjointness: committedi= • Soundness: no MustHave (no transactions) Gestion répartie d'objets
Stability in Bayou • Databases: • Disjoint • Independent: no multi-DB transaction • 1 primary / database • Log constraints: transactions, time order • Disjointness: Only 1 site decides about a: the primary for the database that a updates • Soundness: whole transaction commits or aborts Gestion répartie d'objets
Holliday’s pre-commit protocol • Log constraints: • multi-object transactions • happens-before order • Read transactions commit locally • Read-Write transactions: consensus to commit • convert locks to intentions • pre-commit, vote • commit if quorum ‘yes’ • abort if anti-quorum ‘no’ or conflict with committed Gestion répartie d'objets
Trade-offs • No perfect solution • Common knowledge: • syntactic: fast, inflexible • aborts, doesn’t commit • Partition + primary • single point of failure • no MustHave across partition boundaries • Consensus • slow • scalability • impossibility of consensus in asynchronous systems with failure Gestion répartie d'objets
Passage à l’échelle ? • Réplication en écriture : • CC pessimiste = attendre • CC optimiste = spéculer • Progrès malgré pannes • Non transparent • Limité par le commit • Compromis possibles : • partitionner • diminuer la granularité • limiter nombre d’écrivains Gestion répartie d'objets
Perspectives • Importance grandissante du partage • Lecture et écriture • Commerce électronique • Pertinence des techniques • Mandataires spécifiques encapsulant l’état du protocole • Java, .Net : ramasse-miettes réparti • Réplication: centres Web, BD • Travail déconnecté Gestion répartie d'objets
The end Gestion répartie d'objets