CN105005535B - 一种分布式闪存事务处理方法 - Google Patents
一种分布式闪存事务处理方法 Download PDFInfo
- Publication number
- CN105005535B CN105005535B CN201510435889.0A CN201510435889A CN105005535B CN 105005535 B CN105005535 B CN 105005535B CN 201510435889 A CN201510435889 A CN 201510435889A CN 105005535 B CN105005535 B CN 105005535B
- Authority
- CN
- China
- Prior art keywords
- affairs
- transaction
- page
- metadata
- shadow
- 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
- 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
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
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)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式闪存事务处理方法,包括以下步骤:S1:进行事务两阶段提交,去除两阶段提交协议的状态日志记录,内化为事务接口中的闪存元数据操作,以协调者最后提交作为分布式事务结束标识;S2:事务进行过程中,数据临时对象存储为影子版本,使用影子映射表存储所述影子版本的地址或页在事务处理中的状态、页元数据记录事务信息、事务元数据页记录事务状态和事务状态表记录事务元数据页地址;S3:当协调者或参与者故障时,扫描部分存储,读取闪存元数据,恢复FTL映射表、影子映射表、事务状态表,从而确定事务在两阶段提交中的状态。本发明具有如下优点:减少日志,提高分布式闪存环境下事务处理效率。
Description
技术领域
本发明涉及闪存存储技术领域,特别涉及一种分布式闪存事务处理方法。
背景技术
闪存为一种非易失性存储器,根据内部连接结构的不同分为NOR型和NAND型,由于NAND型结构相对简单,在闪存SSD得到广泛使用。闪存单元单向编程,并且读写以页为单位,擦除以块为单位,重写一页之前需要先擦除,因此闪存中使用异地数据更新的策略。闪存页带有OOB(out-of-band)区,可作为页元数据。
闪存的异地数据更新使数据新旧版本得以在存储中共存,因而比较适合于事务处理。事务处理的目的就在于保证事务操作的原子性,以及事务执行发生故障时,服务器对象仍然保证一致性,分布式事务通常使用原子提交协议(常用两阶段提交协议)控制事务的执行过程,使用日志技术记录数据临时版本和事务执行状态。事务经历两阶段提交,将产生5次状态日志写,此外日志中还有与事务数据同样大小的临时版本,过多日志写,带来时间和空间的双重开销,因此一些研究试图使用修改映射的方法(影子分页技术)避免数据从日志写回的操作开销,然而传统存储的随机读写性能有限,而且局部性的破坏也会带来性能的牺牲,所以传统的存储不这样做。闪存存储则能克服以上不足,一些基于闪存的集中式事务设计将临时数据组织为影子版本,事务提交时才将影子版本更新到FTL映射表,避免了数据先写入日志再写回的过程。而在分布式事务中,要想减少日志(临时版本记录和状态记录)提高事务处理性能,需要保证事务逻辑的正常进行且保证故障后有足够冗余数据用于恢复。除了日志操作外,较多的通信也带来了开销,并且两阶段提交协议为阻塞式协议,在通信不通畅时,协议开销巨大。
发明内容
本发明旨在至少解决上述技术问题之一。
为此,本发明的一个目的在于提出一种分布式闪存事务处理方法。
为了实现上述目的,本发明的第一方面的实施例公开了一种分布式闪存事务处理方法,包括以下步骤:S1:进行事务两阶段提交,去除两阶段提交协议的状态日志记录,内化为事务接口中的闪存元数据操作,以协调者最后提交作为分布式事务结束标识;S2:事务进行过程中,数据临时对象存储为影子版本,使用影子映射表存储所述影子版本的地址或页在事务处理中的状态、页元数据记录事务信息、事务元数据页记录事务状态和事务状态表记录事务元数据页地址;S3:当协调者或参与者故障时,扫描部分存储,读取闪存元数据,恢复FTL映射表、影子映射表、事务状态表,从而确定事务在两阶段提交中的状态。
据本发明实施例的一种分布式闪存事务处理方法,可大幅减少状态记录的次数,仅需要一次事务元数据页操作和相关映射表操作即可完成;并且减少数据写入量,只需占用约一个闪存页的大小;该方法避免了新数据从日志写回到原地址的操作,仅需要对FTL映射表进行修改即可完成新旧数据版本的转换。总之,该方法减少了状态记录和临时版本记录的开销,从而提高分布式事务的处理效率;由于恢复时扫描的空间更少,事务状态恢复的开销也更小。
另外,根据本发明上述实施例的一种分布式闪存事务处理方法,还可以具有如下附加的技术特征:
进一步地,所述影子映射表为内存结构,在两阶段提交第一阶段,记录影子版本地址,在两阶段提交第二阶段记录参与事务的页的状态。
进一步地,所述协调者或参与者进行事务的过程中,额外分配一个闪存页作为事务元数据页,记录两阶段提交第二阶段事务状态。
进一步地,所述事务状态表为持久存储的映射表,在事务元数据页写入之前,事务状态表将存储事务ID到事务元数据页地址的映射。
进一步地,所述影子映射表中的页处于两阶段提交第一阶段,所述页的元数据用于判断事务是否准备就绪;所述事务状态表中的事务处于两阶段提交第二阶段,其中所述事务状态表存储的事务元数据页用于判断事务的提交或放弃。
进一步地,所述步骤S2进一步包括:事务写时,所述影子映射表存储新数据的位置;
所述页元数据记录逻辑页号、事务ID、事务页数目,事务提交时,新数据的位置更新到FTL映射表,变为用户可读;
所述影子映射表记录提交标识,事务元数据页记录事务提交,如果事务放弃,所述影子映射表记录放弃标识,所述事务元数据页记录事务放弃,新数据置为无效;
如果闪存块全部利用且所述闪存块上的事务全部完成则标记为CHECKED块,如果存在没有完成的事务则标记为WAIT块;若闪存块部分利用,标记为UPDATE块;若闪存块未利用,标记为FREE块;块第一页用于区别块状态;
在两阶段提交过程发生故障时,恢复所述FTL映射表、所述影子映射表和所述事务状态表用于确定事务状态,扫描所述WAIT块和所述UPDATE块。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明一个实施例的用户态访问闪存的过程示意图;
图2为本发明一个实施例的事务主要操作接口及其主要参数描述图;
图3为本发明一个实施例的分布式闪存事务处理示意图;
图4为本发明一个实施例的一个分布式事务执行过程的示意图;
图5为本发明一个实施例的一个分布式事务执行过程页元数据示意图;
图6为本发明一个实施例的协调者或参与者故障时,恢复协调者或参与者中事务状态的流程图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
参照下面的描述和附图,将清楚本发明的实施例的这些和其他方面。在这些描述和附图中,具体公开了本发明的实施例中的一些特定实施方式,来表示实施本发明的实施例的原理的一些方式,但是应当理解,本发明的实施例的范围不受此限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
以下结合附图描述根据本发明实施例的一种分布式闪存事务处理方法。
为了方便理解,先介绍分布式闪存环境和分布式事务。在一些分布式系统如分布式文件系统、分布式数据库管理系统中,事务操作分散在不同的服务器,称为分布式事务,一般使用两阶段提交协议进行事务的处理。由于分布式系统对高性能的需求不断增加,而闪存比传统存储读写效率更高,因此,分布式系统开始采用闪存为服务器存储介质,从而构成了一个基于闪存的分布式环境。事务进行时,有多个服务器参与其中,某一个服务器承担协调者的角色,其余参与的服务器为参与者,协调者与参与者通信,控制事务的操作与提交。
在本发明的描述中,需要说明的是,以“LPN”(Logic Page Number)为前缀的术语表示逻辑页号,即用户程序所使用的闪存页地址,以“PPN”(Physical Page Number)为前缀的术语表示物理页号,为闪存内实际操作的物理页地址。以“TxID”为前缀的术语表示事务ID,对不同的事务进行区分。“TxCNT”,为一个服务器上某事务所操作的闪存页数目。以“BUF”为前缀的术语表示闪存页的数据。“GMT”(Global Mapping Table)为FTL映射表,管理逻辑地址到物理地址的映射,用户程序操作一个LPN,通过FTL映射表找到对应的PPN,而后对PPN所指的实际位置进行操作。“GST”(Global Shadow Table)为影子映射表,结构类似GMT,也是进行地址映射,主要是记录事务操作过程临时版本的地址,事务未提交时,通过LPN可查到临时版本。“GTT”(Global Transaction Table)为事务状态表,结构类似GMT,记录着事务元数据页的地址。“OP-REQ”为操作请求;“VOTE-REQ”为投票请求,协调者询问参与者事务操作是否完成;“COMMIT-REQ”和“ABORT-REQ”分别为提交和放弃请求,协调者做出全局事务的决策后,将发送相应的请求到参与者;“ACK”为参与者执行全局决策后返回给协调者的确认信息。“COMMIT”和“ABORT”分别为事务提交标识和事务放弃标识。
下面结合附图描述根据本发明实施例的分布式闪存事务处理方法。
以闪存为存储介质进行事务处理时,先要设计实现闪存操作接口,图1为在用户态进行闪存操作的示意图,在闪存转换层实现事务操作接口,事务接口通过LINUX操作系统的IOCTL接口从内核导出到用户态,图2为主要的事务操作接口及其基本参数。
图3为本发明的分布式闪存事务处理示意图。分布式闪存事务处理的步骤包括:
(1)协调者首先在本地启动事务处理,并发送请求操作命令(OP-REQ)至参与者启动事务处理;
(2)协调者和参与者分别以影子页方式记录事务的读写数据(TxREAD或TxWrite);
(3)协调者发送请求投票命令(VOTE-REQ)至参与者,并等待参与者回复赞成(VOTE-YES)或取消(VOTE-NO);
(4)协调者根据本地执行结果与参与者返回消息,决定事务提交状态,并发送事务提交命令(COMMIT-REQ)或事务放弃命令(ABORT-REQ)至参与者;
(5)参与者执行本地的提交(TxCOMMIT)或放弃(TxABORT)操作,将操作结果记录于闪存元数据中;
(6)参与者发送回复(ACK)命令至协调者,告知参与者执行完毕(END);
(7)协调者接收到回复命令后,执行本地的提交(TxCOMMIT)或放弃(TxABORT)操作,将操作结果记录于闪存元数据中,并标记事务完成(TxEND)。
图4为一个分布式事务过程协调者和参与者操作示意图。图4中,事务ID为TxID1,全局事务操作包括在两台服务器上都更新逻辑地址为LPN1的页,未进行事务之前,LPN对应物理地址为PPN。
协调者开始事务,向参与者发送OP-REQ,协调者和参与者调用是事务写接口进行具体的更新操作,新数据写入PPN1,GST保存映射(LPN1,PPN1)。此时,如果进行事务状态查询,可以发现对于LPN1,GST映射到PPN1,GMT和GST映射的地址不一致,事务操作完成,仍为第一阶段。
接下来,协调者发送VOTE-REQ,询问参与者操作结果,参与者已经在PPN1写入新数据BUF1,返回VOTE-YES,协调者自身也将新数据BUF1写入了PPN1,决策为“提交”,协调者向参与者发送COMMIT-REQ,参与者进行提交操作,事务元数据页PPN2记录事务状态为“提交”,GTT加入映射(TxID1,PPN2)记录事务元数据页地址,将GMT中(LPN1,PPN)更新为(LPN1,PPN1),PPN处数据置为无效,等待垃圾收集,GST中对应LPN1的位置设置为提交码,辅助状态查询。此时,进行状态查询,传入TxID1使用GTT可以查到PPN2,确定为提交,如果没有其他事务对LPN1进行操作,那么传入LPN1通过GST也可以确定事务状态为提交。参与者提交完成后,向协调者发送ACK,协调者完成提交表示事务结束。
若出现参与者或协调者子事务操作无法完成的情况,即协调者收到VOTE-NO,协调者将做出放弃的决策,GMT将不会更新,事务元数据页将记录“放弃”。
图5进一步表示了图4的三个状态下数据页的内容,主要用于表示页元数据区所保存的数据。对于事务数据页,如PPN,PPN1,记录事务ID和页逻辑地址,还有TxCNT。TxCNT主要用于参与者进行多页操作的情况,在最后一页操作中,TxCNT将置为参与者操作的页数目,用于表示参与者完成了子事务操作。对于事务元数据页,如PPN2,记录事务ID。
事务进行中,闪存空间采取类似日志的分配方式,某个块上所有页都被占用且与这些页相关的事务已经完成,则标记块为CHECKED;若存在事务没有完成则为WAIT;未被利用的块为FREE块,部分利用的为UPDATE块。事务操作从UPDATE块分配空间,若UPDATE分配完则将其归为WAIT或CHECKED,而后从FREE块中提取块作为UPDATE块,继续上述过程,只有UPDATE状态变化的时候才进行映射(GTT,GMT)的持久化操作。
因此,在故障时,GMT、GTT未写回的内存结构将丢失,GST也丢失,需要扫描WAIT和UPDATE进行恢复。
图6主要描述了故障时服务器恢复事务状态的过程,主要包括以下步骤:
步骤(1)扫描找到所有UPDATE块和WAIT块。
步骤(2)扫描UPDATE块,恢复FTL映射表、影子映射表、事务状态表,确定位于这些块上的事务状态。页元数据中写有(LPN,TxID),并且事务元数据页在所有事务数据页之前,因此UPDATE块中的页采取顺序扫描的方式
步骤(2.1):首先判断一页(PPN)是否为事务元数据页,如果是则设置GTT(TxID,PPN)。
步骤(2.2)如果不是事务元数据页,则为数据页,读取该页,获取页元数据区中的TxID、LPN、TxCNT,通过TxID查询GTT,找到事务元数据页地址。
步骤(2.2.1)如果GTT记录有事务元数据页地址,说明此事务完成了提交或放弃,事务元数据页中记录事务为“提交”,则将(LPN,PPN)更新到GMT,如果是“放弃”,则该事务所有页等待垃圾收集。
步骤(2.2.2)如果GTT无记录,说明事务还未进行第二阶段,将(LPN,PPN)更新到GST,在之后的扫描过程中寻找TxID与此相同,但TxCNT不为0的页,如果存在,并且与此事务相关的页数目与TxCNT相等,说明事务操作正常完成,第一阶段投票为VOTE-YES。如果不存在TxCNT不为0的页或与此事务相关的页数目与TxCNT不相等,则为VOTE-NO,此时将GST中此事务的所有相关页在GST中的映射设置为(LPN,ABORT)。
此时GST并未完全恢复,之前从UPDATE状态变为WAIT状态的块中还存在第一阶段等待全局事务决策的事务。
步骤(3)扫描WAI块,读取页元数据的TxID。
步骤(3.1)对于GTT无记录的页,根据前述扫描UPDATE块的步骤(2.2.2)恢复GST,GTT有记录说明事务已提交或放弃,GST映射不需要保存这部分。
根据本发明的方法,闪存中分布式事务处理不需要进行5次状态写,而改为一次事务元数据页操作和相关映射表操作,并且只需占用大约1页的空间;页不需要进行新数据从日志写回的操作,而是对FTL映射表进行修改。方法减少了状态记录和临时版本记录的开销,从而提高分布式事务的处理效率,并且由于恢复时扫描的空间更少,事务状态恢复的开销也更小。
另外,本发明实施例的一种分布式闪存事务处理方法的其它构成以及作用对于本领域的技术人员而言都是已知的,为了减少冗余,不做赘述。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同限定。
Claims (6)
1.一种分布式闪存事务处理方法,其特征在于,包括以下步骤:
S1:进行事务两阶段提交,去除两阶段提交协议的状态日志记录,内化为事务接口中的闪存元数据操作,以协调者最后提交作为分布式事务结束标识;
S2:事务进行过程中,数据临时对象存储为影子版本,使用影子映射表存储所述影子版本的地址或页在事务处理中的状态、页元数据记录事务信息、事务元数据页记录事务状态和事务状态表记录事务元数据页地址;
S3:当协调者或参与者故障时,扫描部分存储,读取闪存元数据,恢复FTL映射表、影子映射表、事务状态表,从而确定事务在两阶段提交中的状态。
2.根据权利要求1所述的方法,其特征在于,所述影子映射表为内存结构,在两阶段提交第一阶段,记录影子版本地址,在两阶段提交第二阶段记录参与事务的页的状态。
3.根据权利要求1所述的方法,其特征在于,所述协调者或参与者进行事务的过程中,额外分配一个闪存页作为事务元数据页,记录两阶段提交第二阶段事务状态。
4.根据权利要求1所述的方法,其特征在于,所述事务状态表为持久存储的映射表,在事务元数据页写入之前,事务状态表将存储事务ID到事务元数据页地址的映射。
5.根据权利要求1所述的方法,其特征在于,所述影子映射表中的页处于两阶段提交第一阶段,所述页的元数据用于判断事务是否准备就绪;所述事务状态表中的事务处于两阶段提交第二阶段,其中所述事务状态表存储的事务元数据页用于判断事务的提交或放弃。
6.根据权利要求1所述的方法,其特征在于,所述步骤S2进一步包括:事务写时,所述影子映射表存储新数据的位置;
所述页元数据记录逻辑页号、事务ID、事务页数目,事务提交时,新数据的位置更新到FTL映射表,变为用户可读;
所述影子映射表记录提交标识,事务元数据页记录事务提交,如果事务放弃,所述影子映射表记录放弃标识,所述事务元数据页记录事务放弃,新数据置为无效;
如果闪存块全部利用且所述闪存块上的事务全部完成则标记为CHECKED块,如果存在没有完成的事务则标记为WAIT块;若闪存块部分利用,标记为UPDATE块;若闪存块未利用,标记为FREE块;块第一页用于区别块状态;
在两阶段提交过程发生故障时,恢复所述FTL映射表、所述影子映射表和所述事务状态表,通过恢复所述FTL映射表、所述影子映射表和所述事务状态表确定所述UPDATE块上的事务状态,扫描所述WAIT块和所述UPDATE块。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510435889.0A CN105005535B (zh) | 2015-07-22 | 2015-07-22 | 一种分布式闪存事务处理方法 |
US14/980,346 US10191851B2 (en) | 2015-07-22 | 2015-12-28 | Method for distributed transaction processing in flash memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510435889.0A CN105005535B (zh) | 2015-07-22 | 2015-07-22 | 一种分布式闪存事务处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105005535A CN105005535A (zh) | 2015-10-28 |
CN105005535B true CN105005535B (zh) | 2018-04-20 |
Family
ID=54378214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510435889.0A Active CN105005535B (zh) | 2015-07-22 | 2015-07-22 | 一种分布式闪存事务处理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10191851B2 (zh) |
CN (1) | CN105005535B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10290050B2 (en) * | 2016-02-02 | 2019-05-14 | International Business Machines Corporation | Lease-based management for atomic commit protocols |
CN106021277A (zh) * | 2016-04-27 | 2016-10-12 | 湖南蚁坊软件有限公司 | 一种基于状态的无锁分布式acid一致性实现方法 |
CN106528607B (zh) * | 2016-09-26 | 2019-10-29 | 武汉开目信息技术股份有限公司 | Pdm系统中属性数据与文件数据分离后一致性的保证方法 |
KR20190046169A (ko) * | 2017-10-25 | 2019-05-07 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 데이터 처리 시스템의 동작방법 |
CN108804026B (zh) * | 2018-03-27 | 2022-02-18 | 深圳忆联信息系统有限公司 | 一种固态硬盘全盘扫描方法及固态硬盘 |
US11099980B2 (en) * | 2018-05-09 | 2021-08-24 | International Business Machines Corporation | Host aware update write |
US20190042372A1 (en) * | 2018-06-19 | 2019-02-07 | Intel Corporation | Method and apparatus to recover data stored in persistent memory in a failed node of a computer cluster |
US11068400B2 (en) * | 2019-01-24 | 2021-07-20 | Vmware, Inc. | Failure-atomic logging for persistent memory systems with cache-coherent FPGAs |
CN112559386B (zh) * | 2020-12-22 | 2024-06-18 | 深圳忆联信息系统有限公司 | 提升ssd性能的方法、装置、计算机设备及存储介质 |
CN113918097A (zh) * | 2021-10-22 | 2022-01-11 | 云南电网有限责任公司电力科学研究院 | 一种分布式存储方法及系统 |
KR20230115931A (ko) * | 2022-01-27 | 2023-08-03 | 한국과학기술원 | 로그 기반 파일 시스템에서 쓰레기 수집과 트랜잭션의 병행 처리를 위한 쓰레기 수집 방법 및 장치 |
CN115827651B (zh) * | 2022-11-22 | 2023-07-04 | 中国科学院软件研究所 | 一种低能耗的机载嵌入式数据库内存事务管理方法及系统 |
-
2015
- 2015-07-22 CN CN201510435889.0A patent/CN105005535B/zh active Active
- 2015-12-28 US US14/980,346 patent/US10191851B2/en active Active
Non-Patent Citations (3)
Title |
---|
基于相变存储器和闪存的数据库事务恢复模型;范玉雷 等;《计算机学报》;20130831;第36卷(第8期);1582-1591 * |
基于闪存的数据库存储引擎技术研究;徐昶;《中国博士学位论文全文数据库》;20110715;第2011年卷(第7期);I138-37 * |
闪存存储系统综述;陆游游 等;《计算机研究与发展》;20130402;第50卷(第1期);49-59 * |
Also Published As
Publication number | Publication date |
---|---|
US20170024324A1 (en) | 2017-01-26 |
CN105005535A (zh) | 2015-10-28 |
US10191851B2 (en) | 2019-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105005535B (zh) | 一种分布式闪存事务处理方法 | |
US9405675B1 (en) | System and method for managing execution of internal commands and host commands in a solid-state memory | |
CN104268094B (zh) | 一种优化的闪存地址映射方法 | |
US7487303B2 (en) | Flash memory device and associated data merge method | |
CN101784993B (zh) | 使用闪存作为存储器的设备及其操作方法 | |
CN103197899B (zh) | 增强基于闪存的存储的寿命和性能 | |
Chung et al. | A survey of flash translation layer | |
US9990277B2 (en) | System and method for efficient address translation of flash memory device | |
CN102779095B (zh) | 闪存装置、存储器控制装置、存储器控制方法及存储系统 | |
CN107193758A (zh) | 一种固态硬盘的映射表管理方法及固态硬盘 | |
CN107992269A (zh) | 一种基于去重ssd的事务写入方法 | |
CN109582599A (zh) | 数据储存装置以及非挥发式存储器操作方法 | |
CN107818052B (zh) | 内存访问方法及装置 | |
CN100501868C (zh) | 基于NAND Flash存储器文件系统的实现方法 | |
CN106201335B (zh) | 存储系统 | |
CN105335098A (zh) | 一种基于存储级内存的日志文件系统性能提高方法 | |
JP2000505215A (ja) | メモリ管理 | |
CN105893274B (zh) | 一种面向异构内存系统建立检查点的装置 | |
CN101382953A (zh) | 在用户空间访问文件系统的接口系统与文件读、写方法 | |
JP2002366423A (ja) | フラッシュメモリの管理方法 | |
CN102411634B (zh) | 一种提升嵌入式数据库实时性的数据存储方法 | |
CN110309077B (zh) | 主机与设备协同工作的闪存转换层构建方法及装置 | |
CN107430494A (zh) | 远程直接存储器访问 | |
CN110088738A (zh) | 存储操作队列 | |
CN105718206A (zh) | 能够感知raid的闪存转换层及其实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |