一种基于共享存储池的事务处理方法及系统技术方案

技术编号:14760401 阅读:48 留言:0更新日期:2017-03-03 10:43
本发明专利技术公开了一种基于共享存储池的事务处理方法及系统,用于分布式文件系统,包括各个参与者将自身的反馈消息反馈至协调者,并记录本地日志,本地日志通过事务的ID来标记;协调者根据是否在第一预设时间内接收到所有参与者发送的反馈消息及是的情况下的所有参与者的反馈消息判断事务的状态,并相应地记录一条包括事务的ID及状态的全局日志到共享存储池;当参与者在第二预设时间内没有接收到协调者发送的操作命令时,参与者根据事务的ID去共享存储池中查找全局日志并根据查找到的全局日志确定事务的状态,并根据事务的状态进行相应的操作。本发明专利技术能够使得参与者在没有按时接收到协调者发送的操作命令时仍能够在确定事务的状态,提高了容错性。

【技术实现步骤摘要】

本专利技术涉及分布式文件系统
,特别是涉及一种基于共享存储池的事务处理方法及系统
技术介绍
随着大型网站的各种高并发访问、海量数据处理等场景越来越多,如何实现网站的可扩展等目标就显得越来越重要。为了解决这一系列问题,分布式文件系统应运而生。在分布式文件系统中通常利用两阶段提交协议进行事务处理,二阶段提交是在计算机网络以及数据库领域内,为了使基于分布式文件系统架构下的所有节点(元数据服务器)在进行事务提交时保持一致性而设计的一种算法。在分布式文件系统中,每个节点虽然可以知晓自己的操作是成功还是失败,却无法知道其他节点的操作是成功还是失败。当一个事务跨越多个节点时,为了保持事务的ACID特性,需要从该事务对应的多个节点中选取一个节点作为协调者来统一掌控其他节点(称作参与者)的操作结果并最终指示这些节点是否要把操作结果进行真正的提交(比如将更新后的数据写入磁盘等等)。因此,二阶段提交的算法思路可以概括为:参与者将自身的操作成败的消息反馈至协调者,再由协调者根据所有参与者的反馈消息决定各参与者是要进行提交操作还是中止操作。具体地,参与者在将自身的操作成败消息反馈至协调者以便协调者来判定事务的状态后,通常情况下参与者在一定时间内会接收到协调者发送的操作命令,这里的操作命令为执行命令或者中止命令,但实际应用中存在一些情况例如在网络故障或者协调者出错的情况下,参与者接收不到协调者发送的操作命令,使得参与者并不能确定此时事务的状态,进而也就不能进行相应的操作。因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。
技术实现思路
本专利技术的目的是提供一种基于共享存储池的事务处理方法,能够使得参与者在没有按时接收到协调者发送的操作命令时仍能够在确定事务的状态,提高了容错性;本专利技术的另一目的是提供一种基于共享存储池的事务处理系统。为解决上述技术问题,本专利技术提供了一种基于共享存储池的事务处理方法,用于分布式文件系统,包括:步骤S11:各个参与者将自身的反馈消息反馈至协调者,并记录本地日志,所述本地日志通过事务的ID来标记;步骤S12:协调者根据是否在第一预设时间内接收到所有参与者发送的反馈消息及是的情况下的所有参与者的反馈消息判断事务的状态,并相应地记录一条包括所述事务的ID及状态的全局日志到共享存储池;步骤S13:当所述参与者在第二预设时间内没有接收到所述协调者发送的操作命令时,所述参与者根据所述事务的ID去所述共享存储池中查找所述全局日志并根据查找到的所述全局日志确定所述事务的状态,并根据所述事务的状态进行相应的操作。优选地,步骤S12的过程具体为:步骤S121:所述协调者判断是否在第一预设时间内接收到所有参与者发送的反馈消息,如果是,则进入步骤S122,否则,进入步骤S124;步骤S122:判断是否所有参与者发送的反馈消息均为就绪消息,如果是,则进入步骤S123,否则,进入步骤S124;步骤S123:所述协调者判断所述事务为可执行,并记录一条包括所述事务的ID及状态的全局日志到共享存储池,并设置所述状态为成功;步骤S124:所述协调者判断所述事务为不可执行,并记录一条包括所述事务的ID及状态的全局日志到共享存储池,并设置所述状态为失败。优选地,步骤S13的过程具体为:当所述参与者在第二预设时间内没有接收到所述协调者发送的操作命令时,所述参与者根据所述事务的ID去查找所述存储池中查找所述全局日志;在查找到所述全局日志且所述全局日志中记录的所述事务的状态为成功时,所述参与者执行相应的元数据操作,当所述全局日志中记录的所述事务的状态为失败时,所述参与者进行回滚操作。优选地,所述本地日志包括操作类型、文件路径和元数据服务器标识。优选地,步骤S13还包括:确定故障类型,所述故障类型包括网络故障或者所述协调者出错。为解决上述技术问题,本专利技术还提供了一种基于共享存储池的事务处理系统,用于分布式文件系统,包括:反馈单元,用于各个参与者将自身的反馈消息反馈至协调者,并记录本地日志,所述本地日志通过事务的ID来标记;判断单元,用于协调者根据是否在第一预设时间内接收到所有参与者发送的反馈消息及是的情况下的所有参与者的反馈消息判断事务的状态,并相应地记录一条包括所述事务的ID及状态的全局日志到共享存储池;查找单元,用于当所述参与者在第二预设时间内没有接收到所述协调者发送的操作命令时,所述参与者根据所述事务的ID去所述共享存储池中查找所述全局日志并根据查找到的所述全局日志确定所述事务的状态,并根据所述事务的状态进行相应的操作。优选地,所述判断单元具体包括:第一判断单元,用于所述协调者判断是否在第一预设时间内接收到所有参与者发送的反馈消息,如果是,则触发所述第二判断单元,否则,触发所述第二确定单元;第二判断单元,用于判断是否所有参与者发送的反馈消息均为就绪消息,如果是,则触发所述第一确定单元,否则,触发所述第二确定单元;第一确定单元,用于所述协调者判断所述事务为可执行,并记录一条包括所述事务的ID及状态的全局日志到共享存储池,并设置所述状态为成功;第二确定单元,用于所述协调者判断所述事务为不可执行,并记录一条包括所述事务的ID及状态的全局日志到共享存储池,并设置所述状态为失败。优选地,所述查找单元具体包括:查找子单元,用于当所述参与者在第二预设时间内没有接收到所述协调者发送的操作命令时,所述参与者根据所述事务的ID去查找所述存储池中查找所述全局日志;执行单元,用于在查找到所述全局日志且所述全局日志中记录的所述事务的状态为成功时,所述参与者执行相应的元数据操作,当所述全局日志中记录的所述事务的状态为失败时,所述参与者进行回滚操作。优选地,所述本地日志包括操作类型、文件路径和元数据服务器标识。优选地,所述查找单元还包括:故障确定单元,用于确定故障类型,所述故障类型包括网络故障或者所述协调者出错。本专利技术提供了一种基于共享存储池的事务处理方法及系统,用于分布式文件系统,包括各个参与者将自身的反馈消息反馈至协调者,并记录本地日志,本地日志通过事务的ID来标记;协调者根据是否在第一预设时间内接收到所有参与者发送的反馈消息及是的情况下的所有参与者的反馈消息判断事务的状态,并相应地记录一条包括事务的ID及状态的全局日志到共享存储池;当参与者在第二预设时间内没有接收到协调者发送的操作命令时,参与者根据事务的ID去共享存储池中查找全局日志并根据查找到的全局日志确定事务的状态,并根据事务的状态进行相应的操作。可见,本专利技术中,协调者在判断得到事务的状态后,会记录包括事务的ID及状态全局日志到共享存储池中,当参与者在第二预设时间内没有接收到协调者发送的操作命令时,参与者根据事务的ID去共享存储池中查找全局日志并根据查找到的全局日志确定事务的状态,并根据事务的状态进行相应的操作,能够使得参与者在没有按时接收到协调者发送的操作命令时仍能够在确定事务的状态,提高了容错性。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术提供的一种基于本文档来自技高网...
一种基于共享存储池的事务处理方法及系统

