Please use this identifier to cite or link to this item:
https://hdl.handle.net/1822/84184
Title: | Automatic parameter tuning using reinforcement learning |
Author(s): | Ferreira, Luís Manuel Meruje |
Advisor(s): | Coelho, Fábio André Castanheira Luís Pereira, José |
Keywords: | Reinforcement learning Distributed databases Middleware Optimization Machine learning Aprendizagem por reforço Bases de dados distribuídas Otimização Aprendizagem máquina |
Issue date: | 10-Dec-2020 |
Abstract(s): | Every major Database Management System (DBMS) and most components in a distributed
system in use today, closed or open source, comprise a set of configuration parameters which
have substantial influence over the performance of the system. The correct configuration and
tuning of these parameters often leads to a performance level that is orders of magnitude
greater than that achieved by default configurations.
The number of parameters tends to increase as new versions are released. Moreover, the
optimal values for these parameters vary with the environment, namely the workload to
which the system is being subjected to, and the physical characteristics of the hardware it is
running on.
It is common to delegate the responsibility of parameter tuning to a system administrator.
The problem with this approach is that it requires both extensive prior experience with
the specific system and workload at hand, and a large amount of the administrator’s time.
Moreover, variables may establish extensive and non-trivial correlations between them that
are very difficult to identify and tune.
This dissertation introduces an automated and dynamic approach to parameter tuning
using a reinforcement learning approach, while also adopting the use of deep neural
networks to tackle the fact that complex relations between variables may exist.
Two use cases were implemented to showcase our approach, in the context of a distributed
database. One where we adjust tuning variables specific to each replica and another where
we adjust the shard configuration of the cluster (i.e. what shard is allocated to what replica).
The reinforcement learning agents act at the middleware level, where all replication logic is
held. The performance was measured in terms of the reward achieved by those agents as
well as the values for the individual performance metrics that make up that reward. For
the use case that concerns individual replica configurations, a maximum gain in reward of
105.41% was observed in one of the replicas as well as a maximum gain of 484.31% in one of
the individual performance metrics. In the second scenario, of shard reallocation, we saw
improvements in reward value up to 28.72% and of up to 69.92% for individual metrics. Todos os principais sistemas de gestão de bases de dados, bem como a maioria dos componentes que são parte constituinte de um sistema distribuído em uso atualmente, licenciados ou abertos, incluem um conjunto de parâmetros de configuração que demonstram ter uma influência substancial sobre o desempenho do sistema. A correta configuração e ajuste destes parâmetros leva frequentemente a níveis de desempenho que podem ser ordens de magnitude acima do que os que são atingidos por configurações pré-definidas. O número de parâmetros tem tendência a aumentar à medida que novas versões são lançadas. Para além disso, os valores ótimos para estas variáveis tendem a variar com o contexto de execução, nomeadamente a carga de trabalho a que o sistema está a ser sujeito, e as características do hardware em que está a ser executado. É comum delegar a tarefa de ajuste dos parâmetros de configuração ao administrador do sistema. O problema com esta abordagem é que esta tarefa requer, por um lado, uma vasta experiência com o workload e sistema a ser configurado, e por outro, uma porção considerável do tempo do administrador. Para além disso, as variáveis podem estabelecer correlações complexas entre si que podem ser muito difíceis de identificar e compreender. Esta dissertação apresenta uma abordagem automatizada e dinâmica para o ajuste de variáveis de configuração, recorrendo para isso a técnicas de aprendizagem por reforço e combinando estas com o uso de redes neuronais para abordar o problema de identificação de correlações entre variáveis. Dois casos de estudo foram implementados para demonstrar a abordagem no contexto de uma base de dados distribuída. Um, em que são ajustados parâmetros de configuração individuais a cada réplica e outro onde se ajusta a configuração de shards do cluster (i.e. a que réplica está alocado cada shard). Os agentes de aprendizagem por reforço atuam ao nível de um middleware, onde é tratada toda a lógica de replicação. O desempenho foi medido em termos da recompensa alcançada pelos agentes assim como pelos valores das métricas individuais de desempenho que compõem essa recompensa. Para o caso de estudo relativo às configurações individuais de cada réplica foi observado um ganho máximo de 105.41% no valor da recompensa e um ganho máximo de 484.31% no valor de uma das métricas individuais. No caso de estudo de realocação de shards, foram observados ganhos no valor de recompensa de até 28.72% e 69.92% para métricas individuais. |
Type: | Master thesis |
Description: | Dissertação de mestrado integrado em Informatics Engineering |
URI: | https://hdl.handle.net/1822/84184 |
Access: | Open access |
Appears in Collections: | BUM - Dissertações de Mestrado DI - Dissertações de Mestrado |
Files in This Item:
File | Description | Size | Format | |
---|---|---|---|---|
Luis Manuel Meruje Ferreira.pdf | 4,63 MB | Adobe PDF | View/Open |
This item is licensed under a Creative Commons License