面向混合DRAM-NVM主存的联机事务型数据库系统技术方案

技术编号:27935546 阅读:17 留言:0更新日期:2021-04-02 14:15
本发明专利技术提出一种面向混合DRAM‑NVM主存的联机事务型数据库系统,包括:用于缓存数据的DRAM和用于持久存储数据的NVM;NVM通过第一数据表记录NVM中存储的多个数据元组,用于事务处理并发控制的元信息仅保存在DRAM中,即NVM中该数据元组不保存并发控制的元信息,根据访问任务将该数据元组以元组为粒度缓存至DRAM,且在数据元组缓存至DRAM时为每个数据元组增加并发控制元信息,DRAM通过第二数据表记录数据元组及其对应的并发控制元信息;该联机事务型数据库系统还包括混合数据表,该混合数据表包括该第一数据表、该第二数据表,以及用于管理该第一数据表和第二数据表的管理模块。

【技术实现步骤摘要】
面向混合DRAM-NVM主存的联机事务型数据库系统
本专利技术涉及数据库处理
,并特别涉及一种面向混合DRAM-NVM主存的联机事务型数据库系统。
技术介绍
新一代非易失性存储器(NVM)是一种新型存储技术,是对现有DRAM(动态随机存储器)主存技术的替代或补充。当前的集成电路特征尺寸已经达到5nm,DRAM技术继续向下扩展至更小的特征尺寸存在巨大的挑战。新一代NVM技术通过改变存储介质的电阻来存储0/1,可以支持更小的特征尺寸,为上述问题提供了一种可行的解决方案。新一代NVM技术包括相变存储器(PCM),自旋转移扭矩磁性随机存取存储器(STT-MRAM)和忆阻器(Memristor),3DXPoint等。与DRAM技术相比,NVM技术具有下述特点。(1)NVM的读写性能与DRAM相近,但是比DRAM慢。(2)NVM的写比读性能差,功耗高,而且写有次数的限制,即同一个存储单元写的次数超过某个阈值,存储单元就会损坏。(3)写入NVM的数据在掉电后不消失,而掉电后DRAM和CPUCache中的数据将会消失。(4)为了保证CPUCache中的内容写回NVM,需要执行clwb/clflush/clflushopt等cachelineflush指令和sfence/mfence等内存操作排序指令,这些特殊指令的性能代价比普通写高(例如10倍)。(5)CPU访问NVM的基本单元是一个Cacheline(例如64B)。(6)NVM模块内部的访问基本单元可能比Cacheline大(例如IntelOptaneDCPersistentMemory内部的访问单元是256B)。与闪存相比,NVM技术的性能高至少2个数量级,而且NVM允许在原位置写,而不需要类似闪存的擦除等操作。因此,NVM技术的使用特征更加接近于DRAM,被视作对DRAM主存技术的一种替代或补充。基于DRAM的内存数据库技术已经成为数据库领域的主流技术,在Oracle,MSSQLServer,SAPHANA主流商用数据库产品中,都包括了内存数据库引擎。例如,Hekaton是MSSQLServer中的事务处理内存数据库引擎,SAPHANA内存数据库支持事务处理。相比传统磁盘数据库使用两段锁协议(2PL),支持联机事务处理的内存数据库倾向使用乐观并发控制(OCC)和多版本并发控制(MVCC)以获得高吞吐量。这两种方法预期事务间冲突较少,允许事务激进的运行并在事务提交时检测冲突。其中联机事务为一个或者多个客户端向服务端发出请求,服务端响应和处理所有请求并返回结果。Silo使用时间分片为基础的时间戳生成机制和组提交改进OCC。MOCC基于OCC,并结合锁机制处理热数据事务冲突。Tictoc将中心化的时间戳分配机制移除,并在事务提交时计算事务时间戳。Hekaton在MVCC中应用无锁数据结构。Hyper通过直接修改数据和将提交前的数据存储在Undo缓冲中,以优化基于列式存储的内存数据库的读性能。Cicada使用多个松散同步的时钟来减少MVCC的开销和冲突,尽最大努力内联数据版本以提高CPUCache的命中率,并优化事务验证方法。这些方法都需要给每个数据添加元数据,比如读写时间戳,指向不同版本的时间戳,锁位等。这些方法在不考虑数据库持久性的前提下,实现了每秒百万级的事务吞吐量。和传统数据库类似,内存数据库可以使用日志和检查点技术实现持久性。不同的是内存数据库完整存储于内存,因此只有提交事务的Redo日志需要写入持久存储设备。内存数据库通过加载最近的检查点到内存并读取Redo日志重做已提交的事务来恢复数据库。相比支持联机事务处理的内存数据库,支持联机事务处理的NVM数据库需要重新考虑并发控制和崩溃恢复以完整支持数据库的原子性、一致性、隔离性和持久性(ACID特性)。面向NVM的联机事务型数据库同时有DRAM和NVM两种主存,其中NVM是持久的而且容量显著大于DRAM,因此联机事务型数据库可以把数据完整存储到NVM,而避免了外存I/O操作。NVM容量大小的联机事务型内存数据库(MMDB):在MMDB中,索引和数据存储于传统的易失主存,事务仅使用普通的CPULoad和Store指令访问主存中的数据结构。但是,原本的实现受限于DRAM容量。当数据量大于DRAM时,将无法支持。如图1(a)所示,本专利技术可以扩展联机事务型内存数据库,将部分NVM视为易失主存,从而可以利用更大的主存支持超过DRAM容量的数据量。此外,我们将写前日志(WAL)和检查点放入NVM,从而消除外存访问,支持数据库的持久性。数据库崩溃后,数据库根据NVM中存储的持久化的检查点和写前日志恢复易失主存中的数据表和索引等数据结构。其中NVM的特性是可以持久存储数据和字节粒度的存储访问。CPU将数据持久性存储在NVM上,使用和访问内存一样的方式访问NVM,实现和原来一样的功能并且比原来更快,但是不需要磁盘和SSD这样的块设备。消除了磁盘和SSD,即消除了外存访问。基于写后日志(WBL)的联机事务型内存数据库:如图1(b)所示,此技术在DRAM中存储索引和维护数据记录粒度的缓存。数据被提取到DRAM中进行事务处理。通过给数据增加事务标志、提交时间戳和上次提交版本的索引等元数据,WBL支持在NVM中存储逻辑数据记录的多个版本。在事务提交时,WBL在NVM上创建新版本的数据记录,并将DRAM中记录内容的修改持久化到新创建的记录版本中。当崩溃发生时,已提交的新版本可用于崩溃恢复。因此,WBL不需要像写前日志那样在日志中存储数据的修改,并在事务提交后写到NVM。一条写后日志包括两个时间戳:时间戳Cp标记此时间前的事务均被完整持久化到NVM,时间戳Cd标记Cp到Cd之间可能存在未完全提交事务的。崩溃发生后,系统检查最后一条写后日志,并回收时间戳处于Cp到Cd之间的数据记录版本。FOEDUS:如图1(c)所示,FOEDUS将数据记录存储在NVM中的快照数据页中,并在DRAM中缓存部分数据页。DRAM中维护数据页的索引,对于每个数据页维护两个指针,一个指向NVM中最新的快照数据页,另一个指向在DRAM缓冲中的数据页(如果存在)。FOEDUS在DRAM中运行事务。如果事务需要访问的数据在NVM中,FOEDUS将此数据页加载入DRAM并更新数据页索引。在事务提交时,FOEDUS将Redo日志写到NVM。FOEDUS在后台运行一个LogGleaner线程,周期性扫描并回收日志,以Map-Reduce方式使用Redo日志产生新的快照数据页。NVM容量大小的联机事务型内存数据库(MMDB)存在两个问题:第一,数据的修改需要写WAL日志和检查点,这会带来额外的2倍NVM写。当数据库容量大于DRAM,对于存储在作为易失主存的NVM上的数据,修改操作需要再写一次NVM,因此最大有3次NVM写。第二,当数据逐渐变大,越来越多的数据将存储在NVM中,由于MVCC等并发控制机制在读数据记录时也需要修改记录头部的元数据,所以即使是读事务也会引发大量的NVM写。基于写后日志(WBL)的联机事务型内存数据库:相本文档来自技高网...