【技术保护点】
一种基于共享存储池的事务处理方法,用于分布式文件系统,其特征在于,包括:步骤S11:各个参与者将自身的反馈消息反馈至协调者,并记录本地日志,所述本地日志通过事务的ID来标记;步骤S12:协调者根据是否在第一预设时间内接收到所有参与者发送的反馈消息及是的情况下的所有参与者的反馈消息判断事务的状态,并相应地记录一条包括所述事务的ID及状态的全局日志到共享存储池;步骤S13:当所述参与者在第二预设时间内没有接收到所述协调者发送的操作命令时,所述参与者根据所述事务的ID去所述共享存储池中查找所述全局日志并根据查找到的所述全局日志确定所述事务的状态,并根据所述事务的状态进行相应的操作。

【技术特征摘要】
1.一种基于共享存储池的事务处理方法,用于分布式文件系统,其特征在于,包括:步骤S11:各个参与者将自身的反馈消息反馈至协调者,并记录本地日志,所述本地日志通过事务的ID来标记;步骤S12:协调者根据是否在第一预设时间内接收到所有参与者发送的反馈消息及是的情况下的所有参与者的反馈消息判断事务的状态,并相应地记录一条包括所述事务的ID及状态的全局日志到共享存储池;步骤S13:当所述参与者在第二预设时间内没有接收到所述协调者发送的操作命令时,所述参与者根据所述事务的ID去所述共享存储池中查找所述全局日志并根据查找到的所述全局日志确定所述事务的状态,并根据所述事务的状态进行相应的操作。2.如权利要求1所述的事务处理方法,其特征在于,步骤S12的过程具体为:步骤S121:所述协调者判断是否在第一预设时间内接收到所有参与者发送的反馈消息,如果是,则进入步骤S122,否则,进入步骤S124;步骤S122:判断是否所有参与者发送的反馈消息均为就绪消息,如果是,则进入步骤S123,否则,进入步骤S124;步骤S123:所述协调者判断所述事务为可执行,并记录一条包括所述事务的ID及状态的全局日志到共享存储池,并设置所述状态为成功;步骤S124:所述协调者判断所述事务为不可执行,并记录一条包括所述事务的ID及状态的全局日志到共享存储池,并设置所述状态为失败。3.如权利要求2所述的事务处理方法,其特征在于,步骤S13的过程具体为:当所述参与者在第二预设时间内没有接收到所述协调者发送的操作命令时,所述参与者根据所述事务的ID去查找所述存储池中查找所述全局日志;在查找到所述全局日志且所述全局日志中记录的所述事务的状态为成功时,所述参与者执行相应的元数据操作,当所述全局日志中记录的所述事务的状态为失败时,所述参与者进行回滚操作。4.如权利要求1所述的事务处理方法,其特征在于,所述本地日志包括操作类型、文件路径和元数据服务器标识。5.如权利要求1-4任一项所述的事务处理方法,其特征在于,步骤S13还包括:确定故障类型,所述故障类型包括网络故障或者所述协调者出错。6.一种基于共享存储池的事务处理系统,用于...

【专利技术属性】
技术研发人员:张闯
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南;41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1