Types
mémoire virtuellement partagée
système de fichier distribué
Stockage matériel
RAID
NAS
SAN
base de données répartie
problème central
théorème CAP
on ne peut pas avoir en même temps
C
Consistence
A
Disponibilité
P
Résistence aux partitions réseau
catégories
Réplication
ressources
options de gestion
lecture
d'un serveur primaire
de n'importe quel serveur
d'un quorum
écriture
sur le primaire
sur tous
mise à jour atomique
sur tous les disponibles
sur un quorum
propagation lente
stratégies de réplication
lit d'un / écrit sur tous
sérialisation
pas de concurrence
lit d'un / écrit sur tous les disponibles
plus de sérialisation
en cas de panne
lit d'un quorum / écrit sur un quorum
bon compromis
lit d'un / propagation lente
haute disponibilité
en cas de probabilité de pannes élevée
utiliser des vecteurs d'estampilles pour garantir causalité
options avec migration
possibilités lecture/écriture
accès distant
migration
réplication
stratégies
serveur distant
accés distant en lecture et en écriture
serveur dynamique
migration en lecture et en écriture
lecture réplication / écriture migration
choix populaire
sémantique claire
consistence forte
lecture réplication / écriture réplication
consistence forte difficile
possibilité d'utiliser validation à deux phases
(services)
état ?
modélisation avec machine à états
indépendance au temps
tolérance à n pannes
n+1 répliques
reçoivent toutes
mêmes entrées
dans même ordre
+ vote
doit être fiable
respecter au moins causalité
+
modèle conceptuel
masque vote
indiscernable d'une seule machine
-
trop coûteux
primaire/secours
principe
communication avec primaire
secours prend relai en cas de panne
+
simplicité
performance
-
que faire si primaire donne un mauvais résultat ?
des requêtes peuvent être perdues
protocoles
nécessités
1 seul primaire à un moment donné
1 seul primaire pour chaque client
interruptions de service bornées
requêtes traitées seulement sur primaire
battements de coeur
Pacemaker
Consistance
n'a de sens que relativement à un modèle
accès généraux lectures/écritures
consistence atomique
toutes opérations apparaissent
atomiques
séquentielles
ordre correspond au temps-réel
même sur tous processeurs
très coûteux
consistence séquentielle
relâche contrainte temps réel
écriture = multicast
consistence causale
relâche contrainte ordre identique sur tous processeurs
garantit seulement causalité
écriture = envoi
lecture = réception
consistence de processeur
seules écritures venant d'un même processeur doivent être vues dans le même ordre
implémentation facile
consistence de mémoire lente
seules écritures par même processeur à même @ doivent être vues dans l'ordre
mise à jour locale visible immédiatement
propagation lente
accès spécifiques (de synchronisation)
protection par sémaphore
exclusion mutuelle
demande intervention programmeur
consistence faible
barrière de synchronisation
consistence de relâchement
accès exclusif entre
aquisition (S)
relâchement (S)
section critique
consistence d'entrée
chaque variable partagée
est associée à une variable de synchronisation