近日,信息学院王春东课题组本科生党浩然的一作论文被国际知名学术会议Design Automation Conference(中国计算机学会推荐的A类会议)接收。论文提出一种面向固态硬盘(SSD)的新型LSM树键值数据库系统NobLSM,有效解决了数据反复同步到固态硬盘产生的性能瓶颈问题,可显著提升键值数据库读写性能。
数据库系统为了保证数据的安全性和一致性,需要在每次文件操作后立刻进行同步操作,将内存中缓存的数据写回到SSD等存储介质。这在使用LSM树结构的数据库上尤为明显:为了维护LSM树的结构,数据库需要反复进行“压缩”操作,这一过程会对同一份数据在多个文件之间移动并反复进行同步,进而造成性能瓶颈,甚至阻塞客户请求,影响数据库性能和服务体验。
本论文提出的数据库系统NobLSM通过数据库和日志文件系统协作,仅需在新的键值数据写入硬盘时进行一次同步,成功去除了反复的同步数据。之后涉及前述压缩操作时,NobLSM记录新旧文件之间的对应关系,利用文件系统日志特性,将数据搬入的新文件异步写硬盘,并将对旧文件的删除延迟到新文件写入完成之后进行。这一设计巧妙地避免了对同一数据移动时的反复同步,再次移动数据只需写入缓存便可继续进行其它操作。通过在LevelDB数据库和Ext4文件系统总计达数万行代码中对330余行代码的精准增改,可使数据库吞吐量几近翻一番,效果显著。多次在真实计算机上的掉电实测表明,NobLSM具备和原始LevelDB等同的可靠性。
图|NobLSM键值数据库工作原理示意
本论文由王春东课题组独立完成,信息学院2018级本科生党浩然为本论文第一作者,硕士生叶崇南和胡岩鹏为共同作者,王春东教授为通讯作者。上海科技大学为唯一完成单位。