[go: up one dir, main page]

CN112214171A - 一种面向SQLite数据库的非易失性内存缓冲区设计方法 - Google Patents

一种面向SQLite数据库的非易失性内存缓冲区设计方法 Download PDF

Info

Publication number
CN112214171A
CN112214171A CN202011083545.5A CN202011083545A CN112214171A CN 112214171 A CN112214171 A CN 112214171A CN 202011083545 A CN202011083545 A CN 202011083545A CN 112214171 A CN112214171 A CN 112214171A
Authority
CN
China
Prior art keywords
buffer
transaction
sqlite
volatile memory
manager
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011083545.5A
Other languages
English (en)
Other versions
CN112214171B (zh
Inventor
胡卉芪
胡耀艺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
East China Normal University
Original Assignee
East China Normal University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by East China Normal University filed Critical East China Normal University
Priority to CN202011083545.5A priority Critical patent/CN112214171B/zh
Publication of CN112214171A publication Critical patent/CN112214171A/zh
Application granted granted Critical
Publication of CN112214171B publication Critical patent/CN112214171B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • G06F9/467Transactional memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种面向SQLite数据库的非易失性内存缓冲区设计方法,其特点是采用基于非易失性内存的拷贝SQLite缓冲区方法,通过在一个缓冲区中维护两份相同的数据,同时引入分配全局时间戳的事务管理器CC‑manager,并加入修改页面索引Updated‑pages index,使事务执行有序性、原子性和持久化特性得到提升并发,并通过写后属性修改页的索引文件,确保非易失性内存与磁盘中数据库文件之间的一致性。本发明与现有技术相比具有SQLite‑WAL模式相当的并发性能,事务吞吐量提升了三倍,读写延迟减少了40%,且有效解决了磁盘中的写放大问题,为SQLite提供了低延迟,高吞吐的缓冲区管理方案。

Description

一种面向SQLite数据库的非易失性内存缓冲区设计方法
技术领域
本发明涉及数据库系统技术领域,尤其是一种基于非易失性内存下应用拷贝面向SQLite数据库的非易失性内存缓冲区的设计方法。
背景技术
非易失性内存(NVM,或称之为持久化内存)是一种新型的存储设备,具备和普通内存相似的字节寻址能力,远超固态磁盘的读写性能以及普通内存不具备的数据持久化能力,被认为是一种具有潜力的下一代存储设备。这种新型硬件的出现与发展强烈地冲击了文件系统,缓存系统等存储系统,也对目前的数据库系统架构与设计产生了新的影响。
Chen S, Gibbons P B, Nath S 等人最先探讨了在用非易失内存代替DRAM,及在非易失内存上进行关系数据库相关设计上的参数(cache misses、cache line writebacks、words modified)和分析指标(total wear、energy、total PCM access latency)等;其他工作考虑非易失内存对关系数据库存储的影响。van Renen A, Leis V, Kemper A等人则是从数据库中非易失性内存管理的角度,把非易失性内存作为中间层,并且在DRAM和非易失性内存中都维护一个缓冲区,在其间将DRAM以cache-line的粒度从NVM中加载数据进行传递,并提出了一种减少内存占用的Mini Page数据结构,以更好的利用NVM的随机访问快的特性同时减小了DRAM的空间占用。
之前的相关研究主要采用模拟的设备,性能与真实设备有一定差别,本发明基于真实的非易失性内存(设备为IntelAEP)探究结合非易失性内存下数据库系统缓冲区模块设计。选用轻量级关系型数据库SQLite为原型系统,SQLite作具有的小巧易用的特点,由于其开发效率,可靠的事务支持和轻量级代码,SQLite在实际的应用中非常广泛。但是,与此同时,对轻量级代码库的妥协迫使它采用不太复杂但成本更高的方案来提供事务支持,例如串行化的事务执行方式,以页面粒度进行物理日志记录,冗余日志和强制提交策略。这些设计使得其在事务执行过程中负担了过多的I/O开销。同时在SQLite的缓冲区管理模块中使用了默认缓存和共享缓存两种设计,前者为每一个连接创建一个缓冲区,造成空间的浪费和需要花时间协调缓存之间不一致问题,后者则是多个连接共享一个缓冲区,减少了空间占用,却降低了并发。
发明内容
发明的目的是针对现有技术的不足而设计的一种面向SQLite数据库的非易失性内存缓冲区设计方法,采用基于非易失性内存的拷贝的缓冲区保证事务的原子性和持久化特性的方法,构建了一种新的基于非易失性内存的SQLite缓冲区SQLite-CC(Copy Cache),通过一个分配全局时间戳的事务管理器CCmanager保证事务执行的有序性,以及基于非易失性内存的拷贝的缓冲区保证事务的原子性和持久化特性,并且一定程度上提升并发,通过写后属性的修改页的索引文件,保证非易失性内存与磁盘中数据库文件间的一致性。该方法充分利用了非易失性内存的硬件特性,通过在一个缓冲区中维护两份相同的数据,同时引入CC-manager用于维护事务原子性,并加入修改页面索引Updated-pages index来保证数据库文件与缓存之间的一致性,使其达到了和SQLite-WAL模式相当的并发性能,与回滚日志相比模式事务吞吐量提升了三倍,读写延迟减少了40%,且有效解决了磁盘中的写放大问题,为SQLite提供了低延迟、高吞吐的缓冲区管理方案。
本发明的目的是这样实现的:一种面向SQLite数据库的非易失性内存缓冲区设计方法,其特点是采用基于非易失性内存的拷贝SQLite缓冲区方法,通过在一个缓冲区中维护两份相同的数据,同时引入分配全局时间戳的事务管理器CC-manager,并加入修改页面索引Updated-pages index来保证数据库文件与缓存之间的一致性,使事务执行有序性、原子性和持久化特性得到提升并发,并通过写后属性修改页的索引文件,确保非易失性内存与磁盘中数据库文件之间的一致性。
所述分配全局时间戳的事务管理器CC-manager的实现如下:
A1:一种基于物理时钟的全局时间戳生成功能,在每一个事务开始时,为每个事务分配时间戳,用于协调读写事务之间的先后关系。
A2:管理并检测主缓冲区与拷贝缓冲区之间的一致性状态,通过对两个缓冲区的一致性状态判断,保证事务的ACID特性。并且提供恢复点的判断功能。
所述基于非易失性内存的拷贝SQLite缓冲区的实现如下:
B1:每个进程所维护的缓冲区中额外加入一个拷贝的缓冲区,存放于同一个Pcache句柄的两个hash表中,一般状态下两者的数据相同,当有写事务进行的时候,主缓冲区承担写入任务,出现不一致状态。结合CCmanager的管理保证是事务的有序进行。
B2:在PCache句柄中记录两个缓冲区的状态,拷贝的副缓冲区在主缓冲区进行修改的时候,保证读事务并发的同时,由于副缓冲区仍然保持着原有数据,则其承担undo log的作用以保障事务的原子性,当出现事务abort的时候或者事务修改未完成宕机时,副缓冲区的值为准确值,可以用作还原主缓冲区中进行的修改。当出现事务修改已完成但是未提交的情况,即主缓冲区已经完成修改,副Cache没有同步,同样通过CC-manager的状态检查,判定当前状态,主缓冲区可以承担redo log的作用,将其修改值同步到副缓冲区,并提交事务,以保障事务的持久性。
所述修改页的索引的实现如下:
C1:一个的修改页索引,记录缓冲区中修改的页的编号和偏移量等matedata,标记出与磁盘中数据库文件不同步的页。而后通用延迟同步的方式和被换出缓冲的时刻,将更新同步到磁盘上,以此来保证非易失性内存中的缓冲区与磁盘中数据库文件的一致性。
本发明与现有技术相比具有以下有益的技术效果和显著进步:
1)发挥了非易失性内存的特性,将其作为SQLite缓存部分的存储,综合了两个缓冲区的优点,减少了内存与磁盘的交互,优化了数据库的读写性能,相比于回滚模式事务吞吐量提升了3倍,事务延迟减少了40%。
2)凭借非易失性内存相对于内存的持久化的特性,以缓冲区为载体,通过拷贝双版本的方式,变相地做到了undo日志和redo日志的功能,优化了在磁盘中的日志记录,减少了磁盘的空间开销和写放大,加速了数据库恢复。
3)保持了与SQLite-WAL模式相当的读读并发和一写多读并发,并且解决了WAL模式中存在的尾部延迟问题,是NVM在数据库方向上应用的一次有效尝试。
附图说明
图1为本发明的SQLite架构示意图;
图2为写入程序流程示意图;
图3为写入流程示意图;
图4为读取程序流程示意图;
图5为读取流程示意图;
图6为不同读写比例负载下的事务吞吐量柱状图;
图7为不同线程数下事务执行时间图;
图8为事务执行时的读延迟图;
图9为事务执行时的写延迟图。
具体实施方法
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。实施本发明的过程、条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发明没有特别限制内容。
实施例1
参阅附图1,基于原始的SQLite数据库架构的面向非易失性内存缓冲区的SQLite系统,将系统分为三个部分,分别是内存中的B树模块和CC-管理器模块、非易失性内存中的Pager模块和被修改页索引模块,以及磁盘中的数据库文件存储。CC-管理器模块与B-树模块协同对事务进行管理,B-树模块通过访问在非易失性内存中的Pager模块对缓冲区的数据页进行读写等操作,被修改页索引用于磁盘与非易失性内存同步。
参阅附图2,写操作具体流程:通常进行写操作的时候,SQLite通过B-树模块向Pager模块发出请求,然后经过缓冲区对数据进行修改。在SQLite-CC中,首先需要经过CC-管理器的sqliteCCCheckState()判定,确保当前两个缓冲区处于同步状态,即可获得写入权限,通过sqliteCCGetTimestamp()分配给其写时间戳。
参阅附图3,修改过程中会在缓冲区中,短暂的形成两个缓冲区不同步的时段,该两个缓冲区由一个Pcache句柄统一管理,主缓冲区对应的哈希表处于已修改的状态,已被修改的数据页,也被视为重做日志数据页。拷贝缓冲区对应的哈希表则是保持原有的值不变,所以此处与主缓冲区中被修改处对应的数据页,可以视为回滚日志数据页。即正常的修改流程为经历同步,到不同步,再到同步的流程,并且这个过程通过英特尔的非易失性内存管理库的事务对象型接口保证原子性。由于非易失性内存的持久性,无需担心数据丢失,可以在同步即提交事务sqliteCCCommit(),之后记录被修改页索引来确保当缓冲区的页被换出之后的与数据库文件的一致性,不用急切地将修改值刷到磁盘中的数据库文件,减少了磁盘I/O。当发生缓冲区换入换出时,检测换出页是否在修改页索引中标记,如果标记则修改磁盘中的内容,如果未被标记则直接丢弃。
参阅附图4,读操作具体流程:在SQLite-CC中,将面临着两种不同的情况,一种情况是当两个缓冲区处于同步状态时,其读取流程跟原始的SQLite相同;另一种情况则是,当前的缓冲区状态不同步,即此时存在正在进行当中的写入操作。事务开始时,会经由CC-manager判断当前状态,并分配时间戳,之后根据读写事务的先后顺序,分为两种情况:当读在写事务之后,它将被阻塞等待,因为它需要通过主缓冲区中新的内容进行读取,读取到修改后的值;反之则通过拷贝的缓冲区进行读取,读取到旧值,其余流程相同。
参阅附图5,在T2时刻有写入操作,那么当写事务开始时,将出现新旧读事务的划分,对之前已经执行完成的读操作的线程没有影响,正在进行的操作如读事务3,读事务6将被作为旧的读事务,通过拷贝缓冲区进行值的读取,然后当旧事务线程全部完成之后,对两个缓冲区进行同步,完成并提交此次操作。在T2时刻之后开始执行的读事务2,读事务4则会在等待执行过程中的写事务提交完成之后通过主缓冲区读取到最新值。
恢复操作具体流程:当出现宕机时,原始的SQLite有自己的方法在重新启动时进行故障检测,当它在“删除日志”模式下运行时,若存在热日志则表示SQLite在重新启动之前处于崩溃状态,其中热日志(即宕机前已经记录,但是由于事务并未提交,仍然存在的日志)可用于恢复数据库一致性。当原始的SQLite以WAL日志模式运行时,WAL日志里没有提交记录的部分则表示崩溃时正在进行的事务,删除该部分修改即可。SQLite-CC检测故障的方式与前两者均不相同,其事务的原子性和持久性都是经由缓冲区来进行保证的,由于非易失性内存的持久性,任何情况下的故障恢复都能够获取到宕机前缓冲区的状态。如果存在需要恢复的数据,则SQLite - CC的缓冲区中两个缓冲区肯定不是同步的,同时由于在任何时候最多一个写事务都在同一数据库上运行,那么两者必有一个是准确的,所以执行sqliteCCRecover(),首先检测副缓冲区的启用状态sqliteCCCheckState(),可以判断所要恢复的状态点,进而做出对应的回滚或者重做操作,使数据库达到一致性状态。另外,如果宕机发生在将缓冲区中换出的页同步到数据库文件时,通过检测被修改页索引中是否还记录有该页和对比换出页与数据库文件里对应页的值,可以判定是否需要再次将缓冲区中的页复制到数据库文件中,以保证数据的一致性。
参阅附图6,比较了分别在负载a读写比例50%/50%,负载b读写比例95%/5%以及负载c读写比例100%/0%下,三种模式(Delete,WAL,SQLite-CC)的事务吞吐量,可以看到,随着写操作比重的下降,三者的吞吐量均呈现上升趋势,而在相同负载的情况下,SQLite-CC的性能略优于SQLite-WAL,SQLite-Journal表现最差。
参阅附图7,展示了用单线程,双线程,四线程,八线程对三种模式进行了运行时间测试,由于SQLite为确保线程安全,采用单写的方式进行数据修改。多线程对于SQLite并不是提升并发的好方法。同时可以看到的是在写操作占比较大的负载中,Journal模式表现较差,而WAL模式采用redo日志,只需要在记录新值的一次刷盘,对此场景支持性较好,SQLite-CC则是做到了与其相当的执行时间。另外很明显,读取比例越高,SQLite单写的影响就会越小,三者差距也就逐渐缩小。
参阅附图8,展示了三种模式的读取延迟时间百分比分点,三者的走势大致相同,SQLite-CC表现最好,平均提升了40%。
参阅附图9,展示了三种模式的写入延迟时间百分比分点,三者的走势基本一致,其中Journal模式在进行大量写入操作时,由于会发生更多的IO操作,导致性能下降明显,而SQLite-WAL和SQLite-CC表现较好。
本发明的保护内容不局限于以上实施例,在不背离发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保护范围。

Claims (4)

1.一种面向SQLite数据库的非易失性内存缓冲区设计方法,其特征在于采用面向非易失性内存缓冲区架构的SQLite-CC方法,通过在一个非易失性内存的拷贝SQLite-CC缓冲区中维护两份相同的数据,同时引入分配全局时间戳的事务管理器CC-manager,并加入修改页面索引Updated-pages index,使事务执行有序性、原子性和持久化特性得到提升并发,并通过写后属性修改页的索引文件,确保非易失性内存与磁盘中数据库文件之间的一致性。
2.根据权利要求1所述面向SQLite数据库的非易失性内存缓冲区设计方法,其特征在所述事务管理器CC- manager按下述步骤实现分配全局时间戳:
A1:基于物理时钟的全局时间戳生成功能,在每一个事务开始时,为每个事务分配时间戳,用于协调读写事务之间的先后关系;
A2:管理并检测主缓冲区与拷贝缓冲区之间的一致性状态,通过对两个缓冲区的一致性状态判断,保证事务的ACID特性,并提供恢复点的判断功能。
3.根据权利要求1所述基于非易失性内存的SQLite缓冲区设计方法,其特征在所述基于非易失性内存的拷贝SQLite-CC缓冲区按下述步骤实现:
B1:每个进程所维护的缓冲区中额外加入一个拷贝的缓冲区,存放于同一个Pcache句柄的两个hash表中,一般状态下两者的数据相同,当有写事务进行的时候,主缓冲区承担写入任务;出现不一致状态,结合CCmanager的管理保证事务的有序进行;
B2:在PCache句柄中记录两个缓冲区的状态,拷贝的副缓冲区在主缓冲区进行修改的时候,保证读事务并发的同时,由于副缓冲区仍然保持着原有数据,则其承担undo log的作用以保障事务的原子性,当出现事务abort时或事务修改未完成宕机时,副缓冲区值用于还原主缓冲区中进行的修改;当事务修改已完成但未提交时,即主缓冲区已经完成修改,副缓冲区没有同步,同样通过CC-manager的状态检查,判定当前状态,主缓冲区可以承担redolog的作用,将其修改值同步到副缓冲区,并提交事务,以保障事务的持久性。
4.根据权利要求1所述面向SQLite数据库的非易失性内存缓冲区设计方法,其特征在所述修改页的索引按下述步骤实现:
C1:记录缓冲区中修改的页的编号和偏移量等元数据,标记出与磁盘中数据库文件不同步的页,通用延迟同步的方式和被换出缓冲的时刻,将更新同步到
磁盘上,以此来保证非易失性内存中的缓冲区与磁盘中数据库文件的一致性。
CN202011083545.5A 2020-10-12 2020-10-12 一种面向SQLite数据库的非易失性内存缓冲区设计方法 Active CN112214171B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011083545.5A CN112214171B (zh) 2020-10-12 2020-10-12 一种面向SQLite数据库的非易失性内存缓冲区设计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011083545.5A CN112214171B (zh) 2020-10-12 2020-10-12 一种面向SQLite数据库的非易失性内存缓冲区设计方法

Publications (2)

Publication Number Publication Date
CN112214171A true CN112214171A (zh) 2021-01-12
CN112214171B CN112214171B (zh) 2022-08-05

Family

ID=74053242

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011083545.5A Active CN112214171B (zh) 2020-10-12 2020-10-12 一种面向SQLite数据库的非易失性内存缓冲区设计方法

Country Status (1)

Country Link
CN (1) CN112214171B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113220490A (zh) * 2021-05-31 2021-08-06 清华大学 异步写回持久化内存的事务持久化方法及系统
CN117171266A (zh) * 2023-08-28 2023-12-05 北京逐风科技有限公司 一种数据同步方法、装置、设备和存储介质
CN118394674A (zh) * 2024-06-25 2024-07-26 吉林大学 一种基于新型持久内存的文件系统加速方法

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8291269B1 (en) * 2011-09-20 2012-10-16 Advent Software, Inc. Multi-writer in-memory non-copying database (MIND) system and method
US20150006591A1 (en) * 2013-07-01 2015-01-01 Research & Business Foundation Sungkyunkwan University Memory storage apparatus, method of supporting transaction function for database, and memory system
CN105190622A (zh) * 2013-03-15 2015-12-23 亚马逊科技公司 用于分布式数据库系统的快速崩溃恢复
US20160078042A1 (en) * 2014-09-15 2016-03-17 Martin Hartig Embedding database procedures in data-driven applications
US20180074968A1 (en) * 2015-07-30 2018-03-15 Netapp, Inc. Deduplicated host cache flush to remote storage
CN107851061A (zh) * 2015-05-19 2018-03-27 净睿存储股份有限公司 远程存储器中硬件辅助的事务提交
CN109086425A (zh) * 2018-08-09 2018-12-25 北京百度网讯科技有限公司 用于数据库的数据处理方法和装置
CN109918352A (zh) * 2019-03-04 2019-06-21 北京百度网讯科技有限公司 存储器系统和存储数据的方法
CN110659305A (zh) * 2019-08-06 2020-01-07 上海孚典智能科技有限公司 基于非易失存储系统的高性能关系型数据库服务
US20200012488A1 (en) * 2013-03-15 2020-01-09 Electro Industries/Gauge Tech Devices, systems and methods for tracking and upgrading firmware in intelligent electronic devices
CN111427966A (zh) * 2020-06-10 2020-07-17 腾讯科技(深圳)有限公司 数据库事务处理方法、装置及服务器

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8291269B1 (en) * 2011-09-20 2012-10-16 Advent Software, Inc. Multi-writer in-memory non-copying database (MIND) system and method
CN105190622A (zh) * 2013-03-15 2015-12-23 亚马逊科技公司 用于分布式数据库系统的快速崩溃恢复
US20200012488A1 (en) * 2013-03-15 2020-01-09 Electro Industries/Gauge Tech Devices, systems and methods for tracking and upgrading firmware in intelligent electronic devices
US20150006591A1 (en) * 2013-07-01 2015-01-01 Research & Business Foundation Sungkyunkwan University Memory storage apparatus, method of supporting transaction function for database, and memory system
US20160078042A1 (en) * 2014-09-15 2016-03-17 Martin Hartig Embedding database procedures in data-driven applications
CN107851061A (zh) * 2015-05-19 2018-03-27 净睿存储股份有限公司 远程存储器中硬件辅助的事务提交
US20180074968A1 (en) * 2015-07-30 2018-03-15 Netapp, Inc. Deduplicated host cache flush to remote storage
CN109086425A (zh) * 2018-08-09 2018-12-25 北京百度网讯科技有限公司 用于数据库的数据处理方法和装置
CN109918352A (zh) * 2019-03-04 2019-06-21 北京百度网讯科技有限公司 存储器系统和存储数据的方法
CN110659305A (zh) * 2019-08-06 2020-01-07 上海孚典智能科技有限公司 基于非易失存储系统的高性能关系型数据库服务
CN111427966A (zh) * 2020-06-10 2020-07-17 腾讯科技(深圳)有限公司 数据库事务处理方法、装置及服务器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JONG-HYEOK PARK等: "SQL Statement Logging for Making SQLite Truly Lite", 《PROCEEDINGS OF THE VLDB ENDOWMENT》 *
潘巍等: "新型非易失存储环境下事务型数据管理技术研究", 《软件学报》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113220490A (zh) * 2021-05-31 2021-08-06 清华大学 异步写回持久化内存的事务持久化方法及系统
CN113220490B (zh) * 2021-05-31 2024-11-26 清华大学 异步写回持久化内存的事务持久化方法及系统
CN117171266A (zh) * 2023-08-28 2023-12-05 北京逐风科技有限公司 一种数据同步方法、装置、设备和存储介质
CN117171266B (zh) * 2023-08-28 2024-05-14 北京逐风科技有限公司 一种数据同步方法、装置、设备和存储介质
CN118394674A (zh) * 2024-06-25 2024-07-26 吉林大学 一种基于新型持久内存的文件系统加速方法

