非易失性内存友好的线性哈希索引
——NVM-LH
2021-03-18*
*
(1.中国科学技术大学计算机科学与技术学院,合肥 230001;2.中国人民解放军31002部队,北京 100081)
0 引言
在过去的数十年中,由于存储密度的限制,动态随机访问内存(Dynamic Random Access Memory,DRAM)的容量始终无法超越64 GB,不能满足大数据应用对大容量内存的需求。近年来,非易失性内存(Non-Volatile Memory,NVM)得到了快速发展。特别是Intel 于2019 年4 月推出了单条512 GB 的傲腾非易失内存(Intel Optane DC Persistent Memory),支持8 TB的单机最大NVM 内存,为实现面向大数据实时存取的内存数据库系统提供了有力的支持。在此背景下,如何使得数据库技术(包括索引、缓存管理、查询处理、事务管理等)能够适应引入NVM 之后的数据库系统,成为近些年国内外的研究热点。
与DRAM 相比,NVM 的密度更高,容量更大,但同时也具有读快写慢、写次数有限等限制[1],因此传统数据库算法直接运行在NVM 上往往会导致较多的随机写操作,不仅会影响性能,也会影响NVM的使用寿命,因此需要重新进行设计。
索引是数据库系统保证存取性能的重要技术。由于NVM 引入后人们希望构建纯内存的数据库系统来支持大数据应用,因此,未来基于NVM 的NoSQL数据库系统(例如键值数据库、列存储数据库等)将是一个主要的发展趋势。NoSQL数据库系统通常要求索引能够支持Put、Get等操作,但对范围查询、连接查询等一般不做要求,因此适合采用哈希索引。在哈希索引中,线性哈希索引因其良好的点查询效率、空间代价以及低维护成本而被广泛使用于数据库系统中。但是,传统的线性哈希索引并不能直接应用于NVM。首先,由于NVM具有写慢读快的特点,并且写次数也有限制,这与传统DRAM读写均衡以及写次数不受限有着较大的区别,而传统的线性哈希索引并未考虑NVM 的这一特性;……
