ETERNAL: Uma estratégia eficiente de tolerância a falhas utilizando memória não volátil
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.
Referências
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