Also Published As

Publication number Publication date
CN112214171B (zh) 2022-08-05

Similar Documents

Publication Publication Date Title
Levandoski et al. High performance transactions in deuteronomy
CN109407979B (zh) 多线程持久性b+树数据结构设计与实现方法
EP2972891B1 (en) Multiversioned nonvolatile memory hierarchy for persistent memory
US10379954B2 (en) Method and apparatus for cache management of transaction processing in persistent memory
US7266669B2 (en) File system with file management function and file management method
EP3207471B1 (en) High performance transactions in database management systems
JP5660693B2 (ja) ハイブリッドoltp及びolap高性能データベースシステム
Lu et al. Blurred persistence in transactional persistent memory
Min et al. Lightweight {Application-Level} Crash Consistency on Transactional Flash Storage
Salem et al. Checkpointing memory-resident databases
Graefe A survey of B-tree logging and recovery techniques
CN112214171A (zh) 一种面向SQLite数据库的非易失性内存缓冲区设计方法
CN112597254B (zh) 面向混合dram-nvm主存的联机事务型数据库系统
Lu et al. Blurred persistence: Efficient transactions in persistent memory
Graefe et al. Instant recovery with write-ahead logging
CN110515705B (zh) 可扩展的持久性事务内存及其工作方法
Son et al. SSD-assisted backup and recovery for database systems
Kim et al. {Z-Journal}: Scalable {Per-Core} journaling
CN113220490A (zh) 异步写回持久化内存的事务持久化方法及系统
US9411692B2 (en) Applying write elision
Jin et al. SAL-hashing: a self-adaptive linear hashing index for SSDs
CN111752685B (zh) 多核架构下的持久性内存事务提交方法
Joshi et al. Checkpointing in Oracle
CN113722052A (zh) 一种基于数据双版本的非易失内存更新方法
Yang et al. Optimizing synchronization mechanism for block-based file systems using persistent memory

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant