ETERNAL: Uma estratégia eficiente de tolerância a falhas utilizando memória não volátil

  • Davi B. Gomes UFC
  • Angelo Brayner UFC
  • Javam C. Machado UFC

Resumo


SGBDs em memória principal têm se mostrado como alternativa eficiente para o gerenciamento de grandes volumes de dados. Eles caracterizam-se por utilizar memória RAM como seu meio de armazenamento primário. No entanto, tais sistemas precisam de armazenamento não-volátil para garantir a durabilidade de suas transações. Memórias não-voláteis endereçáveis por byte (NVRAM) são candidatas ideais para assegurar tal propriedade, pois possuem tempo de acesso próximo ao de memória RAM tradicional, mas ainda assim garantem a persistência dos dados. A fim de atacar o problema da durabilidade de transações em SGBDs em memória, este trabalho propõe ETERNAL, uma arquitetura de durabilidade que faz o uso eficiente de memória não-volátil, melhorando o desempenho do processo de persistência em tais SGBDs. Os experimentos revelam que ETERNAL provê um throughput superior a abordagem de escrita antecipada em log (WAL). Destaca-se ainda o fato, que, mesmo utilizando memória não-volátil como meio de armazenamento, a abordagem WAL não possui um mecanismo para lidar com o cenário em que a memória não volátil se esgota.

Palavras-chave: SGBD In-memory, armazenamento não volátil, transações, performance de persistência

Referências

Amora, P. R. P., Teixeira, E. M., Praciano, F. D. B. S., and Machado, J. C. (2018). Smartltm: Smart larger-than-memory storage for hybrid database systems. In XXXIII Simpósio Brasileiro de Banco de Dados, SBBD 2018, Rio de Janeiro, RJ, Brazil, August 25-26, 2018., pages 13–24.

Arulraj, J. and Pavlo, A. (2017). How to build a non-volatile memory database management system. In Proceedings of the 2017 ACM International Conference on Management of Data, pages 1753–1758. ACM. DOI: https://doi.org/10.1145/3035918.3054780

Arulraj, J., Perron, M., and Pavlo, A. (2016). Write-behind logging. Proceedings of the VLDB Endowment, 10(4):337–348. DOI: https://doi.org/10.14778/3025111.3025116

Balcer, P. (2017). http://pmem.io/2015/06/15/transactions.html. Acessado em: 27/05/2019.

Cooper, B. F., Silberstein, A., Tam, E., Ramakrishnan, R., and Sears, R. (2010). Benchmarking cloud serving systems with ycsb. In Proceedings of the 1st ACM symposium on Cloud computing, pages 143–154. ACM. DOI: https://doi.org/10.1145/1807128.1807152

DeBrabant, J., Pavlo, A., Tu, S., Stonebraker, M., and Zdonik, S. (2013). Anti-caching: A new approach to database management system architecture. Proceedings of the VLDB Endowment, 6(14):1942–1953. DOI: https://doi.org/10.14778/2556549.2556575

Diaconu, C., Freedman, C., Ismert, E., Larson, P.-A., Mittal, P., Stonecipher, R., Verma, N., and Zwilling, M. (2013). Hekaton: Sql server’s memory-optimized oltp engine. In Proceedings of the 2013 ACM SIGMOD International Conference on Management of Data, pages 1243–1254. ACM. DOI: https://doi.org/10.1145/2463676.2463710

Eldawy, A., Levandoski, J., and Larson, P.-Å. (2014). Trekking through siberia: Managing cold data in a memory-optimized database. Proceedings of the VLDB Endowment, 7(11):931–942. DOI: https://doi.org/10.14778/2732967.2732968

Faerber, F., Kemper, A., Larson, P.-Å., Levandoski, J., Neumann, T., Pavlo, A., et al. (2017). Main memory database systems. Foundations and Trends_R in Databases, 8(1-2):1–130. DOI: https://doi.org/10.1561/1900000058

Gomes, D. B. (2019). https://github.com/davibrg/nvrec_ycsb. Acessado em: 26/08/2019.

Huang, J., Schwan, K., and Qureshi, M. K. (2014). Nvram-aware logging in transaction systems. Proceedings of the VLDB Endowment, 8(4):389–400. DOI: https://doi.org/10.14778/2735496.2735502

Kimura, H. (2015). Foedus: Oltp engine for a thousand cores and nvram. In Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data, pages 691–706. ACM. DOI: https://doi.org/10.1145/2723372.2746480

Maciejewski, M. (2017). https://pmem.io/2016/02/22/pm-emulation.html. Acessado em: 27/05/2019.

Malviya, N., Weisberg, A., Madden, S., and Stonebraker, M. (2014). Rethinking main memory oltp recovery. In 2014 IEEE 30th International Conference on Data Engineering, pages 604–615. IEEE. DOI: https://doi.org/10.1109/ICDE.2014.6816685

Mohan, C., Haderle, D., Lindsay, B., Pirahesh, H., and Schwarz, P. (1992). Aries: a transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging. ACM Transactions on Database Systems (TODS), 17(1):94–162. DOI: https://doi.org/10.1145/128765.128770
Publicado
07/10/2019
Como Citar

Selecione um Formato
GOMES, Davi B.; BRAYNER, Angelo; MACHADO, Javam C.. ETERNAL: Uma estratégia eficiente de tolerância a falhas utilizando memória não volátil. In: SIMPÓSIO BRASILEIRO DE BANCO DE DADOS (SBBD), 34. , 2019, Fortaleza. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2019 . p. 97-108. ISSN 2763-8979. DOI: https://doi.org/10.5753/sbbd.2019.8811.