一种分布式闪存事务处理方法

文档序号:9288381阅读:422来源:国知局
一种分布式闪存事务处理方法
【技术领域】
[0001]本发明涉及闪存存储技术领域,特别涉及一种分布式闪存事务处理方法。
【背景技术】
[0002]闪存为一种非易失性存储器,根据内部连接结构的不同分为NOR型和NAND型,由于NAND型结构相对简单,在闪存SSD得到广泛使用。闪存单元单向编程,并且读写以页为单位,擦除以块为单位,重写一页之前需要先擦除,因此闪存中使用异地数据更新的策略。闪存页带有OOB (out-of-band)区,可作为页元数据。
[0003]闪存的异地数据更新使数据新旧版本得以在存储中共存,因而比较适合于事务处理。事务处理的目的就在于保证事务操作的原子性,以及事务执行发生故障时,服务器对象仍然保证一致性,分布式事务通常使用原子提交协议(常用两阶段提交协议)控制事务的执行过程,使用日志技术记录数据临时版本和事务执行状态。事务经历两阶段提交,将产生5次状态日志写,此外日志中还有与事务数据同样大小的临时版本,过多日志写,带来时间和空间的双重开销,因此一些研究试图使用修改映射的方法(影子分页技术)避免数据从日志写回的操作开销,然而传统存储的随机读写性能有限,而且局部性的破坏也会带来性能的牺牲,所以传统的存储不这样做。闪存存储则能克服以上不足,一些基于闪存的集中式事务设计将临时数据组织为影子版本,事务提交时才将影子版本更新到FTL映射表,避免了数据先写入日志再写回的过程。而在分布式事务中,要想减少日志(临时版本记录和状态记录)提高事务处理性能,需要保证事务逻辑的正常进行且保证故障后有足够冗余数据用于恢复。除了日志操作外,较多的通信也带来了开销,并且两阶段提交协议为阻塞式协议,在通信不通畅时,协议开销巨大。

【发明内容】

[0004]本发明旨在至少解决上述技术问题之一。
[0005]为此,本发明的一个目的在于提出一种分布式闪存事务处理方法。
[0006]为了实现上述目的,本发明的第一方面的实施例公开了一种分布式闪存事务处理方法,包括以下步骤:S1:进行事务两阶段提交,去除两阶段提交协议的状态日志记录,内化为事务接口中的闪存元数据操作,以协调者最后提交作为分布式事务结束标识;S2:事务进行过程中,数据临时对象存储为影子版本,使用影子映射表存储所述影子版本的地址或页在事务处理中的状态、页元数据记录事务信息、事务元数据页记录事务状态和事务状态表记录事务元数据页地址;S3:当协调者或参与者故障时,扫描部分存储,读取闪存元数据,恢复FTL映射表、影子映射表、事务状态表,从而确定事务在两阶段提交中的状态。
[0007]据本发明实施例的一种分布式闪存事务处理方法,可大幅减少状态记录的次数,仅需要一次事务元数据页操作和相关映射表操作即可完成;并且减少数据写入量,只需占用约一个闪存页的大小;该方法避免了新数据从日志写回到原地址的操作,仅需要对FTL映射表进行修改即可完成新旧数据版本的转换。总之,该方法减少了状态记录和临时版本记录的开销,从而提高分布式事务的处理效率;由于恢复时扫描的空间更少,事务状态恢复的开销也更小。
[0008]另外,根据本发明上述实施例的一种分布式闪存事务处理方法,还可以具有如下附加的技术特征:
[0009]进一步地,所述影子映射表为内存结构,在两阶段提交第一阶段,记录影子版本地址,在两阶段提交第二阶段记录参与事务的页的状态。
[0010]进一步地,所述协调者或参与者进行事务的过程中,额外分配一个闪存页作为事务元数据页,记录两阶段提交第二阶段事务状态。
[0011 ] 进一步地,所述事务状态表为持久存储的映射表,在事务元数据页写入之前,事务状态表将存储事务ID到事务元数据页地址的映射。
[0012]进一步地,所述影子映射表中的页处于两阶段提交第一阶段,所述页的元数据用于判断事务是否准备就绪;所述事务状态表中的事务处于两阶段提交第二阶段,其中所述事务状态表存储的事务元数据页用于判断事务的提交或放弃。
[0013]进一步地,所述步骤S2进一步包括:事务写时,所述影子映射表存储新数据的位置;
[0014]所述页元数据记录逻辑页号、事务ID、事务页数目,事务提交时,新数据的位置更新到FTL映射表,变为用户可读;
[0015]所述影子映射表记录提交标识,事务元数据页记录事务提交,如果事务放弃,所述影子映射表记录放弃标识,所述事务元数据页记录事务放弃,新数据置为无效;
[0016]如果闪存块全部利用且所述闪存块上的事务全部完成则标记为CHECKED ±夬,如果存在没有完成的事务则标记为WAIT块;若闪存块部分利用,标记为UPDATE块;若闪存块未利用,标记为FREE块;块第一页用于区别块状态;
[0017]在两阶段提交过程发生故障时,恢复所述FTL映射表、所述影子映射表和所述事务状态表用于确定事务状态,扫描所述WAIT块和所述UPDATE块。
[0018]本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
【附图说明】
[0019]本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0020]图1为本发明一个实施例的用户态访问闪存的过程示意图;
[0021]图2为本发明一个实施例的事务主要操作接口及其主要参数描述图;
[0022]图3为本发明一个实施例的分布式闪存事务处理示意图;
[0023]图4为本发明一个实施例的一个分布式事务执行过程的示意图;
[0024]图5为本发明一个实施例的一个分布式事务执行过程页元数据示意图;
[0025]图6为本发明一个实施例的协调者或参与者故障时,恢复协调者或参与者中事务状态的流程图。
【具体实施方式】
[0026]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
[0027]在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0028]在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0029]参照下面的描述和附图,将清楚本发明的实施例的这些和其他方面。在这些描述和附图中,具体公开了本发明的实施例中的一些特定实施方式,来表示实施本发明的实施例的原理的一些方式,但是应当理解,本发明的实施例的范围不受此限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
[0030]以下结合附图描述根据本发明实施例的一种分布式闪存事务处理方法。
[0031]为了方便理解,先介绍分布式闪存环境和分布式事务。在一些分布式系统如分布式文件系统、分布式数据库管理系统中,事务操作分散在不同的服务器,称为分布式事务,一般使用两阶段提交协议进行事务的处理。由于分布式系统对高性能的需求不断增加,而闪存比传统存储读写效率更高,因此,分布式系统开始采用闪存为服务器存储介质,从而构成了一个基于闪存的分布式环境。事务进行时,有多个服务器参与其中,某一个服务器承担协调者的角色,其余参与的服务器为参与者,协调者与参与者通信,控制事务的操作与提交。
[0032]在本发明的描述中,需要说明的是,以“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 Transact1n Table)为事务状态表,结构类似GMT,记录着事务元数据页的地址。“0P-REQ”为操作请求;“V0TE-REQ”为投票请求,协调者询问参与者事务操作是否完成;“C0MMIT-REQ”和“AB0RT-REQ”分别为提交和放弃请求,协调者做出全局事务的决策后,将发送相应的请求到参与者;“ACK”为参与者执行全局决策后返回给协调者的确认信息。“COMMIT”和“ABORT”分别为事务提交标识和事务放弃标识。
[0033]下面结合附图描述根据本发明实施例的分布式闪存事务处理方法。
[0034]以闪存为存储介质进行事务处理时,先要设计实现闪存操作接口,图1为在用户态进行闪存操作的示意图,在闪存转换层实现事务操作接口,事务接口通过LINUX操作系统的1CTL接口从内核导出到用户态,图2为主要的事务操作接口及其基本参数。
[0035]图3为本发明的分布式闪存事务处理示意图。分布式闪存事务处理的步骤包括:
[0036](I)协调者首先在本地启动事务处理,并发送请求操作命令(OP-REQ)至参与者启动事务处理;
[0037](2)协调者和参与者分别以影子页方式记录事务的读写数据(TxREAD或Tx
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1