Scalable and Efficient Data Management in Distributed Clouds: Service Provisioning and Data Processing
Total Page:16
File Type:pdf, Size:1020Kb
Scalable and Efficient Data Management in Distributed Clouds : Service Provisioning and Data Processing Jad Darrous To cite this version: Jad Darrous. Scalable and Efficient Data Management in Distributed Clouds : Service Provisioning and Data Processing. Distributed, Parallel, and Cluster Computing [cs.DC]. Université de Lyon, 2019. English. NNT : 2019LYSEN077. tel-02508592 HAL Id: tel-02508592 https://tel.archives-ouvertes.fr/tel-02508592 Submitted on 15 Mar 2020 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Numéro National de Thèse : 2019LYSEN077 THESE de DOCTORAT DE L’UNIVERSITE DE LYON opérée par l’Ecole Normale Supérieure de Lyon Ecole Doctorale N° 512 École Doctorale en Informatique et Mathématiques de Lyon Discipline : Informatique Soutenue publiquement le 17/12/2019, par : Jad DARROUS Scalable and Efficient Data Management in Distributed Clouds: Service Provisioning and Data Processing Gestion de données efficace et à grande échelle dans les clouds distribués : Déploiement de services et traitement de données Devant le jury composé de : SENS, Pierre Professeur Sorbonne Université Rapporteur PEREZ, Maria S. Professeure Universidad Politécnica de Madrid Rapporteure PIERRE, Guillaume Professeur Université de Rennes 1 Examinateur PASCAL-STOLF, Patricia Maître de Conférences IUT de Blagnac Examinatrice PEREZ, Christian Directeur de Recherche Inria Grenoble Rhône-Alpes Directeur de thèse IBRAHIM, Shadi Chargé de Recherche Inria Rennes Bretagne-Atlantique Co-encadrant de thèse Acknowledgements Reaching the point of writing this acknowledgment is the result of the help, encourage- ment, and support of many people around me that I would like to thank. I would like first to express my gratitude for the members of the jury: Guillaume Pierre and Patricia Pascal-Stolf as well as my evaluators Pierre Sens and Maria S. Perez for dedicating part of their valuable time to assess my work. I would like to express my sincere gratitude to Shadi Ibrahim. Shadi was more than an advisor, his efforts were invaluable for me during these three years scientifically and personally. I am more than happy to had the chance to work closely with him which gave me the prospect to grow as a researcher. I would like also to dedicate a big thanks to Christian Perez. Christian happily accepted to be my thesis director, provided me with ceaseless support, and taught me how to ask “metaphysical” questions without forgetting the smallest detail. Also, I would like to thank Gilles Fedak who advised me during the first year and was the first contact with my Ph.D. journey. During my Ph.D., I had the chance to work and interact with many amazing and brilliant people that I would like to thank. Special thanks go to my two co-authors of my two first papers, Amelie and Thomas, for the nice collaboration. Thanks to the members of DISCOVERY initiative for the interesting discussions and presentations. Many thanks go to the members of Stack and Avalon teams for the nice moments we spent together. Likewise, I would like to thank my friends that I have shared happy and pleasant moments with (in my remaining time!), especially Maha, Lisa, and Bachar. Last but not least, I would like to thank my beloved family for their continuous encouragement and support during this very special chapter of my academic life. In particular, I would like to thank my parents who have always believed in me. iii Abstract We are living in the era of Big Data where data is generated at an unprecedented pace from various sources all over the world. These data can be transformed into meaningful information that has a direct impact on our daily life. To cope with the tremendous volumes of Big Data, large-scale infrastructures and scalable data management techniques are needed. Cloud computing has been evolving as the de-facto platform for running data-intensive applications. Meanwhile, large-scale storage systems have been emerging to store and access data in cloud data centers. They run on top of thousands of machines to offer their aggregated storage capacities, in addition to providing reliable and fast data access. The distributed nature of the infrastructures and storage systems introduces an ideal platform to support Big Data analytics frameworks such as Hadoop or Spark to efficiently run data-intensive applications. In this thesis, we focus on scalable and efficient data management for building and running data-intensive applications. We first study the management of virtual machine images and containers images as the main entry point for efficient service provisioning. Accordingly, we design, implement and evaluate Nitro, a novel VMI management system that helps to minimize the transfer time of VMIs over a heterogeneous wide area network (WAN). In addition, we present two container image placement algorithms which aim to reduce the maximum retrieval time of container images in Edge infrastructures. Second, towards efficient Big Data processing in the cloud, we investigate erasure coding (EC) as a scalable yet cost-efficient alternative for replication in data-intensive clusters. In particular, we conduct experiments to thoroughly understand the performance of data- intensive applications under replication and EC. We identify that data reads under EC are skewed and can result in noticeable performance degradation of data-intensive applica- tions. We then introduce an EC-aware data placement algorithm that targets balancing data accesses across nodes and therefore improving the performance of data-intensive applications under EC. v Résumé Si nous stockions tous les mots jamais prononcés par l’être humain, leur volume serait égale à celui des données générées en seulement deux jours1. Le dernier rapport de l’International Data Corporation (IDC) prévoit même que les données générées dépassent les 175 zettaoctets2 d’ici à 2025 [130]. Ces données sont produites par diverses sources telles que des capteurs, des médias sociaux ou des simulations scientifiques. Ce flot de données permet aux entreprises et aux universités d’améliorer leurs services et leurs connaissances qui ont un impact direct sur nos vies. Par exemple, les grandes sociétés Internet telles que Google et Facebook analysent les données recueillies quotidiennement pour améliorer l’expérience des utilisateurs, tandis que des instituts de recherche comme le Laboratoire National d’Argonne effectuent des simulations complexes pour repousser les limites du savoir humain [255]. Il est donc indispensable de permettre une gestion des données efficace à grande échelle pour transformer ces gigantesques volumes de données en informations utilisables. Pour faire face à l’énorme volume de données (ce qu’on appelle le “Big Data”), des infrastructures et des techniques de gestion de données à grande échelle sont néces- saires. De fait, les centres de calculs sont devenus les plate-formes privilégiées pour l’exécution d’applications de type « Big Data ». les centres de calculs donnent l’illusion de ressources infinies auxquelles on peut accéder à bas prix. Récemment, des fournisseurs d’informatique en cloud tels qu’Amazon, Microsoft et Google ont doté leurs infrastruc- tures de millions de serveurs répartis dans le monde entier pour faciliter la gestion des données massives. Par exemple, Amazon Web Services (AWS) compte au total près de 5 millions de serveurs [144], hébergés dans des centaines de centres de données répartis sur 5 continents [26], et des millions de services y sont lancés tous les jours [35]. D’autre part, des systèmes de stockage à grande échelle sont apparus pour stocker et accéder aux données dans ces centres de données. Ils fonctionnent sur des milliers de machines offrant leurs capacités de stockage agrégées, en plus de fournir un accès fiable et rapide aux don- nées. Par exemple, le système cloud Windows Azure Storage (WAS) héberge plus d’un exaoctet de données [123] et traite plus de deux milliards de transactions par jour [45]. La nature distribuée des infrastructures et des systèmes de stockage en fait une plate-forme idéale pour prendre en charge les infrastructures logicielles d’analyse Big Data telles que Hadoop [19] ou Spark [20] pour exécuter efficacement des applications de type « Big Data ». Par exemple, plus d’un million de tâche Hadoop, traitant des dizaines de pétaoctets de données, sont lancés chaque mois dans les centres de données de Facebook [49]. En général, les services cloud, y compris les services d’analyse de données (p. ex. 1On estime que 2,5 exaoctets sont produits chaque jour [117] et que tous les mots jamais prononcés par l’être humain ont une taille de 5 exaoctets [116]. 21 zettaoctet équivaut à 1021 octets, soit 1 million de pétaoctets. vii Amazon Elastic MapReduce [14] ou Microsoft Azure HDInsight [112]), sont déployés en tant que machines virtuelles (VM, virtual machine) ou conteneurs. Le déploiement d’un service pour exécuter des applications cloud nécessite que l’image du service (une image qui encapsule le système d’exploitation et le logiciel du service ainsi que ses dépendances) soit stockée localement sur le serveur hôte. Sinon, l’image correspondante est transférée via le réseau vers le serveur de destination, ce qui introduit un délai dans le temps de déploiement. La demande croissante de fourniture rapide de services, en plus de la taille et du nombre croissants d’images de services (p. ex. AWS fournit plus de 20 000 images différentes3, et leurs tailles atteignent des dizaines de gigaoctets [35, 258]) rendent la gestion des images de service essentielle pour la déploiement de services dans le cloud.