33
Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

Embed Size (px)

Citation preview

Page 1: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

Du système au système de systèmes

ou : Pourquoi Google n'est pas français

Du système au système de systèmes

ou : Pourquoi Google n'est pas français

Marc ShapiroDirecteur de recherche

Équipe-projet Regal

Page 2: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

2Du système au système de systèmes – Rocquencourt – 15 mai 2008

Le « système »Le « système »

Logiciels de base, complexes, pour simplifier les applications :

• Système d'exploitation• Système réparti• Temps réel, systèmes enfouis

Abstractions et mécanismes génériquesMétriques de performance :• latence, débit• disponibilité ; résistance aux pannes,

aux attaques• coût logiciel, matériel• énergie : batteries, chaleur

Page 3: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

Systèmes répartisSystèmes répartis

Page 4: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

4Du système au système de systèmes – Rocquencourt – 15 mai 2008

Informatique répartieInformatique répartie

Toute informatique est répartie• sites / processus• messages asynchrones,

coûteux• pannes partielles• redondance matérielle

Peer-to-peer : décentralisé, effet de masse, auto-organisant

Amazon, Google, etc. : PC, disques, etc., bon marché + redondance

Page 5: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

5Du système au système de systèmes – Rocquencourt – 15 mai 2008

Réplication des donnéesRéplication des données

Accès distant, partagé ⇒ répliquer• performance• disponibilité & tolérance aux

fautes• travail déconnecté et collaboratif

Répliques + m-à-j ⇒ maintien de la cohérence

• Consensus

Page 6: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

6Du système au système de systèmes – Rocquencourt – 15 mai 2008

Profiter du parallélisme ? Profiter du parallélisme ?

• Opérations commutatives : dans n’importe quel ordre

“Embarassingly parallel”• Dépendance causale : dans l’ordreOrdre partiel “Happened-before”• Opérations non commutatives : le système les

ordonne• Dans le doute : ordre total

Solutions :• attendre (pessimiste)• spéculer (optimiste) + retour

arrière

aa

bb

cc

dd

ee ff

Page 7: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

7Du système au système de systèmes – Rocquencourt – 15 mai 2008

Ordonnancer les opérations concurrentes

Ordonnancer les opérations concurrentes

Exemples :• Qui a la dernière place dans l'avion ?• Verrouillage atomique d'un fichier• Ordre des voitures dans un train

Praxitèle (?)

Consensus

aa

bb

cc

dd

ee ff

Page 8: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

8Du système au système de systèmes – Rocquencourt – 15 mai 2008

Fischer, Lynch, Patterson 85

Fischer, Lynch, Patterson 85

Impossibilité du consensus si :• messages asynchrones• pannes non détectables• déterministe

On doit sacrifier• soit la sûreté : l'algorithme fait des

erreurs• soit la vivacité : l'algorithme se

bloque• soit les hypothèses

Page 9: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

9Du système au système de systèmes – Rocquencourt – 15 mai 2008

Tolérance aux fautesTolérance aux fautes

Fautes bénignes : silencieuses• perte de message• crash

Tolérer f crashes sur n sites :• n’attendre que n – f

messages⇒ Il faut 2f+1 sitesPropriété de recouvrement

A 14: 547

15: 333

? 14: 547

B 14: 547

C 14: 547

15: 333

15: 333

15: 333

Page 10: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

10

Du système au système de systèmes – Rocquencourt – 15 mai 2008

L'algorithme de consensus PaxosL'algorithme de consensus Paxos

Clients invoquent "learner"• en parallèle

Ordonner totalement requêtes

• de façon tolérante aux fautes :

• 2f+1 "Acceptor"• Choix de la prochaine :• "Leader" tournant

Primitive de base

Req(3

14)

Acceptor 1

Acceptor 2

Acceptor 3

Req(3

3)

Req(5

49)

Req(7

7)

Proposer

Proposer

Learner Learner …

Page 11: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

11

Du système au système de systèmes – Rocquencourt – 15 mai 2008

Paxos

Client 1

Client 2

Proposer 1

Proposer 2

Acceptor 1Acceptor 2

Acceptor 3

Learner 1

Req(3

3)

Prep

are(

1)

Prom

ise(

1)

Acc

epte

d(7

7)

