CN106716395B - 事务处理的方法、装置及计算机系统 - Google Patents
事务处理的方法、装置及计算机系统 Download PDFInfo
- Publication number
- CN106716395B CN106716395B CN201480045678.XA CN201480045678A CN106716395B CN 106716395 B CN106716395 B CN 106716395B CN 201480045678 A CN201480045678 A CN 201480045678A CN 106716395 B CN106716395 B CN 106716395B
- Authority
- CN
- China
- Prior art keywords
- transaction
- affairs
- status
- information
- state
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1474—Saving, restoring, recovering or retrying in transactions
-
- 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/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- 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/54—Interprogram communication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种事务处理的方法、装置及计算机系统。该事务处理方法包括:接收事务处理请求,所述事务处理请求中携带有事务的事务数据;在非易失性内存中记录所述事务的状态信息,其中,所述事务的状态信息包括事务状态以及事务标识和地址,所述事务状态为未提交状态;根据所述地址,将所述事务数据写入所述非易失性内存;根据所述事务标识将所述事务的事务状态修改为提交状态;将所述事务数据从所述非易失性内存写入所述计算机系统的外存;根据所述事务标识将所述事务的事务状态修改为备份状态。通过上述方式,能够提高事务数据的处理速度。
Description
【技术领域】
本申请涉及事务处理技术领域,尤其涉及一种事务处理的方法、装置及计算机系统。
【背景技术】
在许多大型、关键的应用程序中,计算机每秒钟都在执行大量的任务。当多个任务结合在一起完成一个业务要求,该业务要求可以被称为事务。其中,事务具有原子性和一致性。
为保证事务的原子性和一致性,现有事务处理通常采用写前日志(英文:Write-Ahead Logging,简称:WAL)的方法,具体的,现有计算机系统包括处理器、内存和外存,所述内存为动态随机存取存储器(英文:Dynamic Random Access Memory,简称:DRAM),外存设置有日志区。在接收到事务处理的请求时,处理器先将事务的事务数据从计算机系统的缓存中写入到内存,再将已写入内存的事务数据写入到外存的日志区。当事务的所有事务数据均写入到日志区后,处理器再将事务数据写入到外存中,实现所述事务的提交。
然而,上述现有事务处理方法的所有事务数据必须在写入内存之后再写入日志区中,且当所有事务数据均写入日志区时,才能提交事务。即,事务处理过程中必须对事务数据进行两次的写入动作,导致事务处理的速度缓慢。
【发明内容】
本申请提供了事务处理的方法、装置及计算机系统,能够提高事务数据的处理速度。
第一方面,本发明实施例提供了一种事务处理的方法,所述方法用于包括非易失性内存的计算机系统中,所述方法包括:接收事务处理请求,所述事务处理请求中携带有事务的事务数据;在非易失性内存中记录所述事务的状态信息,其中,所述事务的状态信息包括事务状态以及根据所述事务处理请求为所述事务分配的事务标识和地址,所述事务状态为未提交状态,所述未提交状态表示所述事务数据未全部写入所述非易失性内存中;根据所述地址,将所述事务数据写入所述非易失性内存;根据所述事务标识将所述事务的事务状态修改为提交状态,所述提交状态表示所述事务的事务数据已经全部写入所述非易失性内存中且未完全写入所述计算机系统的外存中;将所述事务数据从所述非易失性内存写入所述计算机系统的外存;根据所述事务标识将所述事务的事务状态修改为备份状态,所述备份状态表示所述事务的事务数据已全部写入所述计算机系统的外存中。
结合第一方面,在第一方面的第一可能实施例中,所述根据所述事务标识将所述事务的事务状态修改为提交状态之前,所述方法还包括:如果所述计算机系统重新启动,则根据所述非易失性内存中记录的所述事务的状态信息,确定所述事务的事务状态为未提交状态;删除所述事务数据以及所述事务的状态信息。
结合第一方面或第一方面的第一可能实施例,在第一方面的第二可能实施例中,所述根据所述事务标识将所述事务的事务状态修改为提交状态之后,所述方法还包括:如果所述计算机系统重新启动,则根据所述非易失性内存中记录的所述事务的状态信息,确定所述事务的事务状态为提交状态,并执行所述将所述事务数据从所述非易失性内存写入所述计算机系统的外存的动作。
结合第一方面、或第一方面的第一或第二可能实施例,在第一方面的第三可能实施例中,所述根据所述事务标识将所述事务的事务状态标记为备份状态之后,所述方法还包括:删除所述事务的事务数据。
第二方面,本发明实施例提供了一种事务处理的装置,所述装置用于包括非易失性内存的计算机系统中,所述装置包括:接收模块,用于接收事务处理请求,所述事务处理请求中携带有事务的事务数据;记录模块,用于在非易失性内存中记录所述事务的状态信息,其中,所述事务的状态信息包括所述事务标识以及根据所述事务处理请求为所述事务分配的事务标识和地址,所述事务状态为未提交状态,所述未提交状态表示所述事务数据未全部写入所述非易失性内存中;内存写入模块,用于根据所述地址,将所述事务数据写入所述非易失性内存;所述记录模块还用于在所述内存写入模块将所述事务数据写入所述非易失性内存后,根据所述事务标识将所述事务的事务状态修改为提交状态,所述提交状态表示所述事务的事务数据已经全部写入所述非易失性内存中且未完全写入所述计算机系统的外存中;外存写入模块,用于在所述记录模块将所述事务的事务状态修改为提交状态后,将所述事务数据从所述非易失性内存写入所述计算机系统的外存;所述记录模块还用于在所述外存写入模块将所述事务数据写入所述计算机系统的外存后,根据所述事务标识将所述事务的事务状态修改为备份状态,所述备份状态表示所述事务的事务数据已全部写入所述计算机系统的外存中。
结合第二方面,在第二方面的第一可能实施例中,还包括:状态确定模块,用于在所述记录模块将所述事务的事务状态修改为提交状态之前,如果所述计算机系统重新启动,则根据所述非易失性内存中记录的所述事务的状态信息,确定所述事务的事务状态为未提交状态;删除模块,用于在所述状态确定模块确定所述事务的事务状态为未提交状态时,删除所述事务数据以及所述事务的状态信息。
结合第二方面的第一可能实施例,在第二方面的第二可能实施例中,所述状态确定模块,还用于在所述记录模块将所述事务的事务状态修改为提交状态之后,若所述计算机重新启动,则根据所述非易失性内存中记录的所述事务的状态信息,确定所述事务的事务状态为提交状态,并触发所述外存写入模块执行所述将所述事务数据从所述非易失性内存写入所述计算机系统的外存的动作。
结合第二方面的第一或第二可能实施例,在第二方面的第三可能实施例中,所述删除模块,还用于在所述记录模块将所述事务的事务状态标记为备份状态之后,删除所述事务的事务数据。
第三方面,本发明实施例提供了一种计算机系统,所述计算机系统包括处理器和非易失性内存,其中:所述非易失性内存,用于存储数据;所述处理器用于:接收事务处理请求,所述事务处理请求中携带有事务的事务数据;在非易失性内存中记录所述事务的状态信息,其中,所述事务的状态信息包括所述事务标识以及根据所述事务处理请求为所述事务分配的事务标识和地址,所述事务状态为未提交状态,所述未提交状态表示所述事务数据未全部写入所述非易失性内存中;根据所述地址,将所述事务数据写入所述非易失性内存;根据所述事务标识将所述事务的事务状态修改为提交状态,所述提交状态表示所述事务的事务数据已经全部写入所述非易失性内存中且未完全写入所述计算机系统的外存中;将所述事务数据从所述非易失性内存写入所述计算机系统的外存;根据所述事务标识将所述事务的事务状态修改为备份状态,所述备份状态表示所述事务的事务数据已全部写入所述计算机系统的外存中。
结合第三方面,在第三方面的第一可能实施例中,在执行所述根据所述事务标识将所述事务的事务状态修改为提交状态之前,所述处理器还用于:在所述计算机系统重新启动时,根据所述非易失性内存中记录的所述事务的状态信息,确定所述事务的事务状态为未提交状态;删除所述事务数据以及所述事务的状态信息。
结合第三方面或第三方面的第一可能实施例,在第三方面的第二可能实施例中,在执行所述根据所述事务标识将所述事务的事务状态修改为提交状态之后,所述处理器还用于:在所述计算机重新启动时,根据所述非易失性内存中记录的所述事务的状态信息,确定所述事务的事务状态为提交状态,并执行所述将所述事务数据从所述非易失性内存写入所述计算机系统的外存的动作。
结合第三方面、或第三方面的第一或第二可能实施例,在第三方面的第三可能实施例中,在执行所述根据所述事务标识将所述事务的事务状态修改为备份状态之后,所述处理器还用于:删除所述事务的事务数据。
在本发明实施例提供的事务处理方法中,利用非易失性内存断电数据不丢失的特性,将事务的事务数据写入到非易失性内存后直接写入到外存,而无需将事务数据写入日志区,从而简化了事务处理的过程,提高了事务处理的速度。并且,在本发明实施例中,在非易失性内存中还通过设置不同的事务状态来记录事务的事务数据是否全部写入非易失性内存或是否全部写入外存,使得计算机系统可根据事务状态确定当前事务的事务数据的写入情况,进而保证了事务的原子性和一致性。
【附图说明】
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例的附图。
图1是本发明实施例提供的一种计算机系统的结构示意图;
图2是本发明实施例提供的一种事务处理的方法的流程图;
图3是本发明实施例提供的另一种事务处理的方法的流程图;
图4是本发明实施例提供的一种事务处理的装置的结构示意图;
图5是本发明实施例提供的另一种事务处理的装置的结构示意图。
【具体实施例】
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
为便于理解本申请事务处理的方法,先对应用所述方法的计算机系统和事务进行说明。请参阅图1,图1是本发明实施例提供的一种计算机系统的结构示意图。如图1所示,计算机系统100包括处理器110、非易失性内存120和外存130。在本发明实施例中,事务可以包括处理器110通过非易失性内存120将数据写入外存130,其中,要写入外存的数据为所述事务的事务数据。
非易失性内存(NonVolatile Memory,NVM)120,用于临时存储事务的事务数据和状态信息。具体的,在非易失性内存120中可以设置数据区121和数据状态区122。其中,数据区121用于保存事务的事务数据,数据状态区122用于保存事务的状态信息。
在本发明实施例中,非易失性内存是指内存为非易失性存储器。具体的,非易失性内存120可以包括相变存储器(Phase Change Memory,PCM)、阻变存储器(ResistiveRandom Access Memory,RRAM)、磁性随机存储器(Magnetic Random Access Memory,MRAM)和铁电式随机存储器(Ferroelectric Random Access Memory,FRAM)等为代表的下一代非易失性存储器(Non-Volatile Memory,NVM)。由于下一代NVM具有访问速度快,并且能够按字节(Byte)寻址,将数据以位(bit)为单位写入非易失性存储器中,因此,下一代非易失性存储器能够挂在内存总线上,作为内存被CPU直接访问。当计算机系统100关闭电源后,非易失性内存120中的信息依然存在。
外存130用于永久存储事务的事务数据。外存130可以为硬盘驱动器(英文:HardDisk Drive,简称:HDD)、固态硬盘(英文:Solid State Drive,简称:SDD)或者其他存储器。
处理器110用于执行本申请事务处理方法,以实现将事务数据通过内存120写入到外存130。可以理解的是,处理器可以包括CPU,还可以包括其他特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
请继续参阅图2,图2是本发明实施例提供的一种事务处理的方法的流程图。所述事务处理方法用于图1所示的计算机系统100,并由计算机系统100的处理器110执行该事务处理方法可以包括:
201:处理器接收事务处理请求,所述事务处理请求中携带有事务的事务数据。
其中,所述事务处理请求可以是用户输入的或者由处理器所执行的其他程序触发的,如为用户输入的写指令。
处理器在接收到事务处理请求后,根据所述事务处理请求,为此次事务分配事务标识和地址。所述事务标识用于区分不同事务。所述地址为所述事务的事务数据在非易失性内存的写入地址。
202:处理器在非易失性内存中记录所述事务的状态信息,其中,所述事务的状态信息包括事务状态以及根据所述事务处理请求为所述事务分配的事务标识和地址,所述事务状态为未提交状态。
处理器在分配此次事务的事务标识和地址后,为此次事务建立状态信息。事务的状态信息可包括事务标识、事务状态以及地址。所述事务状态用于表示事务数据的写入状态,主要分为未提交状态、提交状态和备份状态。其中,未提交状态表示所述事务的事务数据未全部写入非易失性内存中。未提交状态可以用于指示处理器在执行其他程序时或者计算机系统重启时不能使用所述事务的事务数据。提交状态表示所述事务的事务数据已经全部写入非易失性内存中且未完全写入外存中。提交状态可以用于指示处理器在执行其他程序时或者计算机系统重启时可以使用非易失性内存中的所述事务的事务数据。备份状态表示所述事务的事务数据已全部写入外存中。备份状态可以用于指示处理器在执行其他程序时或者计算机系统重启时可以使用外存中的所述事务的事务数据。换一种表达方式,当某个事务的事务状态为备份状态时,表示所述事务以及处理完成。
例如,处理器110将此次事务的事务数据、事务标识和地址经过双列直插式存储模块(英文:Dual-Inline-Memory-Modules,简称:DIMM)或快捷外设互联标准(英文:Peripheral Component Interconnect Express,简称:PCIe)等接口写入非易失性内存的数据状态区中,以作为此次事务的状态信息。其中,此次事务的事务标识为第一事务,第一事务的事务数据包括四个,则在数据状态区中建立下表1,以记录第一事务的状态信息。
表1
事务标识 | 事务状态 | 地址 |
第一事务 | 未提交状态 | 事务数据地址1 |
第一事务 | 未提交状态 | 事务数据地址2 |
第一事务 | 未提交状态 | 事务数据地址3 |
第一事务 | 未提交状态 | 事务数据地址4 |
当然,在其他实施例中,也可为同一事务的所有事务数据只建立一个状态信息,该状态信息中的地址,则为该事务所有的事务数据分别在非易失性内存中的地址。故对本申请事务的状态信息的记录方式不作具体限定。需要说明的是,实际应用中,计算机系统可以记录正在处理的多个事务的状态信息。
203:处理器根据所述地址,将所述事务的事务数据写入所述非易失性内存。
例如,在数据状态区中记录完事务的状态信息之后,按照第一事务的状态信息中的地址,处理器将事务处理请求中携带的第一事务的事务数据经DIMM或PCIe等接口写入非易失性内存的数据区中。
204:处理器根据所述事务标识将所述事务的事务状态修改为提交状态。
例如,处理器将第一事务的所有事务数据都写入到非易失性内存的数据区后,在非易失性内存的数据状态区中查找事务标识为第一事务的状态信息,并将第一事务的状态信息中的事务状态修改为提交状态,如下表2。此时,第一事务完成提交。
表2
事务标识 | 事务状态 | 地址 |
第一事务 | 提交状态 | 事务数据地址1 |
第一事务 | 提交状态 | 事务数据地址2 |
第一事务 | 提交状态 | 事务数据地址3 |
第一事务 | 提交状态 | 事务数据地址4 |
205:处理器将所述事务数据从所述非易失性内存写入所述计算机系统的外存。
例如,在第一事务提交完成后,处理器将第一事务的事务数据从非易失性内存的数据区经串行硬盘接口技术(英文:Serial Advanced Technology Attachment,简称:SATA)或者网络驱动(英文:Network Drivers)等接口写入外存。
206:处理器根据所述事务标识将所述事务的事务状态修改为备份状态。
例如,处理器将第一事务的事务数据全部写入外存后,在非易失性内存的数据状态区中查找事务标识为第一事务的状态信息,并将事务标识为第一事务的状态信息中的事务状态修改为备份状态,如下表3。此时,第一事务的事务数据已成功写入外存,第一事务结束。
表3
结合实际应用进行说明:用户在计算机系统中新建文件A并对文件A进行写操作。此时,处理器接收到用户的写操作指令,则需要处理将文件A写入外存的文件系统中的事务。具体的,处理器在接收到用户的写指令时,为此次事务分配事务标识和地址,并将要此次事务的状态信息记录在非易失性内存的数据状态区中,其中,该状态信息中的事务状态为未提交状态;建立此次事务的状态信息后,将文件A写入到非易失性内存的数据区中;在文件A写入完成后,将此次事务的状态信息的事务状态标记为提交状态,此时,完成了事务的提交,即实现了用户的写操作,虽然,此时处理器如果接收到读文件A的指令则可从非易失性内存中读取文件A,但实际上文件A并未写入到外存的文件系统中,即无法实现计算机系统对文件A的永久保存。故在事务提交后,将数据区中的文件A写入到外存的文件系统上,此时,事务结束。
可选地,为节省非易失性内存的存储空间,在将所述事务的事务状态修改为备份状态后,处理器可删除非易失性内存中所述事务的事务数据,且还可进一步删除非易失性内存中所述事务的状态信息,其中,当所述事务的事务数据和状态信息均删除时,对处理器删除所述事务的事务数据和删除事务的状态信息的先后顺序不作限定。
又或者,如果非易失性内存的存储空间比较充足,则在将所述事务的事务状态修改为备份状态后,处理器可先不删除非易失性内存中的所述事务的事务数据,以便于在后续需要使用所述事务的事务数据时,无需从外存读取,可直接从内存中读取,加快读取的速度。
本发明实施例中,利用非易失性内存断电数据不丢失的特性,将事务的事务数据写入到非易失性内存后直接写入到外存,而无需将事务数据写入日志区,从而简化了事务处理的过程,提高了事务处理的速度。并且,在本发明实施例中,在非易失性内存中还通过设置不同的事务状态来记录事务的事务数据是否全部写入非易失性内存或是否全部写入外存,使得计算机系统可根据事务状态确定当前事务的事务数据的写入情况,进而保证了事务的原子性和一致性。
另外,由于非易失性存储器写入数据时无需先擦除原先保存的数据,且本身的读写数据速度远高于普通的DRAM,故利用非易失性存储器作为写入事务数据的内存,可极大提高了事务数据的读写速度,即进一步提高了事务处理的速度。
优化地,本申请事务处理方法还可实现事务恢复,即,处理器在执行上述事务处理方法过程中,如果计算机系统重新启动,则可根据非易失性内存中的事务的事务状态对所述事务进行事务恢复。
具体请参阅图3,图3是本发明实施例提供的另一种事务处理的方法的流程图。本实施例中,所述方法用于包括非易失性内存的计算机系统中,所述方法由所述计算机系统的处理器执行,所述方法包括:
301:处理器接收事务处理请求,所述事务处理请求中携带有事务的事务数据。
302:处理器在非易失性内存中记录所述事务的状态信息,其中,所述事务的状态信息包括事务状态以及根据所述事务处理请求为所述事务分配的事务标识和地址,所述事务状态为未提交状态。
303:处理器根据所述地址,将所述事务数据写入所述非易失性内存。
304:处理器判断计算机系统是否重新启动,如果是,则执行305,如果否,则执行307。
305:处理器根据所述非易失性内存中记录的所述事务的状态信息,确定所述事务的事务状态为未提交状态。
例如,在处理器执行将第一事务的事务数据写入非易失性内存时,计算机系统掉电或者崩溃后重新启动,此时,处理器根据非易失性内存中第一事务的状态信息如上表1,确定第一事务的事务状态为未提交状态。
306:处理器删除所述事务数据以及所述事务的状态信息。
例如,处理器确定第一事务的事务状态为未提交状态,即表示在计算机系统重启前,第一事务的事务数据没有完全更新到非易失性内存的数据区中。故根据事务的原子性,非易失性内存中的第一事务的事务数据不可更新到外存上。故,处理器删除非易失性内存的数据区中第一事务的所有事务数据,并删除数据状态区中的第一事务的状态信息即删除上表1,以实现事务的回滚。
307:处理器根据所述事务标识将所述事务的事务状态修改为提交状态。
308:处理器判断计算机系统是否重新启动,如果是,则执行309,如果否,则执行310。
309:处理器根据所述非易失性内存中记录的所述事务的状态信息,确定所述事务的事务状态为提交状态,并执行310。
例如,在处理器执行将第一事务的事务状态修改为提交状态之后,计算机系统掉电或者崩溃后重新启动,此时,处理器根据非易失性内存中第一事务的状态信息如上表2,确定第一事务的事务状态为提交状态,也即表示在计算机系统重启前,该第一事务的事务数据已经完全更新到非易失性内存的数据区中。故根据事务的一致性,处理器执行310,以将数据区中的第一事务的事务数据写入外存中。
310:处理器将所述事务数据从所述非易失性内存写入所述计算机系统的外存。
311:处理器根据所述事务标识将所述事务的事务状态修改为备份状态。
312:处理器删除所述事务的事务数据。
在处理器执行将所述事务的事务状态修改为备份状态之后,如果计算机系统重新启动,则处理器根据非易失性内存中所述事务的状态信息如上表3,确定所述事务的事务状态为备份状态,也即表示在计算机系统重启前,所述事务的事务数据已经完全更新到外存中。故处理器可执行删除所述事务的事务数据和状态信息的动作,以实现对非易失性内存的存储空间的回收。
需要说明的是,图3所示的流程图仅为更清楚说明本申请事务恢复的过程,而不应理解为对本申请方法步骤的限定。实质上,处理器也未必执行判断计算机系统是否重启的动作,图3中的处理器执行判断计算机系统是否重启的步骤仅表示对计算机系统的状态的说明,即表示此时如果出现计算机系统重启,则处理器执行图3中对应“是”指向的步骤,如果不出现计算机系统重启,则执行图3中对应“否”执行的步骤。而且,计算机系统是否重启的状态未必限定在303、307之后,而是可能出现在处理器执行图1所示的任意一个步骤的之前或之后、或者执行图1所示的任意一个步骤的过程中。然而,无论计算机系统重启出现在哪一步骤中,本申请处理器均根据以下原则执行对应的事务恢复步骤:在执行根据所述事务标识将所述事务的事务状态修改为提交状态之前,如果出现计算机系统重启,则确定所述事务的事务状态为未提交状态,执行事务恢复步骤305和306;在执行根据所述事务标识将所述事务的事务状态修改为提交状态之后,如果出现计算机系统重启,则确定所述事务的事务状态为提交状态,并执行事务恢复步骤310和311。
本实施例,利用非易失性内存掉电数据不丢失的特性,将事务数据保存早非易失性内存中,使得当事务处理过程中非易失性内存出现重新启动时,非易失性内存中事务的事务数据不会丢失,可直接从非易失性内存中恢复事务的事务数据,故提高了事务的恢复速度。而且,通过在非易失性内存中设置事务状态来记录事务的事务数据是否全部写入非易失性内存和是否写入外存,当事务处理过程中非易失性内存出现重新启动时,根据事务状态可确定所述事务的事务数据的写入情况,并在事务的事务数据未全部写入非易失性内存时,不将所述事务的事务数据写入外存,而是直接将所述事务的事务数据删除,在事务的事务数据全部写入非易失性内存且未写入外存时,才将事务数据写入到外存,保证了事务的原子性和一致性。
请参阅图4,图4是本发明实施例提供的一种事务处理的装置的结构示意图。本实施例中,所述装置用于包括非易失性内存和外存的计算机系统。该非易失性内存可设置有数据区和数据状态区。数据区用于保存事务的事务数据,数据状态区用于保存事务的状态信息。本申请利用非易失性内存具有掉电不丢失数据的特性,保证了事务数据和状态信息的可靠性。事务处理的装置420包括接收模块423、记录模块421、内存写入模块422和外存写入模块424。
接收模块423用于接收事务处理请求,所述事务处理请求中携带有事务的事务数据。
其中,所述事务处理请求可以是用户输入的或者由处理器所执行的其他程序触发的,如为用户输入的写指令。
接收模块423在接收到事务处理请求后,还可根据所述事务处理请求,为此次事务分配事务标识和地址。所述事务标识用于区分不同事务。所述地址为所述事务的事务数据在非易失性内存的写入地址。
记录模块421用于在非易失性内存中记录所述事务的状态信息,其中,所述事务的状态信息包括所述事务标识以及根据所述事务处理请求为所述事务分配的事务标识和地址,所述事务状态为未提交状态。
当接收模块423为此次事务分配好事务标识和地址时,记录模块421为此次事务建立状态信息。所述事务的状态信息可包括事务标识、事务状态以及地址。所述事务状态用于表示事务的事务数据的写入状态,主要分为未提交状态、提交状态和备份状态。其中,未提交状态表示所述事务的事务数据未全部写入非易失性内存中,即用于指示计算机系统在执行其他程序时或者计算机系统重启时不能使用所述事务的事务数据;提交状态表示所述事务的事务数据已经全部写入非易失性内存中且未完全写入外存中,即用于指示计算机系统在执行其他程序时或者计算机系统重启时可以使用非易失性内存中的所述事务的事务数据;备份状态表示所述事务的事务数据已全部写入外存中,即用于指示计算机系统在执行其他程序时或者计算机系统重启时可以使用外存中的所述事务的事务数据,即所述事务已经结束。
例如,此次事务的事务标识为第一事务,第一事务的事务数据包括四个,则在数据状态区中建立上表1,以记录第一事务的状态信息。
当然,在其他实施例中,也可为同一事务的所有事务数据只建立一个状态信息,该状态信息中的地址,则为该事务所有的事务数据分别在非易失性内存中的地址。故对本申请事务的状态信息的记录方式不作具体限定。
内存写入模块422用于根据所述地址,将所述事务数据写入所述非易失性内存。
例如,在记录模块421记录完事务的状态信息之后,内存写入模块422按照第一事务的状态信息中的地址,将事务处理请求中携带的第一事务的事务数据写入非易失性内存的数据区中。
记录模块421还用于在所述内存写入模块422将所述事务数据写入所述非易失性内存后,根据所述事务标识将所述事务的事务状态修改为提交状态。
例如,当内存写入模块422将第一事务的事务数据都写入到非易失性内存的数据区后,记录模块421在非易失性内存的数据状态区中查找事务标识为第一事务的状态信息,并将第一事务的状态信息中的事务状态修改为提交状态,如上表2。此时,第一事务完成提交。
外存写入模块424用于在所述记录模块将所述事务的事务状态修改为提交状态后,将所述事务数据从所述非易失性内存写入所述计算机系统的外存。
例如,在第一事务提交完成后,外存写入模块424将第一事务的事务数据从非易失性内存的数据区写入到外存。
记录模块421还用于在所述外存写入模块424将所述事务数据写入所述计算机系统的外存后,根据所述事务标识将所述事务的事务状态修改为备份状态。
例如,在外存写入模块424将第一事务的事务数据全部写入外存后,记录模块421在非易失性内存的数据状态区中查找事务标识为第一事务的状态信息,并将第一事务的状态信息中的事务状态修改为备份状态,如上表3。此时,第一事务的事务数据已成功写入外存中,第一事务处理结束。
可选地,为节省非易失性内存的存储空间,非易失性在将所述事务的事务状态修改为备份状态后,处理器可删除非易失性内存中所述事务的事务数据和状态信息,其中,对处理器可在删除所述事务的事务数据和删除事务的状态信息的先后顺序不作限定。又或者,如果非易失性内存的存储空间比较充足,则在将所述事务的事务状态修改为备份状态后,处理器可先不删除非易失性内存中的所述事务的事务数据,以便于在后续需要使用所述事务的事务数据时,无需从外存读取,可直接从内存中读取,加快读取的速度。
优化地,本申请事务处理装置还可实现事务恢复,即,事务处理装置在执行上述事务处理方法过程中,如果计算机系统重新启动,则可根据非易失性内存中的事务的事务状态对所述事务进行事务恢复。
具体请参阅图5,图5是本发明实施例提供的另一种事务处理的装置的结构示意图。优化于上一实施例的事务处理装置420,本实施例的事务处理装置520还包括状态确定模块525、删除模块526。
状态确定模块525用于在记录模块421将所述事务的事务状态修改为提交状态之前,如果所述计算机系统重新启动,则根据所述非易失性内存中记录的所述事务的状态信息,确定所述事务的事务状态为未提交状态。
例如,在内存写入模块422执行将第一事务的事务数据写入非易失性内存时,计算机系统掉电或者崩溃后重新启动,此时,状态确定模块525根据非易失性内存中第一事务的状态信息如上表1,确定第一事务的事务状态为未提交状态。
删除模块526用于在所述状态确定模块525确定所述事务的事务状态为未提交状态时,删除所述事务数据以及所述事务的状态信息。
例如,删除模块526删除非易失性内存的数据区中第一事务的所有事务数据,并删除非易失性内存的数据状态区中的第一事务的状态信息即删除上表1,以实现事务的回滚。
可选地,状态确定模块525还用于在所述记录模块421将所述事务的事务状态修改为提交状态之后,若所述计算机重新启动,则根据所述非易失性内存中记录的所述事务的状态信息,确定所述事务的事务状态为提交状态,并触发所述外存写入模块424执行所述将所述事务数据从所述非易失性内存写入所述计算机系统的外存的动作。
例如,在记录模块421执行将第一事务的事务状态修改为提交状态之后,计算机系统掉电或者崩溃后重新启动,此时,状态确定模块525根据非易失性内存中第一事务的状态信息如上表2,确定第一事务的事务状态为提交状态,则将非易失性内存中的第一事务的事务数据写入外存中。
可选地,为节省非易失性内存的存储空间,删除模块526还用于在所述记录模块421将所述事务的事务状态标记为备份状态之后,删除所述事务的事务数据,以实现对非易失性内存的存储空间的回收。
可以理解的是,在其他实施例中,如果非易失性内存的存储空间比较充足,事务处理装置520在事务数据的事务状态修改为备份状态之后,不作任何操作。
本申请还提供一种计算机系统。请结合参阅图1,图1是本申请计算机系统一实施例的结构示意图。本实施例的计算机系统100包括处理器110、非易失性内存120和外存130。其中,处理器110与非易失性内存120间可通过DIMM或PCIe等接口进行连接,非易失性内存120与外存可通过SATA或网络驱动等接口进行连接。
非易失性内存120和外存130均用于存储数据。具体地,非易失性内存120用于暂存处理器110的处理数据,如处理器110处理的事务的事务数据和状态信息,外存130用于永久存储计算机系统的数据,如处理器110处理的事务数据。
处理器110还可以称为CPU(Central Processing Unit,中央处理单元),用于:
接收事务处理请求,所述事务处理请求中携带有事务的事务数据;
在非易失性内存120中记录所述事务的状态信息,其中,所述事务的状态信息包括所述事务标识以及根据所述事务处理请求为所述事务分配的事务标识和地址,所述事务状态为未提交状态,所述未提交状态表示所述事务数据未全部写入所述非易失性内存中;
根据所述地址,将所述事务数据写入所述非易失性内存120;
根据所述事务标识将所述事务的事务状态修改为提交状态,所述提交状态表示所述事务的事务数据已经全部写入所述非易失性内存中且未完全写入所述计算机系统的外存中;
将所述事务数据从所述非易失性内存120写入所述计算机系统的外存130;
根据所述事务标识将所述事务的事务状态修改为备份状态,所述备份状态表示所述事务的事务数据已全部写入所述计算机系统的外存中。
可选地,在执行所述根据所述事务标识将所述事务的事务状态修改为提交状态之前,处理器110用于:
在所述计算机系统重新启动时,根据所述非易失性内存120中记录的所述事务的状态信息,确定所述事务的事务状态为未提交状态;
删除所述事务数据以及所述事务的状态信息。
可选地,在执行所述根据所述事务标识将所述事务的事务状态修改为提交状态之后,处理器110还用于:
在所述计算机重新启动时,根据所述非易失性内存120中记录的所述事务的状态信息,确定所述事务的事务状态为提交状态,并执行所述将所述事务数据从所述非易失性内存120写入所述计算机系统的外存130的动作。
可选地,在执行所述根据所述事务标识将所述事务的事务状态修改为备份状态之后,处理器110还用于删除所述事务的事务数据。
可选地,非易失性内存120可包括数据区121和数据状态区122,其中,数据区用于存储事务的事务数据,数据状态区用于存储事务的状态信息。
在本发明实施例中,
处理器110可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器110中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器110可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于外存130,处理器110读取外存130中的信息,结合其硬件完成上述方法的步骤。
上述方案中,利用非易失性内存断电数据不丢失的特性,将事务的事务数据写入到非易失性内存后直接写入到外存,而无需将事务数据写入日志区,从而简化了事务处理的过程,提高了事务处理的速度。并且,在本发明实施例中,在非易失性内存中还通过设置不同的事务状态来记录事务的事务数据是否全部写入非易失性内存或是否全部写入外存,使得计算机系统可根据事务状态确定当前事务的事务数据的写入情况,进而保证了事务的原子性和一致性。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (12)
1.一种事务处理的方法,所述方法用于包括非易失性内存的计算机系统中,其特征在于,包括:
接收事务处理请求,所述事务处理请求中携带有事务的事务数据;
在非易失性内存中记录所述事务的状态信息,其中,所述事务的状态信息包括事务状态以及根据所述事务处理请求为所述事务分配的事务标识和地址,所述事务状态为未提交状态,所述未提交状态表示所述事务数据未全部写入所述非易失性内存中;
根据所述地址,将所述事务数据写入所述非易失性内存;
根据所述事务标识将所述事务的事务状态修改为提交状态,所述提交状态表示所述事务的事务数据已经全部写入所述非易失性内存中且未完全写入所述计算机系统的外存中;
将所述事务数据从所述非易失性内存写入所述计算机系统的外存;
根据所述事务标识将所述事务的事务状态修改为备份状态,所述备份状态表示所述事务的事务数据已全部写入所述计算机系统的外存中。
2.根据权利要求1所述的方法,其特征在于,所述根据所述事务标识将所述事务的事务状态修改为提交状态之前,所述方法还包括:
如果所述计算机系统重新启动,则根据所述非易失性内存中记录的所述事务的状态信息,确定所述事务的事务状态为未提交状态;
删除所述事务数据以及所述事务的状态信息。
3.根据权利要求1所述的方法,其特征在于,所述根据所述事务标识将所述事务的事务状态修改为提交状态之后,所述方法还包括:
如果所述计算机系统重新启动,则根据所述非易失性内存中记录的所述事务的状态信息,确定所述事务的事务状态为提交状态,并执行所述将所述事务数据从所述非易失性内存写入所述计算机系统的外存的动作。
4.根据权利要求1所述的方法,其特征在于,所述根据所述事务标识将所述事务的事务状态标记为备份状态之后,所述方法还包括:
删除所述事务的事务数据。
5.一种事务处理的装置,所述装置用于包括非易失性内存的计算机系统中,其特征在于,所述装置包括:
接收模块,用于接收事务处理请求,所述事务处理请求中携带有事务的事务数据;
记录模块,用于在非易失性内存中记录所述事务的状态信息,其中,所述事务的状态信息包括事务状态以及根据所述事务处理请求为所述事务分配的事务标识和地址,所述事务状态为未提交状态,所述未提交状态表示所述事务数据未全部写入所述非易失性内存中;
内存写入模块,用于根据所述地址,将所述事务数据写入所述非易失性内存;
所述记录模块还用于在所述内存写入模块将所述事务数据写入所述非易失性内存后,根据所述事务标识将所述事务的事务状态修改为提交状态,所述提交状态表示所述事务的事务数据已经全部写入所述非易失性内存中且未完全写入所述计算机系统的外存中;
外存写入模块,用于在所述记录模块将所述事务的事务状态修改为提交状态后,将所述事务数据从所述非易失性内存写入所述计算机系统的外存;
所述记录模块还用于在所述外存写入模块将所述事务数据写入所述计算机系统的外存后,根据所述事务标识将所述事务的事务状态修改为备份状态,所述备份状态表示所述事务的事务数据已全部写入所述计算机系统的外存中。
6.根据权利要求5所述的装置,其特征在于,还包括:
状态确定模块,用于在所述记录模块将所述事务的事务状态修改为提交状态之前,如果所述计算机系统重新启动,则根据所述非易失性内存中记录的所述事务的状态信息,确定所述事务的事务状态为未提交状态;
删除模块,用于在所述状态确定模块确定所述事务的事务状态为未提交状态时,删除所述事务数据以及所述事务的状态信息。
7.根据权利要求6所述的装置,其特征在于,
所述状态确定模块,还用于在所述记录模块将所述事务的事务状态修改为提交状态之后,若所述计算机重新启动,则根据所述非易失性内存中记录的所述事务的状态信息,确定所述事务的事务状态为提交状态,并触发所述外存写入模块执行所述将所述事务数据从所述非易失性内存写入所述计算机系统的外存的动作。
8.根据权利要求6或7所述的装置,其特征在于,
所述删除模块,还用于在所述记录模块将所述事务的事务状态标记为备份状态之后,删除所述事务的事务数据。
9.一种计算机系统,其特征在于,所述计算机系统包括处理器和非易失性内存,其中:
所述非易失性内存,用于存储数据;
所述处理器用于:
接收事务处理请求,所述事务处理请求中携带有事务的事务数据;
在非易失性内存中记录所述事务的状态信息,其中,所述事务的状态信息包括事务状态以及根据所述事务处理请求为所述事务分配的事务标识和地址,所述事务状态为未提交状态,所述未提交状态表示所述事务数据未全部写入所述非易失性内存中;
根据所述地址,将所述事务数据写入所述非易失性内存;
根据所述事务标识将所述事务的事务状态修改为提交状态,所述提交状态表示所述事务的事务数据已经全部写入所述非易失性内存中且未完全写入所述计算机系统的外存中;
将所述事务数据从所述非易失性内存写入所述计算机系统的外存;
根据所述事务标识将所述事务的事务状态修改为备份状态,所述备份状态表示所述事务的事务数据已全部写入所述计算机系统的外存中。
10.根据权利要求9所述的计算机系统,其特征在于,在执行所述根据所述事务标识将所述事务的事务状态修改为提交状态之前,所述处理器还用于:
在所述计算机系统重新启动时,根据所述非易失性内存中记录的所述事务的状态信息,确定所述事务的事务状态为未提交状态;
删除所述事务数据以及所述事务的状态信息。
11.根据权利要求9所述的计算机系统,其特征在于,在执行所述根据所述事务标识将所述事务的事务状态修改为提交状态之后,所述处理器还用于:
在所述计算机重新启动时,根据所述非易失性内存中记录的所述事务的状态信息,确定所述事务的事务状态为提交状态,并执行所述将所述事务数据从所述非易失性内存写入所述计算机系统的外存的动作。
12.根据权利要求9所述的计算机系统,其特征在于,在执行所述根据所述事务标识将所述事务的事务状态修改为备份状态之后,所述处理器还用于:
删除所述事务的事务数据。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2014/094779 WO2016101165A1 (zh) | 2014-12-24 | 2014-12-24 | 事务处理的方法、装置及计算机系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106716395A CN106716395A (zh) | 2017-05-24 |
CN106716395B true CN106716395B (zh) | 2019-04-19 |
Family
ID=56148902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480045678.XA Active CN106716395B (zh) | 2014-12-24 | 2014-12-24 | 事务处理的方法、装置及计算机系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10467044B2 (zh) |
EP (1) | EP3229147A4 (zh) |
JP (1) | JP6401866B2 (zh) |
KR (1) | KR101910759B1 (zh) |
CN (1) | CN106716395B (zh) |
WO (1) | WO2016101165A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112286909B (zh) * | 2020-10-29 | 2023-09-05 | 平安科技(深圳)有限公司 | 执行状态确定方法、装置、服务器及存储介质 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10268502B2 (en) * | 2017-06-29 | 2019-04-23 | Intel Corporation | Methods and apparatus to perform atomic transactions in nonvolatile memory under hardware transactional memory |
KR20190046169A (ko) * | 2017-10-25 | 2019-05-07 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 데이터 처리 시스템의 동작방법 |
US10445238B1 (en) * | 2018-04-24 | 2019-10-15 | Arm Limited | Robust transactional memory |
KR102450411B1 (ko) * | 2018-05-09 | 2022-09-30 | 삼성에스디에스 주식회사 | 블록체인 기반 트랜잭션 처리 방법, 장치 및 그 시스템 |
CN111240851B (zh) * | 2018-11-29 | 2024-05-24 | 合肥优荃信息科技有限公司 | 基于切面编程的事务处理方法、装置、设备及系统 |
JP7313458B2 (ja) * | 2019-09-18 | 2023-07-24 | 華為技術有限公司 | ストレージシステム、ストレージノード及びデータ記憶方法 |
KR102412423B1 (ko) | 2020-01-09 | 2022-06-23 | 성균관대학교산학협력단 | 비휘발성 메모리 장치, 이것을 포함하는 컴퓨팅 시스템 및 이것의 동작 방법 |
CN113296683B (zh) * | 2020-04-07 | 2022-04-29 | 阿里巴巴集团控股有限公司 | 数据存储方法、装置、服务器和存储介质 |
WO2023043439A1 (en) * | 2021-09-15 | 2023-03-23 | Intel Corporation | Routing of memory transactions |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101089857A (zh) * | 2007-07-24 | 2007-12-19 | 中兴通讯股份有限公司 | 一种内存数据库事务管理方法及系统 |
CN102831069A (zh) * | 2012-06-30 | 2012-12-19 | 华为技术有限公司 | 内存处理方法、内存管理设备 |
CN103077222A (zh) * | 2012-12-31 | 2013-05-01 | 中国科学院计算技术研究所 | 机群文件系统分布式元数据一致性保证方法及系统 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5386111A (en) * | 1977-01-07 | 1978-07-29 | Toshiba Corp | Monitor device |
US4507751A (en) | 1982-06-21 | 1985-03-26 | International Business Machines Corporation | Method and apparatus for logging journal data using a log write ahead data set |
JPH06332777A (ja) * | 1993-05-18 | 1994-12-02 | Hitachi Ltd | トランザクション処理方式 |
US5386111A (en) * | 1993-10-08 | 1995-01-31 | Zimmerman; H. Allen | Optical detection of water droplets using light refraction with a mask to prevent detection of unrefracted light |
JP4287900B2 (ja) | 2001-03-19 | 2009-07-01 | 株式会社リコー | 書き込み遅延データベース管理システム、及びプログラム |
JP3607658B2 (ja) * | 2001-10-05 | 2005-01-05 | 株式会社東芝 | 携帯可能電子装置 |
CA2422176C (en) * | 2003-03-14 | 2009-07-21 | Ibm Canada Limited - Ibm Canada Limitee | Method and apparatus for interrupting updates to a database to provide read-only access |
CN1205547C (zh) * | 2003-05-19 | 2005-06-08 | 清华大学 | 用普通scsi磁盘代替存储光纤网络中光纤磁盘阵列的方法 |
US8850141B2 (en) * | 2003-07-15 | 2014-09-30 | International Business Machines Corporation | System and method for mirroring data |
US20070220059A1 (en) * | 2006-03-20 | 2007-09-20 | Manyi Lu | Data processing node |
JP5386111B2 (ja) * | 2008-05-22 | 2014-01-15 | 株式会社日立ソリューションズ | ファイルシステムの記録方法 |
US20110321015A1 (en) * | 2010-06-23 | 2011-12-29 | Yen Hsiang Chew | Hardware triggering mechanism for software debugger |
FR2991796A1 (fr) * | 2012-06-12 | 2013-12-13 | Inside Secure | Procede de sauvegarde de donnees, a l'exterieur d'un microcircuit securise |
WO2014142908A1 (en) | 2013-03-14 | 2014-09-18 | Hewlett-Packard Development Company, L.P. | Multiversioned nonvolatile memory hierarchy for persistent memory |
-
2014
- 2014-12-24 WO PCT/CN2014/094779 patent/WO2016101165A1/zh active Application Filing
- 2014-12-24 JP JP2017534214A patent/JP6401866B2/ja active Active
- 2014-12-24 CN CN201480045678.XA patent/CN106716395B/zh active Active
- 2014-12-24 KR KR1020177020304A patent/KR101910759B1/ko active IP Right Grant
- 2014-12-24 EP EP14908733.0A patent/EP3229147A4/en not_active Ceased
-
2017
- 2017-06-23 US US15/631,585 patent/US10467044B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101089857A (zh) * | 2007-07-24 | 2007-12-19 | 中兴通讯股份有限公司 | 一种内存数据库事务管理方法及系统 |
CN102831069A (zh) * | 2012-06-30 | 2012-12-19 | 华为技术有限公司 | 内存处理方法、内存管理设备 |
CN103077222A (zh) * | 2012-12-31 | 2013-05-01 | 中国科学院计算技术研究所 | 机群文件系统分布式元数据一致性保证方法及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112286909B (zh) * | 2020-10-29 | 2023-09-05 | 平安科技(深圳)有限公司 | 执行状态确定方法、装置、服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
KR101910759B1 (ko) | 2018-12-19 |
KR20170098900A (ko) | 2017-08-30 |
WO2016101165A1 (zh) | 2016-06-30 |
JP6401866B2 (ja) | 2018-10-10 |
JP2018504692A (ja) | 2018-02-15 |
EP3229147A4 (en) | 2017-12-27 |
CN106716395A (zh) | 2017-05-24 |
US20170286150A1 (en) | 2017-10-05 |
US10467044B2 (en) | 2019-11-05 |
EP3229147A1 (en) | 2017-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106716395B (zh) | 事务处理的方法、装置及计算机系统 | |
EP3726364B1 (en) | Data write-in method and solid-state drive array | |
JP6759459B2 (ja) | 物理メディアアウェア空間的結合ジャーナル処理及びリプレイ | |
CN101154190B (zh) | 映射信息管理设备和方法 | |
CN101784993B (zh) | 使用闪存作为存储器的设备及其操作方法 | |
US9292434B2 (en) | Method and apparatus for restoring flash translation layer (FTL) in non-volatile storage device | |
CN106255953B (zh) | 持久性数据存储体中的前向参考记录的方法和系统 | |
CN111026326B (zh) | 存储器控制器、存储装置及管理元数据的方法 | |
CN108399134A (zh) | 存储装置及存储装置的操作方法 | |
US10489289B1 (en) | Physical media aware spacially coupled journaling and trim | |
CN109871182A (zh) | 存储装置及其操作方法及发出命令的方法 | |
US10817390B2 (en) | Imparting durability to a transactional memory system | |
CN108073357A (zh) | 以raid方式存储数据的存储装置 | |
US10459803B2 (en) | Method for management tables recovery | |
US10089255B2 (en) | High performance host queue monitor for PCIE SSD controller | |
TW201409475A (zh) | 高效能持續性記憶體 | |
TW201235832A (en) | Drive assisted system checkpointing | |
US20170017406A1 (en) | Systems and methods for improving flash-oriented file system garbage collection | |
CN108920293A (zh) | 固态硬盘写失败的处理方法和固态硬盘 | |
CN111338846B (zh) | 一种基于多核恢复l2p表的方法和装置 | |
KR102085272B1 (ko) | 비휘발성 메모리를 이용한 인메모리 데이터베이스의 데이터 처리 방법 및 인메모리 데이터베이스 | |
CN110287064A (zh) | 一种磁盘数据的还原方法、装置及电子设备 | |
CN104081362A (zh) | 使用多级单元的版本存储器 | |
US20240176542A1 (en) | Interworking method external device and storage device | |
CN111367830B (zh) | 主机参与的重建ftl表的方法及其存储设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |