À la base de PeerStorage, il faut un système permettant de stocker des données de façon fiable sur des appareils qui se déconnectent sans cesse. Ci-après une illustration d’un moyen de créer un « block device » virtuel à partir d’appareils disparates mettant chacun à disposition du réseau une portion de sa propre mémoire.
Chaque carré est un « data store ». Il est composé de :
- Cellules grises, elles contiennent des bits de données.
- Cellules colorées, elles contiennent des bits de parité.
- Cliquez sur les cellules grises pour changer des bits de données. Observez comment les bits de parité changent également.
- Cliquez sur des cellules colorées pour détruire un « store ». Observez comment les données sont reconstruites de rien.
- Essayez de changer des valeurs pendant qu’on « store » se reconstruit. Remarquez que vos changements sont pris en compte.
- Essayez de détruire plus d’un « store » à la fois. Si des bits sont perdus ils sont remplacées par ‘-‘.
- Expérimentez avec des tailles différentes. Observez comment le ratio de redondance varie (cellules totales/cellules grises).
Reconstruire tous les "stores" | |||||
Changer la taille du tableau | |||||
Changer la distribution de la parité | ||
Un simple calcul de probabilités à partir des hypothèses suivantes :
- on passe à 3 dimensions au lieu des 2 de la démonstration,
- le côté du « cube » fait 11 « data stores », il y en a donc au total 1331,
- le ratio de redondance est de 1,33, c’est à dire 1331/1000,
- chaque minute, 10% des « data stores » sont déconnectés,
- il faut 5 secondes pour reconstruire un « data store ».
Sur un an, la probabilité de perdre une donnée est de un sur dix millions (10-7).