再精妙的程序,最终都要由计算机系统的底层来承载,这个底层就是由各种真实可见的材料组成的硬件,而硬件技术的不断发展也是数据库系统演进的持续推动力。
近些年,在互联网软件翻天覆地的同时,硬件领域也在不断突破,随着多核多处理器、闪存以及非易失存储(NVM)理论发展和产品推进,腾讯云数据库开始重新思考在新型存储下的数据库产品存储架构。
在2020年全球闪存峰会FMW(Flash Memory World)闪存与创新行业应用分论坛中,腾讯云CDB/CynosDB高级工程师李昕龙分享了腾讯云CDB/CynosDB在引入NVM后的调整和创新:基于NVM设计的数据库产品MySQL(CDB)8.0,详细介绍与NVM相关的MySQL 8.0内核新特性的设计与实现,并展望基于NVM的数据库产品技术演进之路。
一、Why NVM?
首先,我们为什么要用NVM(非易失存储)?当下硬件存储的面临着两个问题,一方面是存储的体系结构还不算完善,另一方面单元逻辑和需求的快速增长和存储的进化速度放缓存在矛盾,而新存储(非易失存储)和传统硬件存储对比,有着延迟低、功率小、擦写次数高以及非易失存储等优良特性。简单来说,NVM的出现解决了当下硬件存储感到棘手的问题。
二、软硬一体化的探索
在这样的背景下,腾讯云数据库的研发团队开始了基于英特尔的非易失产品AEP来优化腾讯云MySQL和CynosDB的探索,在经过一年多的探索后,探索出包括CPU访问调度方式和硬件访问粒度在内的对AEP硬件的最佳访问模式。
在对腾讯云MySQL的内核CDB的优化上,腾讯云数据库研发团队提出了基于AEP设备的数据优化方法,此外还申请了2篇专利,工程师使用硬件直接访问技术和CPU就近调度算法,对CDB的物理日志系统和逻辑日志系统进行优化,在多种写场景下的数据库性能都得到了大幅提升,在极端的主备强同步场景中,性能甚至可以提升22倍,这些优化在MySQL 8.0上均实现了产品化。基于AEP的MySQL 8.0版本,在性能相对于基于SSD的MySQL 8.0,单节点性能提升10%,主备异步性能提升50%,主备同步性能提升60%.
在CynosDB上,使用对AEP的硬件直接访问技术,提出了面向计算存储分离架构数据库的计算节点本地缓存方案,优化CynosDB的页面访问性能;同时还优化了CynosDB的可用性,在重启掉电等故障场景下,保证CynosDB的本地缓存仍然可用。
三、新征途,未来已来
在未来,CDB内核的终极演化很有可能是把数据放到Persistent Memory上面,这样可以打破内存和磁盘的边界,存储架构分为两级且均为NVM,一级是PM,二级则是SSD,页面直接可以写入PM,当PM存储不够时使用SSD拓展,这样的架构可以快速重启和极速写入。
当然,前方还存在着诸多的限制和未知,目前新存储硬件的发展仍存在自己的局限性,而腾讯云数据库勇于探索的步伐不会停止,始终坚持着软硬一体结合的技术探索,为客户不断创造更多的价值。
腾讯云架平数据库团队
特惠体验云数据库
↓↓更多惊喜优惠请点这儿~