CN111752685B - 多核架构下的持久性内存事务提交方法 - Google Patents
多核架构下的持久性内存事务提交方法 Download PDFInfo
- Publication number
- CN111752685B CN111752685B CN202010443099.8A CN202010443099A CN111752685B CN 111752685 B CN111752685 B CN 111752685B CN 202010443099 A CN202010443099 A CN 202010443099A CN 111752685 B CN111752685 B CN 111752685B
- Authority
- CN
- China
- Prior art keywords
- transaction
- log
- persistent memory
- data
- thread
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
- G06F9/467—Transactional memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
Abstract
本发明公开了一种多核架构下的持久性内存事务提交方法,包括:在事务执行过程中,对于每份持久性内存中的数据,记录最近一次修改数据的事务编号;当事务提交时,将依赖关系写入日志,提前释放锁资源,以允许与自身冲突的事务并行进行持久化操作,在持久化操作完成后,等待依赖关系中的事务完成提交;当多核架构持久性内存事务系统发生故障重启时,读取持久性内存中的日志数据,将日志数据构建成有向无环图,再对有向无环图进行拓扑排序,按照拓扑排序的结果执行日志项。该方法可减少多核架构下冲突事务之间的等待时间,提高整个持久性内存事务系统的性能。
Description
技术领域
本发明涉及非易失性主存存储技术领域,特别涉及一种多核架构下的持久性内存事务提交方法。
背景技术
非易失性存储器(NVM,Non-Volatile Memory)技术在内存级提供数据持久性,为实现内存级存储系统提供了可能性。除了以页为单位寻址的闪存(Flash Memory)之外,许多新型存储器提供了接近于传统DRAM访问性能且提供字节寻址方式,如相变存储器(PCM,Phase Change Memory)、阻变存储器(RRAM,Resistive RAM)、自旋转移矩磁存储器(STT-RAM,Spin-Transfer Torque RAM)等。2019年,Intel公司发布了第一代英特尔傲腾数据中心持久性内存(Intel Optane DC Persistent Memory)。字节寻址非易失性存储器可直接接入内存总线,在主存级别提供持久性存储。这种存储系统也被称为持久性内存(persistent memory)存储系统。
现有的内存事务系统主要针对DRAM设计,对于新型非易失性内存的考虑不足,因而在新型非易失性内存系统中存在效率、一致性等较多问题。非易失内存引入事务系统的主要问题是一致性和持久化开销。数据一致性保证事务系统在意外故障发生后能够保证数据在不同版本之间的正确访问。事务系统的数据一致性要求CPU缓存写回内存的数据保证写回的先后顺序,由于当前存储系统的平均访问延迟为内存延迟,写回等待的性能开销更为严重。研究表明,clflush和mfence的延迟可长达250ns。为降低持久性内存事务系统中数据一致性的性能开销,当前的做法主要分为两类:
第一类方法通过采用非易失性存储器或者增加后备电源的方式增强CPU缓存的数据持久性,以降低一致性开销,该方法需要修改硬件架构,提高了机器的使用成本。
第二类方式通过硬件或软件方式优化数据持久化顺序,以降低一致性开销。硬件方式的持久性顺寻优化方法需要对CPU硬件进行修改,短期内实用难度较大。在软件方式中,清华大学提出了模糊持久化(Blurred Persistence)方法和持久性解耦内存事务系统DudeTM。其中Blurred Persistence通过对内存日志进行固定方式组织以及控制多版本数据的覆盖写次数等技术提供了类似steal和no-force的事务缓存机制,有效降低了数据一致性开销,但该方法仅限于单核之内的事务执行。DudeTM通过加一层DRAM缓存,解决了传统持久性内存事务系统中回滚日志(undo log)和重做日志(redo log)的缺点,但它使用单独的线程去持久化日志和执行日志,引入了线程通信的开销,同时执行日志的线程由于只有一个,严重了影响了系统的多核扩展性。
但现有的方法未考虑多核架构下由于非易失内存的持久化开销使得冲突竞争的事务之间等待时间变长,浪费了CPU核心资源,造成了大量的事务终止和重试,导致整个持久性事务系统性能在多核架构下严重下降、无法扩展。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的目的在于提出一种多核架构下的持久性内存事务提交方法,该方法可减少多核架构下冲突事务之间的等待时间,允许冲突的事务并行地去进行持久化操作。
为达到上述目的,本发明实施例提出了多核架构下的持久性内存事务提交方法,包括以下步骤:在事务执行过程中,对于每份持久性内存中的数据,记录最近一次修改数据的事务编号;当事务提交时,将依赖关系写入日志,提前释放锁资源,以允许与自身冲突的事务并行进行持久化操作,在持久化操作完成后,等待所述依赖关系中的事务完成提交;当多核架构持久性内存事务系统发生故障重启时,读取所述持久性内存中的日志数据,将所述日志数据构建成有向无环图,再对所述有向无环图进行拓扑排序,按照拓扑排序的结果执行日志项。
本发明实施例的多核架构下的持久性内存事务提交方法,通过追踪事务之间的依赖关系,可减少冲突事务之间的等待时间,并行地持久化日志数据,提高整个持久性内存事务系统的性能,是一种能充分发挥硬件性能的持久性内存事务提交机制。
另外,根据本发明上述实施例的多核架构下的持久性内存事务提交方法还可以具有以下附加的技术特征:
进一步地,在本发明的一个实施例中,所述持久性内存包括易失性处理器缓存和非易失性内存。
进一步地,在本发明的一个实施例中,所述事务编号包括线程的唯一编号和线程本地事务编号,其中,所述线程的唯一编号在新线程注册到所述多核架构持久性内存事务系统时分配,所述线程本地事务编号在新事务开始时递增。
进一步地,在本发明的一个实施例中,所述依赖关系包括与事务的读写集有重叠关系的事务集合。
进一步地,在本发明的一个实施例中,每个线程均有独立的日志区域,所述日志区域位于所述持久性内存中并采用固定格式组织,包括当前事务的数据内容、所述当前事务的事务编号以及所述当前事务的依赖关系。
进一步地,在本发明的一个实施例中,所述锁资源为事务在执行中持有,用于避免其他事务对相同的数据进行读写。
进一步地,在本发明的一个实施例中,所述持久化操作为线程调用CPU的持久化指令,将所述日志数据从CPU的缓存刷写至非易失内存。
进一步地,在本发明的一个实施例中,所述等待所述依赖关系中的事务完成提交的过程为:查询执行所述依赖关系中的事务的线程状态,直至线程正在执行的事务编号大于依赖关系中的事务的事务编号,将事务的执行结果返回给上层应用。
进一步地,在本发明的一个实施例中,当所述多核架构持久性内存事务系统发生故障重启时,通过日志项的元数据判断日志项的完整性,存在不完整日志项的事务被标记为未提交;根据日志项中的依赖关系构建出有向无环图,事务编号为所述有向无环图的顶点,依赖关系为所述有向无环图中的边;其中,当事务的依赖关系中存在未提交的事务时,则该事务也被标记成未提交,且不在所述有向无环图中表示。
进一步地,在本发明的一个实施例中,所述执行日志项的过程由多个线程并行执行,所述多核架构持久性内存事务系统将日志数据根据地址划分给不同的线程,每个线程按照所述拓扑排序的结果遍历所述有向无环图,解析每个日志项的内容,执行其管理的数据地址对应的内容。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明一个实施例的多核架构下的持久性内存事务提交方法的流程图;
图2为根据本发明一个实施例的多核架构持久性内存事务系统的结构示意图;
图3为根据本发明一个实施例的日志项格式的示意图;
图4为根据本发明一个实施例的持久性内存的事务处理提交方法的数据流程与处理方法的示意图;
图5为根据本发明一个实施例的构建有向无环图的示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参照附图描述根据本发明实施例提出的多核架构下的持久性内存事务提交方法。
需要说明的是,本发明实施例的多核架构下的持久性内存事务提交方法也可称为该多核架构下的持久性内存事务提交机制。可以理解的是,持久性内存具有和DRAM相近的性能,同时提供字节粒度的存储接口。该持久性内存事务提交机制对上层应用透明,提供了持久性内存事务的通用接口,包含规定事务的读写集以及事务开始和提交的时机。
图1是本发明一个实施例的多核架构下的持久性内存事务提交方法的流程图。
如图1所示,该多核架构下的持久性内存事务提交方法包括以下步骤:
在步骤S101中,在事务执行过程中,对于每份持久性内存中的数据,记录最近一次修改数据的事务编号。
进一步地,在本发明的一个实施例中,如图2所示,持久性内存包括易失性处理器缓存和非易失性内存,多个CPU核心共享其中的事务数据。
具体地,易失性处理器缓存中的数据在系统掉电后会丢失,而非易失性内存中的数据可以容忍掉电。同时,数据从处理器缓存被逐出到非易失性内存的过程由硬件控制,CPU核心需要显式地调用相关CPU指令。
进一步地,在本发明的一个实施例中,事务编号由两部分组成:线程的唯一编号和线程本地事务编号,其中,线程的唯一编号在新线程注册到多核架构持久性内存事务系统时分配,线程本地事务编号在新事务开始时递增。
具体地,整个系统存储一个全局变量V,初始化为0,当新线程启动时,调用原子指令fetch-and-add(获取并自增)获得该线程的线程唯一编号,同时将本地的线程本地事务编号初始化为0。
在步骤S102中,当事务提交时,将依赖关系写入日志,提前释放锁资源,以允许与自身冲突的事务并行进行持久化操作,在持久化操作完成后,等待依赖关系中的事务完成提交。
进一步地,在本发明的一个实施例中,依赖关系包括与事务的读写集有重叠关系的事务集合。
进一步地,在本发明的一个实施例中,每个线程均有独立的日志区域,日志区域位于持久性内存中并采用固定格式组织,包括当前事务的数据内容、当前事务的事务编号以及当前事务的依赖关系。
具体地,如图3所示,“校验”部分是整个日志项数据的校验值,用来标记该日志项是否完全成功持久化到非易失内存,校验值可通过CRC(循环冗余校验)算法计算得出;“事务ID”部分是该事务的编号,用于标识事务,它由线程的唯一编号,线程本地事务编号两部分组成;“数据项数目”部分记录了日志项中数据项的个数,用于解析日志项中的数据;“数据0(…)”部分记录了事务执行过程中修改的数据(即写集数据),用于恢复过程中来恢复成功提交的事务的提交数据;“依赖关系数目”部分记录了日志中依赖关系集合的大小,用于解析日志中的依赖关系集合;“依赖0(…)”部分记录了事务的依赖关系,用于恢复过程中来确定事务之间的顺序。
通过上述方式,以固定格式组织日志区域,当系统故障恢复时,利用日志元数据块对日志数据块进行检查,可检测出未提交的数据,也可以确定成功提交的事务之间的顺序。
进一步地,在本发明的一个实施例中,锁资源为事务在执行中持有,用于避免其他事务对相同的数据进行读写。
具体地,每份数据在事务系统的索引中存储着对应的64bit锁字段,其中高15bit为持锁线程的线程编号,中间48bit为该份数据的版本号,最低1bit标记该数据是否被锁住。版本号在每次数据被修改时加1。锁字段通过CPU提供的原子指令compare-and-swap(比较并交换)原子地对64bit赋值,以达到互斥。
进一地,在本发明的一个实施例中,持久化操作为线程调用CPU的持久化指令,将日志的数据从CPU的缓存刷写至非易失内存。
具体地,线程通过调用clflush和mfence指令,将日志数据以缓存行粒度(64字节)持久化。
进一地,等待依赖关系中的事务完成提交的过程为:查询执行依赖关系中的事务的线程状态,直至线程正在执行的事务编号大于依赖关系中的事务的事务编号,此时事务的执行结果即可返回给上层应用。
举例而言,如图4所示,事务A访问数据1,为了保证正确的并发控制,事务A对数据1加了互斥锁;接着,事务B也需要访问数据1,即事务B与事务A发生了冲突,事务B等待事务A释放锁;事务A在提交阶段记录好依赖关系之后就释放数据1上的锁,然后进行持久化日志操作;此时,事务B继续执行,在提交阶段持久化日志操作。冲突的两个事务能够并行地去持久化数据,同时保证数据的一致性语义,即严格可串行化。
在步骤S103中,当多核架构持久性内存事务系统发生故障重启时,读取持久性内存中的日志数据,将日志数据构建成有向无环图,再对有向无环图进行拓扑排序,按照拓扑排序的结果执行日志项。
具体地,在系统发生故障需要恢复时,扫描日志区域,通过日志项的元数据判断日志项的完整性,存在不完整日志项的事务被标记为未提交;根据日志项中的依赖关系构建出有向无环图,事务编号是有向无环图的顶点,依赖关系形成有向无环图中的边;其中,当事务的依赖关系中存在未提交的事务时,事务也被标记成未提交。未提交的事务不在有向无环图中表示。
例如,如图5所示,Tx<0,1>代表它是0号线程的第1个事务;Tx<0,1>依赖于Tx<1,3>,所以有向无环图中有一条从Tx<1,3>指向Tx<0,1>的边。同理,该有向无环图中还有一条Tx<2,3>指向Tx<1,3>的边,和一条Tx<1,4>指向Tx<0,2>的边。同时,还需要考虑线程内部的依赖关系,由于线程内部的线程事务本地事务编号是递增分配的,所以Tx<0,2>依赖Tx<0,1>且Tx<1,4>依赖Tx<1,3>,即有一条从Tx<0,1>指向Tx<0,2>的边和一条从Tx<1,3>指向Tx<1,4>的边。
进一步地,执行日志项的过程可以由多个线程并行执行,系统将数据根据地址划分给不同的线程,每个线程按照拓扑排序的结果遍历的有向无环图,解析每个日志项的内容,执行其管理的数据地址对应的内容。图5中的有向无环图通过拓扑排序可得到如下的序列:Tx<2,3>、Tx<1,3>、Tx<1,4>、Tx<0,1>、Tx<0,2>,事务系统根据此序列进行重放恢复操作。
根据本发明实施例提出的多核架构下的持久性内存事务提交方法,事务提交过程中允许先释放锁后进行持久化操作,减少了冲突事务之间的等待时间,冲突的事务能够并行地去进行持久化操作。另外,在系统故障恢复的过程中,通过依赖关系构建有向无环图来对事务进行排序重放,避免了中心化的事务编号分配,进而提升持久性内存中事务在多核架构下的处理效率,且通过软件实现,适用性强。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (8)
1.一种多核架构下的持久性内存事务提交方法,其特征在于,包括以下步骤:
在事务执行过程中,对于每份持久性内存中的数据,记录最近一次修改数据的事务编号;
当事务提交时,将依赖关系写入日志,提前释放锁资源,以允许与自身冲突的事务并行进行持久化操作,在持久化操作完成后,等待所述依赖关系中的事务完成提交;
当多核架构持久性内存事务系统发生故障重启时,读取所述持久性内存中的日志数据,将所述日志数据构建成有向无环图,再对所述有向无环图进行拓扑排序,按照拓扑排序的结果执行日志项;
其中,所述依赖关系包括与事务的读写集有重叠关系的事务集合;
其中,当所述多核架构持久性内存事务系统发生故障重启时,通过日志项的元数据判断日志项的完整性,存在不完整日志项的事务被标记为未提交;根据日志项中的依赖关系构建出有向无环图,事务编号为所述有向无环图的顶点,依赖关系为所述有向无环图中的边;其中,当事务的依赖关系中存在未提交的事务时,则该事务也被标记成未提交,且不在所述有向无环图中表示。
2.根据权利要求1所述的多核架构下的持久性内存事务提交方法,其特征在于,所述持久性内存包括易失性处理器缓存和非易失性内存。
3.根据权利要求1所述的多核架构下的持久性内存事务提交方法,其特征在于,所述事务编号包括线程的唯一编号和线程本地事务编号,其中,所述线程的唯一编号在新线程注册到所述多核架构持久性内存事务系统时分配,所述线程本地事务编号在新事务开始时递增。
4.根据权利要求1所述的多核架构下的持久性内存事务提交方法,其特征在于,每个线程均有独立的日志区域,所述日志区域位于所述持久性内存中并采用固定格式组织,包括当前事务的数据内容、所述当前事务的事务编号以及所述当前事务的依赖关系。
5.根据权利要求1所述的多核架构下的持久性内存事务提交方法,其特征在于,所述锁资源为事务在执行中持有,用于避免其他事务对相同的数据进行读写。
6.根据权利要求1所述的多核架构下的持久性内存事务提交方法,其特征在于,所述持久化操作为线程调用CPU的持久化指令,将所述日志数据从CPU的缓存刷写至非易失内存。
7.根据权利要求1所述的多核架构下的持久性内存事务提交方法,其特征在于,所述等待所述依赖关系中的事务完成提交的过程为:
查询执行所述依赖关系中的事务的线程状态,直至线程正在执行的事务编号大于依赖关系中的事务的事务编号,将事务的执行结果返回给上层应用。
8.根据权利要求1所述的多核架构下的持久性内存事务提交方法,其特征在于,所述执行日志项的过程由多个线程并行执行,所述多核架构持久性内存事务系统将日志数据根据地址划分给不同的线程,每个线程按照所述拓扑排序的结果遍历所述有向无环图,解析每个日志项的内容,执行其管理的数据地址对应的内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010443099.8A CN111752685B (zh) | 2020-05-22 | 2020-05-22 | 多核架构下的持久性内存事务提交方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010443099.8A CN111752685B (zh) | 2020-05-22 | 2020-05-22 | 多核架构下的持久性内存事务提交方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111752685A CN111752685A (zh) | 2020-10-09 |
CN111752685B true CN111752685B (zh) | 2022-09-23 |
Family
ID=72673659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010443099.8A Active CN111752685B (zh) | 2020-05-22 | 2020-05-22 | 多核架构下的持久性内存事务提交方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111752685B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220311595A1 (en) * | 2021-03-24 | 2022-09-29 | International Business Machines Corporation | Reducing transaction aborts in execute-order-validate blockchain models |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101567805A (zh) * | 2009-05-22 | 2009-10-28 | 清华大学 | 并行文件系统发生故障后的恢复方法 |
CN101930378A (zh) * | 2010-07-08 | 2010-12-29 | 度科信息科技(上海)有限公司 | 并行大型分布系统中事务的切分方法 |
CN107851061A (zh) * | 2015-05-19 | 2018-03-27 | 净睿存储股份有限公司 | 远程存储器中硬件辅助的事务提交 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9513959B2 (en) * | 2007-11-21 | 2016-12-06 | Arm Limited | Contention management for a hardware transactional memory |
-
2020
- 2020-05-22 CN CN202010443099.8A patent/CN111752685B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101567805A (zh) * | 2009-05-22 | 2009-10-28 | 清华大学 | 并行文件系统发生故障后的恢复方法 |
CN101930378A (zh) * | 2010-07-08 | 2010-12-29 | 度科信息科技(上海)有限公司 | 并行大型分布系统中事务的切分方法 |
CN107851061A (zh) * | 2015-05-19 | 2018-03-27 | 净睿存储股份有限公司 | 远程存储器中硬件辅助的事务提交 |
Non-Patent Citations (1)
Title |
---|
Key_Value型NoSQL本地存储系统研究;马文龙 等;《计算机学报》;20180831;第41卷(第8期);1722-1751 * |
Also Published As
Publication number | Publication date |
---|---|
CN111752685A (zh) | 2020-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | Easy lock-free indexing in non-volatile memory | |
JP5964382B2 (ja) | 無限トランザクション型メモリ(utm)システムにおけるモード切り替えの実行 | |
EP2378420B1 (en) | Ownership reassignment in a shared-nothing database system | |
US10445238B1 (en) | Robust transactional memory | |
EP2972891B1 (en) | Multiversioned nonvolatile memory hierarchy for persistent memory | |
US8473950B2 (en) | Parallel nested transactions | |
US20100185703A1 (en) | Lock-free hash table based write barrier buffer for large memory multiprocessor garbage collectors | |
CN110727675B (zh) | 一种链表的处理方法及装置 | |
CN110515705B (zh) | 可扩展的持久性事务内存及其工作方法 | |
US10733101B2 (en) | Processing node, computer system, and transaction conflict detection method | |
US5619696A (en) | Program cache apparatus which associates the physical address of a physical page with both the logical address in a program cache space and the logical address in a process space | |
CN113515501A (zh) | 非易失性内存数据库管理系统恢复方法、装置和电子设备 | |
CN101339527B (zh) | 影子内存的备份方法及装置 | |
CN111752685B (zh) | 多核架构下的持久性内存事务提交方法 | |
US10671427B2 (en) | Snapshot isolation in graphical processing unit hardware transactional memory | |
CN113220490A (zh) | 异步写回持久化内存的事务持久化方法及系统 | |
CN113722052B (zh) | 一种基于数据双版本的非易失内存更新方法 | |
JP7450735B2 (ja) | 確率的データ構造を使用した要求の低減 | |
CN111506458B (zh) | 一种提升f2fs事务性能的方法、模块及系统 | |
Mishra et al. | Hyflowcpp: A distributed transactional memory framework for c++ | |
JP3107094B2 (ja) | 共用バッファのロック期間短縮処理方法及び装置 | |
Shu et al. | Luna-TX: An Optimized Transactional Mechanism for Persistent Memory | |
CN112214171B (zh) | 一种面向SQLite数据库的非易失性内存缓冲区设计方法 | |
US20240103760A1 (en) | Systems and methods for hardware-based asynchronous persistence | |
Huang et al. | EFLightPM: An efficient and lightweight persistent memory system |
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 |