【技术保护点】
1.一种面向混合DRAM-NVM主存的联机事务型数据库系统,其特征在于,包括:/n用于缓存数据的该DRAM和用于持久存储数据的该NVM;/nNVM通过第一数据表记录NVM中存储的多个数据元组,用于事务处理并发控制的元信息仅保存在DRAM中,即NVM中该数据元组不保存并发控制的元信息,根据访问任务将该数据元组以元组为粒度缓存至DRAM,且在数据元组缓存至DRAM时为每个数据元组增加并发控制元信息,DRAM通过第二数据表记录数据元组及其对应的并发控制元信息;/n该联机事务型数据库系统还包括混合数据表,该混合数据表包括该第一数据表、该第二数据表,以及用于管理该第一数据表和第二数据表的管理模块。/n

【技术特征摘要】
1.一种面向混合DRAM-NVM主存的联机事务型数据库系统,其特征在于,包括:
用于缓存数据的该DRAM和用于持久存储数据的该NVM;
NVM通过第一数据表记录NVM中存储的多个数据元组,用于事务处理并发控制的元信息仅保存在DRAM中,即NVM中该数据元组不保存并发控制的元信息,根据访问任务将该数据元组以元组为粒度缓存至DRAM,且在数据元组缓存至DRAM时为每个数据元组增加并发控制元信息,DRAM通过第二数据表记录数据元组及其对应的并发控制元信息;
该联机事务型数据库系统还包括混合数据表,该混合数据表包括该第一数据表、该第二数据表,以及用于管理该第一数据表和第二数据表的管理模块。


2.如权利要求1所述的面向混合DRAM-NVM主存的联机事务型数据库系统,其特征在于,该并发控制元信息为以元组为粒度且具有并发控制相关的元信息,该第二数据表缓存按照线程数目划分为多个缓存区域,各线程仅在其对应的缓存区域内修改数据;该第二数据表内的缓存项包括数据元组的存储空间和第二元数据,第二元数据包括活跃位、并发控制字段、元组标识字段、指向NVM版本的指针和缓存替换字段;通过该活跃位判断该缓存项是否被占用通过该活跃位控制该缓存项不被替换;事务运行中,根据通过读取和写入该并发控制字段,执行并发控制算法,并根据读取和写入该缓存替换字段,以执行缓存替换策略。


3.如权利要求1或2所述的混合DRAM-NVM主存的联机事务型数据库系统,其特征在于,该第一数据表中部分数据元组存在多个数据版本,每个数据元组包括其占用的存储空间和第一元数据,第一元数据包括:事务提交时间戳、元组标识字段、删除位和事务提交确认位;通过该事务提交时间戳和该元组标识字段唯一确定事务提交版本,通过该删除位标记逻辑数据的删除;
同一事务提交的所有数据元组修改具有相同的事务提交时间戳,且同一事务提交的所有数据元组修改对应的数据版本中,任意一个数据版本事务提交确认位被设置,即可确认事务已被正确提交,数据修改均已持久化。


4.如权利要求2所述的面向混合DRAM-NVM主存的联机事务型数据库系统,其特征在于,
事务在执行阶段访问该混合数据表,判断该事务访问的目标数据是否位于DRAM中,若是则直接访问DRAM中缓存的该目标数据,否则将NVM中存储的该目标数据缓存到执行当前事务的线程对应的数据缓存区域并填写与之对应的第二元信息;
在DRAM中通过并发执行且成功提交的事务进入持久阶段,将该事务修改的所有数据版本均写到NVM上进行持久存储;
事务维护阶段,回收NVM上的因新提交版本而无效的数据版本。


5.如权利要求4所述的面向混合DRAM-NVM主存的联机事务...

【专利技术属性】
技术研发人员:陈世敏刘刚陈乐滢
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1