Faculté des sciences

Erasure coding for distributed storage systems

Barbi, Roberta ; Mercier, Hughes (Dir.)

Thèse de doctorat : Université de Neuchâtel, 2019.

A huge quantity of data is generated and stored every day. Preeminent examples are the 300 million photos that get uploaded daily to Facebook or the 156 million emails sent every minute. Furthermore, it is remarkable that almost 90% of the data in the world has been generated in the last 2 years. This humongous quantity of data is typically hosted in data centres located in different geographic... More

Add to personal list
    Résumé
    Une énorme quantité de données est désormais générée et stockée : 300 millions de photos sont téléchargées sur Facebook chaque jour et 156 millions de courriels sont envoyés chaque minute. Par ailleurs, près de 90% des données dans le monde ont été produites au cours de deux dernières années. Cette quantité colossale de données est typiquement hébergée dans des centres de données situés en régions géographiques différentes, et doit être servie promptement sur demande. Raison pour laquelle une propriété fondamentale pour les systèmes de stockage répartis est la fiabilité. Une fiabilité qui ne peut être garantie en cas de panne réseau qu’en ajoutant de la redondance. Pour atteindre cet objectif, des techniques telles que les codes d’effacement qui optimisent le compromis entre le coût de stockage et la tolérance aux pannes ont été utilisées dans les systèmes en production depuis de nombreuses années, bien qu’ils ne soient pas complètement adaptés aux environnements répartis.
    Seulement au cours de la dernière décennie, une multitude de techniques avancées adaptées aux systèmes répartis ont été développées. À titre d’exemple, Microsoft Azure déploie depuis 2012 un code avec des propriétés de reconstruction locale. Les architectes systèmes prennent désormais en compte des paramètres portant sur les coûts de maintenance en plus du coût de stockage et de la tolérance aux pannes, tels que la localité ou les coûts en bande passante et en lecture/écriture. Puisqu’il est impossible d’optimiser tout cela en même temps, le code optimal dépend de l’application concernée.
    Cette thèse s’inscrit dans ce domaine foisonnant de la recherche de codes optimaux dans les environnement répartis. D’abord, nous examinons différentes métriques ainsi que les techniques de codage de pointe qui satisfont à ces métriques. Ensuite, nous étudions comment la localité, c’est-à-dire le nombre de nœuds impliqués dans les opérations de reconstruction, influe sur l’utilisation de ressources. Par la suite, nous nous penchons sur le problème de la distribution des données et ses effets sur des propriétés critiques telles que la latence. Enfin, nous examinons comment l’enchevêtrement des données au-dessus d’un code d’effacement peut renforcer des propriétés du système comme la résistance à la censure et la fiabilité.
    Summary
    A huge quantity of data is generated and stored every day. Preeminent examples are the 300 million photos that get uploaded daily to Facebook or the 156 million emails sent every minute. Furthermore, it is remarkable that almost 90% of the data in the world has been generated in the last 2 years. This humongous quantity of data is typically hosted in data centres located in different geographic areas, and must be promptly served upon request. Hence, a paramount property for distributed storage systems is reliability, which can be guaranteed in case of failed or unavailable hardware or lack of network connectivity at the price of introducing redundancy in the system. To this aim, erasure coding techniques optimizing the storage overhead/fault tolerance tradeoff have been used in production systems for many years, even though they do not completely suit distributed environments.
    Only in the last decade, a number of advanced coding techniques tailored to distributed storage systems have been developed. As an example, Microsoft Azure deployed a local reconstruction code in 2012. System designers now consider maintenance-oriented metrics other than fault tolerance and storage overhead, specifically repair locality, repair bandwidth and disk I/O. As it is not possible to optimize all of them at once, the optimal code depends on the particular application.
    This quest of good codes for distributed storage systems has led to a very active research area in which this thesis can be framed. First, we examine the different efficiency metrics as well as state-of-the-art codes addressing them. We then focus on the study of how the repair locality, that is the number of nodes involved in repair operations, affects the use of distributed storage systems. Next, we investigate the problem of block placement in distributed environments and its effect on systems valuable properties such as the fetch latency. Finally, we study how to introduce data entanglement on top of wellknown coding schemes to enhance desirable features of the resulting system, i.e., anti-censorship and reliability.