Task distribution framework using Zookeeper: using hierarchical state machines to design and implement Zookeeper recipes
Tutor / Supervisor
Montelius, Johan
Student
Yera Gomez, Albert
Document type
Master thesis (pre-Bologna period)
Date
2013
rights
Open Access
Publisher
Universitat Politècnica de Catalunya.
UPCommons
Abstract
[ANGLÈS] To develop a distributed system is not an easy task. Not only do we need to understand the problems that may arise and solve them, but also we need to know how to implement them. The first part of the thesis tries to build some general knowledge about distributed systems. The second part shows how to use the ZeroMQ library in order to create an actor library for C++ and how to use the Zookeeper service in order to implement reliable distributed systems. The main contribution of this thesis is a novel method which uses hierarchical extended state machines in order to improve how to model Zookeeper's algorithms. As a proof of concept, an internet scale task distribution framework is described and prototyped. However, everything started in the reverse order. The purpose of the thesis was to create a task distribution framework, and things were discovered while trying to develop it.
[CASTELLÀ] Desarrollar un sistema distribuido no es un trabajo fácil. No es suficiente con entender y resolver los posibles problemas que puedan aparecer. También es necesario saber cómo implementar la solución escogida. La primera parte de esta tesis intenta explicar ideas básicas sobre sistemas distribuidos. La segunda parte trata sobre como utilizar la librería ZeroMQ para implementar un framework de actores en C++ y como utilizar el servicio de coordinación Zookeeper para implementar un sistema distribuido tolerante a fallos. La contribución principal de esta tesis es un nuevo método que utiliza máquinas de estado jerárquicas extendidas para modelar algoritmos de Zookeeper. Como prueba de concepto, se describe y se desarrolla un prototipo de un sistema de distribución de tareas de gran escala (Internet).
[CATALÀ] Desenvolupar un sistema distribuït no és una tasca fàcil. Entendre i resoldre els problemes que poden aparèixer no és suficient, cal també saber com implementar la solució escollida. La primera part d'aquesta tesi intenta explicar coneixements I idees bàsiques sobre sistemes distribuïts. La segona part tracta sobre com utilitzar la llibreria ZeroMQ per tal de crear un framework d'actors en C++ i com utilitzar el servei de coordinació Zookeeper per implementar un sistema distribuït tolerant a fallades. La contribució principal d'aquest treball és un nou mètode que utilitza màquines d'estat jeràrquiques exteses per modelar algoritmes de Zookeeper. Com a prova de concepte, es descriu i es desenvolupa un prototip d'un sistema de distribució de tasques de gran escala (Internet).
Entitat col·laboradora
Kungliga Tekniska högskolan

Participating teacher
- Montelius, Johan