[发明专利]一种基于共享存储池的分布式事务处理方法在审
申请号: | 201310311824.6 | 申请日: | 2013-07-23 |
公开(公告)号: | CN103399894A | 公开(公告)日: | 2013-11-20 |
发明(设计)人: | 马灿;王伟平;孟丹;周江;王有为 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京轻创知识产权代理有限公司 11212 | 代理人: | 杨立 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 共享 存储 分布式 事务处理 方法 | ||
1.一种基于共享存储池的分布式事务处理方法,其特征在于,包括:
步骤1,以目录为单位组织分布式文件系统的元数据存储,并基于哈希方式将目录全路径映射到多个元数据服务器;
步骤2,客户端分解存储的元数据,并根据分解结果选出需要参与分布式事务的元数据服务器集合,从中指定一个元数据服务器作为协调器,其余的元数据服务器均作为参与器;
步骤3,选出的元数据服务器分别评估其需要在本地完成的分布式事务操作,并确定是否能够完成该操作,若不能则向协调器汇报“终止”,否则写入本地日志,向协调器汇报“提交”,并锁定该元数据服务器所有需要使用的资源;
步骤4,协调器接收所有来自参与器的汇报,并根据汇报结果向共享存储池的全局日志中写入“提交”或者“终止”,完成后检查共享存储池的返回状态,并通知所有参与器最终结果;
步骤5,参与器等待协调器通知最终结果,并根据协调器的通知执行需要在本地完成的分布式事务操作或者取消步骤3中锁定的资源;
步骤6,当协调器或参与器出现故障时,参与器或协调器从共享存储池中检查分布式事务的状态,且第一个检查分布式事务状态的参与器或协调器在共享存储池中将该分布式事务的状态设置为“终止”。
2.根据权利要求1所述的分布式事务处理方法,其特征在于,所述步骤1中通过全局目录哈希表GDT管理目录到多个元数据服务器的映射关系。
3.根据权利要求1所述的分布式事务处理方法,其特征在于,步骤3中,所述本地日志用于记录元数据服务器需要在本地完成的分布式事务操作,且所述本地日志保存在所述本地存储模块中。
4.根据权利要求1所述的分布式事务处理方法,其特征在于,所述步骤4中,若协调器接收任一参与器的汇报超时,则协调器查询共享存储池,获取相应分布式事务状态,并通知所有参与器关于该分布式事务的最终结果。
5.根据权利要求1所述的分布式事务处理方法,其特征在于,所述步骤4中当协调器收到所有的汇报后,根据汇报结果决定向共享存储池的全局日志中写入“提交”或者“终止”,具体包括:若所有参与器都返回“提交”,则该分布式事务能“提交”,且所述协调器向共享存储池的全局日志中写入“提交”;若有任一参与器返回“终止”,则该分布式事务必须“终止”,且所述协调器向共享存储池的全局日志中写入“终止”。
6.根据权利要求1所述的分布式事务处理方法,其特征在于,所述协调器向共享存储池的全局日志中写入“提交”或“终止”时,基于预写式日志格式在共享存储池中进行了全局日志信息的记录,所述全局日志信息包括分布式事务的提交状态、终止状态和空状态,且所述全局日志信息用于判断是否针对特定的分布式事务执行终止操作。
7.根据权利要求1、5或6所述的分布式事务处理方法,其特征在于,所述步骤4中根据汇报结果决定向共享存储池的全局日志中写入“提交”或者“终止”时,采用具有原子性和排他性的写入方式。
8.根据权利要求1所述的分布式事务处理方法,其特征在于,所述步骤4中协调器通知所有参与器最终结果的同时,还需通知客户端已最终确定相应分布式事务的状态。
9.根据权利要求1所述的分布式事务处理方法,其特征在于,所述步骤5中若参与器等待协调器通知最终结果超时,则所述参与器查询共享存储池,获取相应分布式事务状态,并根据获取的分布式事务状态执行相应的分布式事务操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310311824.6/1.html,转载请声明来源钻瓜专利网。