Resp

onse

(77)

Accep

t!(77

)

Choix du leaderInstallation valeur

Acc

epte

d(3

3)

Resp

onse

(33)

Accep

t!(33

)Req(7

7)

Nouvelle instance,même leader

Page 12: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

12

Du système au système de systèmes – Rocquencourt – 15 mai 2008

Tolérance aux fautes dans Paxos

Client 1

Client 2

Proposer 1

Proposer 2

Acceptor 1Acceptor 2

Acceptor 3

Learner 1

Prep

are(

1)

Prom

ise(

1)

Resp

onse

(77)

Accep

t!(77

)Req(7

7)

Acc

epte

d(7

7)

Prep

are(

4)

Req(3

3)

Prom

ise(

4)

Prom

ise(

4,7

7,1

)

Accep

t!(77

)

Acc

epte

d(7

7)

Page 13: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

13

Du système au système de systèmes – Rocquencourt – 15 mai 2008

Fautes byzantinesFautes byzantines

Les processus peuvent faire n'importe quoi : collusion, mensonge, etc. : pannes logicielles, attaques de sécurité«Il a dit...»Tolérer f fautes ==> 3f+1

Général Général félonfélon

Lieut. ALieut. A Lieut. BLieut. B

retraite !

attaque !

Il a dit «retraite»

GénéralGénéral

Lieut. ALieut. A Lieut. B Lieut. B félonfélon

attaque !

attaque !

Il a dit «retraite»

GénéralGénéral

Lieut. ALieut. A Lieut. B Lieut. B félonfélon

attaque !

attaque !

Lieut. CLieut. C

Il a dit «retraite»

Il a dit«attaque»

attaque !

Page 14: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

14

Du système au système de systèmes – Rocquencourt – 15 mai 2008

Byzantine Fault ToleranceByzantine Fault Tolerance1982 Lamport, Shostak, Pease "The

Byzantine Generals Problem" 1990 Lamport Paxos "The part-time

parliament"• Deux idées de théoricien fou...1999 Castro, Liskov OSDI• Paxos + Byz + NFS = “Practical

Byzantine Fault Tolerance”2008• Farsite, Oceanstore• Google: Chubby, GFS• IBM SAN Volume Controller• Microsoft Autopilot cluster mgt

service• SOSP 2007 : une session entière !

Page 15: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

Réplication optimisteRéplication optimiste

Page 16: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

16

Du système au système de systèmes – Rocquencourt – 15 mai 2008

Approche optimisteApproche optimiste

Répliques x1, x2, x3,..., y1, y2, ... sur sites 1, 2, 3, ...Site 2 propose g(x2) ; propagation ; 1, 3, ... rejouent Ordre différent ; résultats équivalents ? • À l'essai• Prendre en compte sémantique : commutativité,

etc.• Réconciliation a posteriori : consensus

xx33

xx11

xx22

xx f (xf (x11))

g(xg(x22))

f f (x(x33))

g(xg(x11))

g(xg(x33))

Page 17: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

18

Du système au système de systèmes – Rocquencourt – 15 mai 2008

Graphe actions-contraintes

Graphe actions-contraintes

f g h→

∦⇄

j k

f g h→

j

h

k

◁→

∦ Non commutatif (le système doit ordonnancer)→ Not-after (le système doit briser les cycles)⇄ Antagonisme (un cycle de →)

Dépendance causale

Page 18: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

20

Du système au système de systèmes – Rocquencourt – 15 mai 2008

ContraintesContraintes

