Carlos Carvalheira
Master in Informatics and Computing Engineering
Scalable High-Performance Platform for e-Science
Carlos Miguel Morais Moreira de Sousa Carvalheira
—
Abstract
Research data management is increasing in importance due to the research value that lies in the truly huge amounts of data collected during scientific investigation.
Technological advances and proliferation of cheaper hardware components has led to the creation and usage of vast networks of computers working cooperatively in distributed systems, with the current technological trend being the cloud. This work proposes a scalable architecture that is capable of meeting the demands of large-scale data storage and processing of datasets. Its data model suits the research data management platform to the needs of a variety of scientific fields of study, so long as the data is in the form of a time series.
To allow for this abstraction, we implemented an HTTP API which separates the internal workings of the platform from the business logic of the particular field of science it is used for. This business logic and presentation layer is outside the scope of this work. The API hides the complexity and scalable nature of the platform, simplifying the design of the business logic applications. In addition to storing it, data may also be processed according to standard procedures so as to expedite the scientific process undertaken by researchers. Automated field agents collect scientific measurements and upload them to the platform for processing and archiving. Custom map-reduce jobs ingest the raw data and store the derived data in the platform for future reference. All of the artifacts managed by the platform may be connected together using typed links in triple structures of the form subject-predicate-object. This allows for easier data discovery, both by automated users as well as human users. We also implemented a configuration management solution that automates and manages node deployment, with each node having different roles. In this work we also present and implement a novel approach to decentralized service discovery and load balancing, instead of the traditional centralized approach.
When performing load tests we achieved a combination of components that approximates an optimal resource usage related to the amount of load introduced. We found the main bottlenecks of the platform at various configurations and load profiles, as well as what hardware most influences each component of the system. This informs administrators as to what the optimal combination of resources is as features are introduced, bugs corrected and optimizations implemented. Future work should be directed to the study and implementation of autoscaling features in order to further automate the configuration and management of the platform. The load profiles, data and custom procedures implemented were artificial in nature and approximate expected production conditions. Testing the platform with production data will deliver better results than with artificial data.
Resumo
A gestão de dados de pesquisa científica tem crescido em importância devido ao valor existente nas enormes quantidades de dados recolhidos durante a investigação científica.
Os avanços tecnológicos e a proliferação de hardware mais barato levou à criação e utilização de grandes redes de computadores que trabalham cooperativamente em sistemas distribuídos, sendo a actual tendência tecnológica a cloud. Este trabalho propõe uma arquitectura escalável capaz de cumprir a procura de armazenamento e processamento de dados em larga escala. O modelo de dados é apropriado para várias áreas de estudo científico, desde que os dados estejam na forma de séries temporais.
Implementámos uma API HTTP que abstrai e separa o funcionamento interno da plataforma da lógica de negócio da área de estudo para o qual é usada. A lógica de negócio e a interface com o utilizador estão fora do âmbito deste trabaho. A API esconde a complexidade e escalabilidade da plataforma, simplificando o design das aplicações de lógica de negócio. Além de armazenados, os dados podem ser processados de acordo com procedimentos standard de forma a acelerar o processo científico. Agentes automatizados recolhem dados científicos no campo e armazenam-nos na plataforma para processamento e armazenamento. Trabalhos map-reduce processam os dados em bruto e guardam os dados derivados na plataforma para uso futuro. Todos os artefactos geridos pela plataforma podem ser ligados entre si através de estruturas de triplos da forma sujeito-predicado-objecto. Isto facilita a procura de informação, tanto por utilizadores automatizados como humanos. Também implementámos uma solução de gestão de configurações que automatiza e gere os vários recursos de hardware, tendo cada nó de computação um papel diferente. Neste trabalho apresentámos e implementámos uma abordagem nova de descoberta de serviços e balanceamento de carga descentralizada, contrastando com a abordagem tradicional centralizada.
Ao fazermos testes de carga, chegámos a uma combinação de componentes que aproxima uma utilização óptima de recursos, relativo à quantidade de carga introduzida. Encontrámos os bottlenecks principais da plataforma relativamente às diversas configurações e perfis de carga introduzidos, além de qual o hardware que mais influencia cada componente do sistema. Isto informa os administradores sobre qual a combinação de recursos óptima à medida que são introduzidas funcionalidades, corrigidos bugs e implementadas optimizações. Trabalho futuro deverá ser di- reccionado para o estudo e a implementação de autoscaling de forma a automatizar ainda mais a configuração e gestão da plataforma. Os perfis de carga, dados e procedimentos foram artificiais e aproximam as condições esperadas em produção. Testar a plataforma com dados de produção deverá trazer melhores resultados do que com dados artificiais.
Jury
- Chair: Miguel Pimenta Monteiro
- External Examiner: António Sousa
- Supervisor: João Correia Lopes
- Date: 17/07/2014