Système Distribué

Introduction

Très Académique

L’art et la manière de faire croire qu’un système compose de plusieurs machines fonctionne comme une seule. (Ce n’est pas possible).

Pourquoi distribuer mon système ?

Exemple : Base de données

Scaling vertical : Augmenter les capacités de la machine (CPU, RAM)

Structure

Modelisation

Theoreme CAP

Il y a trois grandes propriétes dans les systèmes distribuées :

Le théoreme d’impossibilité CAP : On ne peut pas avoir les 3, juste 2. On peut soit sacrifier le C, soit le A. En cas de partitionnement réseau §, je serai obligé de sacrifier soit le C soit le A.

3 types de système :

Systeme SQL Old School

C’est un système CA. En cas de requête,

Algorithme CP

Si une machine attend, il y a de forte chance, que la panne ne soit pas
atomique (il y a pas deux blocs distincts mais beaucoup plus). On choisit quels blocs peuvent continuer et les autres attendront la reprise réseau.
S’il existe une partition possédant la majorite absolue, il n’y en a qu’une
seule. Cette dernière pourra continuer (Dans le cas où on n’est pas dans un
système byzantin
). C’est une des raisons pour laquelle les systémes de
replication sont en nombre impaire.

PAXOS: Un algo légendairement dur.

(The Part-Time Parliament, Leslie Lamport (Time code : 1:01:00) Problème du
consensus.)
Website

Google développe la première implémentation industrielle de PAXOS : CHUBBY. Et fait un papier de recherche : Paxos made live.
En 2006, un autre algo est sorti. Il est aussi puissant que PAXOS mais facile à expliquer, comprendre et implémenter : RAFT.

Explication de RAFT et par Chewie 1:15:00-01:21:00

La théorie des systèmes distribuées, c’est un master entier de Paris VI

Système AP

Il accepte la divergence, et donnne des algos de reconciliations. Au pire ce
sera au client de résoudre le problème.
CRDT (Convergent Replicated Data Type) : Certaines données peuvent résoudre la divergence de manière automatique. Par exemple dans un ensemble, il
n’y a pas d’ordre.

Bibliographie :