f g f≺g f ‖gcredit (a,

v)debit (a,

v')∅

debit (a, v)

debit (a, v')

∅ ∦

autres cas  ∅ ∅

∦ Non commutatif (le système doit ordonnancer)→ Not-after (le système doit briser les cycles)⇄ Antagonisme (un cycle de →)Dépendance causale

Exemple : compte bancaire

Page 19: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

22

Du système au système de systèmes – Rocquencourt – 15 mai 2008

DécisionDécision

Obligation de vivacité :• Briser cycles → par abort• Ordonnancer ∦ par → ou abort

Le système ajoute des contraintes

f g h

j k

∦ →⇄

f g h

j k

∦ →⇄

◁→

Page 20: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

23

Du système au système de systèmes – Rocquencourt – 15 mai 2008

Cohérence à termeCohérence à terme

Cohérence à terme :• Toutes les opérations sont décidées

à terme• Pas de décisions illégales

Consensus :• En tâche de fond : hors du chemin

critique• Application non ralentie• Optimisations : regroupement,

heuristiques, sémantique

Page 21: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

24

Du système au système de systèmes – Rocquencourt – 15 mai 2008

TelexTelex

Graphe actions-contraintes persistantDocument stocké comme répertoire

contenant des fichiers de type journal• nommage• pas de contention• localité

/users/shapiro/mydoc

/users/shapiro/mydoc

MarcMarc

PierrePierre

RubyRuby

Page 22: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

Multiprocesseurs multi-cœur

Multiprocesseurs multi-cœur

Page 23: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

30

Du système au système de systèmes – Rocquencourt – 15 mai 2008

Limites des architectures UC traditionnelles

Limites des architectures UC traditionnelles

10,000

1,000

100

10

1

‘70 ‘80 ‘90 ‘00 ‘10

Pow

er

Densi

ty (

W/c

m2)

40048008

8080

8085

8086

286386

486

Pentium® processors

Hot Plate

Nuclear Reactor

Rocket Nozzle

Sun’s Surface

Intel Developer Forum, Spring 2004 - Pat Gelsinger

Dissipation de chaleur

⇒ Ralentir l’horloge ⇒ Parallélisme

CPU Clock Speed

DRAM Access Speed

Speed (

MH

z) (

MH

z)

10,000

1,0001,000

100100

1010

1990199019921992 19941994 19961996 19981998 20002000 20022002 20042004

Memory Wall~90 cycles of the CPU clock

to access main memory!

Modern Microprocessors - Jason Patterson

Goulot d’étranglement de

l’accès à la mémoire⇒ Réplication

Page 24: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

31

Du système au système de systèmes – Rocquencourt – 15 mai 2008

Processeurs multi-cœurProcesseurs multi-cœur

LPIA x86

LPIA x86

DRAM ctlr

DRAM ctlr

OoO x86

LPIA x86

LPIA x86

1 MB cache

1 MB cache

LPIA x86

LPIA x86

1 MB cache

GPU GPU

PCIe ctlr

PCIe ctlr

NoC NoC1 MB

cache1 MB

cache

LPIA x86

LPIA x86

1 MB cache

GPU GPU

LPIA x86

LPIA x86

1 MB cache

1 MB cache

LPIA x86

LPIA x86

DRAM ctlr

DRAM ctlr

OoO x86

LPIA x86

LPIA x86

DRAM ctlr

DRAM ctlr

DRAM ctlr

DRAM ctlr

LPIA x86

LPIA x86

LPIA x86

LPIA x86

1 MB cache

1 MB cache

1 MB cache

1 MB cache

LPIA x86

LPIA x86

LPIA x86

LPIA x86

1 MB cache

1 MB 1 MB cache

1 MB cache

1 MB cache

LPIA x86

LPIA x86

LPIA x86

LPIA x86

1 MB cache

1 MB cache

1 MB cache

1 MB cache

LPIA x86

LPIA x86

PCIe ctlr NoC NoC NoC NoC NoC NoC PCIe

ctlr

LPIA x86

LPIA x86

1 MB cache

1 MB cache

1 MB cache

1 MB cache

LPIA x86

LPIA x86

LPIA x86

LPIA x86

1 MB cache

1 MB cache

1 MB cache

1 MB cache

LPIA x86

LPIA x86

LPIA x86

LPIA x86

1 MB cache

1 MB cache

1 MB cache

1 MB cache

LPIA x86

LPIA x86

LPIA x86

LPIA x86 Custom acceleration LPIA

x86LPIA x86

ServerServerDesktopDesktop

Ultra-MobileUltra-Mobile

LPIA x86

1 MB cache

1 MB cache

DRAM ctlr

LPIA x86

1 MB 1 MB cache

PCIe ctlr

GPU

GPUcache Source : Andrew Herbert, EuroSys 2008

ConcurrenceComplexité

Coûts mémoire

Page 25: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

34

Du système au système de systèmes – Rocquencourt – 15 mai 2008

La révolution est déjà en cours

La révolution est déjà en cours

Bientôt : des millions de processeur par personne...

Comment est-ce qu'on va programmer ça ?

Concurrence très complexe !• Très difficile à programmer et déboguer • Énorme : tous les développeurs sont

concernés• Abstractions ne suffisent pas : interférence,

non compositionnelCoup de fouet à la recherche

Page 26: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

Du système au système de systèmes – Rocquencourt – 15 mai 2008

Example : verrous couplés

Example : verrous couplés

Ensemble d'entiers réalisé par liste chaînée triée

Concurrence à grain fin : verrous couplésProuver :

• invariant de liste chaînée• invariant de l'abstraction• linéarisable ⇒ compositionnel

Invariant-clef : un nœud verrouillé reste accessible, quelles que soient les opérations concurrentes

5H 10 15 20 T5H 10 15

Page 27: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

37

Du système au système de systèmes – Rocquencourt – 15 mai 2008

Rely-GuaranteeRely-Guarantee

Extension de la logique de Hoare au parallélisme fin : preuve de non-interférence

• [pre] C [post] ➠ [prei, relyi] Ci [guari, posti]

• par fil i : preuve séquentielle ≈classique• global : ∀j ≠ i : guarj ⇒ relyi

[p1, r1] C1 [g1, q1] [p2, r2] C2 [g2, q2]g1 ⇒ r2 g2 ⇒ r1⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯

[p1 ∧ p2, g1 ∧ g2] C1 || C2 [g1 ∨ g2, q1 ∧ q2]

37

Page 28: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

38

Du système au système de systèmes – Rocquencourt – 15 mai 2008

Ne pas rater cette révolution

Ne pas rater cette révolution

Questions : • Algorithmes ?

- verrous à grain fin- sans verrou- mémoire transactionnelle- spéculation- opportunisme / caches

• Langages, paradigmes ?• Preuves, simulations, débogage, test ?

Maîtriser la complexité :• Auto-configuration, auto-

administration• Réutiliser algorithmes système réparti

Que fait l’INRIA ?

Page 29: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

39

Du système au système de systèmes – Rocquencourt – 15 mai 2008

CPU

Crossbar

L2 cache

micro-Ethernet

L1I

Crossbar

L2 cache

Crossbar Crossbar

L2 cache

CPU

L1I

L1D

CPU

L1I

RAM

L2 cache

L1D

CPU

L1I

L1D

CPU

L1I

L1D

CPU

L1I

L1D

CPU

L1I

CPU

L1I

L1D L1D L1D

Multi-processeur TsarMulti-processeur Tsar

Source : Alain Greiner

Page 30: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

ConclusionsConclusions

Page 31: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

41

Du système au système de systèmes – Rocquencourt – 15 mai 2008

Importance du systèmeImportance du systèmeModèle + algorithme +

expérimentation !!!• Pas de théorie sans pratique et vice-

versa• Comprendre les compromis / trade-

offsIntérêt de recherche :• lien théorie-pratique très fort• impact : 8 sur 11 premières dans

CiteSeer• voir MIT, Stanford, CMU, Berkeley, etc.

INRIA :• Grilles, P2P, …• Ne pas rater la révolution du multi-

cœur !

Page 32: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

42

Du système au système de systèmes – Rocquencourt – 15 mai 2008

Importance stratégiqueImportance stratégique

Couche de base ⇒ stratégique• technologies essentielles (p.ex. sécurité)

• impact économique (Microsoft, Google)

• formation indispensable

Insuffisamment développé en Europe• mais voir EPFL, ETHZ, Max Planck,

Cambridge• INRIA ?

Page 33: Du système au système de systèmes ou : Pourquoi Google n'est pas français Marc Shapiro Directeur de recherche Équipe-projet Regal

43

Du système au système de systèmes – Rocquencourt – 15 mai 2008

Pourquoi Google n’est-il pas français ?

Pourquoi Google n’est-il pas français ?

Et Akamai, Amazon, Apple, eBay, Google, Groove, IBM, Microsoft, RedHat, SMC, Skype, Sun, Suse, Symbian, VMWare, Xen?

Forces : systèmes enfouis, transports, P2P, grilles, Linux…

Pour mieux développer le système :• expérimental : durée des thèses• recrutement