我们实验室与阿里云PolarDB团队合作的内存分离式数据库LegoBase被数据库系统顶会VLDB收录。向各位参与研究工作的老师、同学、合作者表示祝贺。
论文题目:
Towards Cost-Effective and Elastic Cloud Database Deployment via Memory Disaggregation
论文摘要:
云原生关系型数据库吸引越来越多的应用迁移到云平台。其中,一个重要的挑战是要满足应用不断增长的独立且灵活地扩展计算和内存资源的需求。最近,依赖于高速RDMA网络的内存分离架构的出现为构建具有成本效益的,弹性的云原生数据库提供了可能性。这些现存的分离式方案,旨在让应用不需要修改代码就可以透明地运行在内存分离架构上。但是,当数据库内核运行在这类架构上时,数据库会遇到明显的性能下降和费时的故障恢复,从而抵消了分离式架构的优势。
为了解决这些挑战,在本文中,我们提出了一种新颖的数据库架构LegoBase。该架构探讨了数据库内核和内存分解的协同设计。它将内存管理推回到数据库层,以绕开Linux I/O堆栈,并在了解数据访问模式的情况下重新使用或设计(远程)内存访问优化。LegoBase进一步拆分了传统的ARIES容错协议,以独立处理本地和远程内存故障,从而快速恢复计算实例。我们在MySQL之上实现了LegoBase。我们将LegoBase、单机模式的MySQL和最新的分离式架构Infiniswap进行了比较。我们的评估表明,即使将大量数据放在远程内存上,LegoBase的系统性能在吞吐量(最多下降9.41%)和P99延迟(最多上升11.58%)方面也可与单机MySQL设置相媲美,并且明显优于运行在Infiniswap上的MySQL部署。同时,当处理故障或预先计划的数据库重新配置时,在所需的故障恢复和重新预热时间方面,相较于单机MySQL和运行于Infiniswap的MySQL,LegoBase分别提供了高达3.87倍和5.48倍的加速比。