Title: | Efficient log compaction by safely discarding commands |
Author: | Xavier, Luiz Gustavo Coutinho |
Abstract: |
Logs são amplamente utilizados no desenvolvimento de aplicações distribuídas tolerantes à falhas. Ao registrar entradas em um log global sequencial, diferentes sistemas podem sincronizar atualizações em réplicas distribuídas e fornecer uma recuperação de estado consistente mesmo na presença de falhas. No entanto, logs são responsáveis por uma sobrecarga significativa no desempenho de aplicações tolerantes a falhas, e muitos estudos apresentam alternativas para aliviar servidores de tais custos. Nesta dissertação é apresentada uma abordagem para acelerar recuperação de estado em protocolos baseados em log ao seguramente descartar comandos. A técnica envolve a utilização de um procedimento de compactação de log em tempo de execução, executado de forma concorrente com a persistência e execução de comandos. Além de compactar o log, a técnica proposta o divide em diferentes arquivos, e incorpora estratégias para reduzir a sobrecarga gerada pelo uso de logs, como explorar o agrupamento de comandos em lotes e E/S paralela. Avaliamos a abordagem proposta em dois ambientes distintos: (i) em um ambiente controlado, avaliando nossa solução em protótipo de base de dados chave-valor implementando uma estratégia de log padrão; e (ii) em um ambiente mais realista, implementando nossa abordagem como uma nova funcionalidade do etcd, um banco de dados comercial conhecido na indústria, e comparando-a com sua implementação de log padrão. Utilizando cargas de trabalho do YCSB e explorando diferentes configurações para nossa técnica, como variações no tamanho de lote e número de dispositivos de armazenamento, os resultados demonstram que nossa abordagem de compactação é capaz de reduzir significativamente o tempo de recuperação da aplicação. Em cargas de trabalho onde o acesso a chaves recentes é estimulado, é demonstrado uma redução de até 50% no tamanho do log com uma melhora de 65% no tempo de recuperação quando comparado com o protocolo de recuperação padrão do etcd. Em questão de desempenho, com exceção de um aumento de latência devido à abordagem de lotes implementada, nenhuma outra sobrecarga relevante foi observada. Abstract: Logs are crucial to the development of dependable distributed applications. By logging entries on a sequential global log, systems can synchronize updates over distributed replicas and provide a consistent state recovery in the presence of faults. However, logs account for a significant overhead on fault-tolerant applications? performance, and many studies present alternatives to alleviate servers from such costs. In this dissertation we propose an approach to accelerate recovery on log-based protocols by safely discarding entries from logs. The technique involves the execution of a compaction procedure during run-time, concurrently with the persistence and execution of commands. Besides compacting logging information, the proposed technique also splits the log into several files and incorporates strategies to reduce logging overhead, such as batching and parallel I/O. We evaluate the proposed approach under two distinct setups: (i) on a controlled environment, by comparing against a key-value store prototype implementing a standard logging scheme; and (ii) on a more realistic scenario, by implementing our approach as a new feature of etcd, a known commercial database in the industry, and comparing it against the database?s standard logging implementation. Utilizing workloads from YCSB and exploring different configurations for our technique, such as batch size and number of storage devices, results demonstrate that our compaction approach is capable to significantly reduce the application?s recovery time. On workloads where the access to the most recent updated keys is stimulated, we reach up to a 50% compaction on the log file size with a 65% improvement in recovery time when compared to etcd?s standard recovery protocol. In terms of performance, with the exception of a latency increase due to the implemented batching approach, no other relevant overhead was perceived. |
Description: | Dissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico, Programa de Pós-Graduação em Ciência da Computação, Florianópolis, 2023. |
URI: | https://repositorio.ufsc.br/handle/123456789/247592 |
Date: | 2023 |
Files | Size | Format | View |
---|---|---|---|
PGCC1235-D.pdf | 3.603Mb |
View/ |