[发明专利]针对分布式持久实例的锁定解决有效
申请号: | 201080054552.0 | 申请日: | 2010-11-05 |
公开(公告)号: | CN102640113A | 公开(公告)日: | 2012-08-15 |
发明(设计)人: | N·A·艾伦;J·D·布朗 | 申请(专利权)人: | 微软公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F15/16 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 胡利鸣 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 针对 分布式 持久 实例 锁定 解决 | ||
1.一种在包括一个或多个处理器和系统存储器的计算机架构中用于解决两个或更多执行线程之间的锁定冲突的方法,所述计算机架构还包括应用主机、持久保存提供者以及实例存储,所述应用主机包括多个执行线程,所述执行线程被配置为把用于持久保存实例的命令发出给所述实例存储以及从所述实例存储访问实例,所述命令的至少子集导致执行线程在执行期间请求实例锁定,该方法包括:
所述持久保存提供者从包括在所述应用主机中的第一执行线程接收第一命令的动作,所述第一命令被配置为请求在一个或多个条件被满足时获取第一实例的锁定;
所述持久保存提供者将所述第一命令记录在命令日志中的动作;
所述持久保存提供者将所述第一命令提交给所述实例存储的动作;
所述持久保存提供者从包括在所述应用主机中的第二执行线程接收第二命令的动作,所述第二命令被配置为请求将第二实例锁定到第二执行线程以供由所述第二命令进行处理;
所述持久保存提供者将所述第二命令记录在所述命令日志中的动作;
所述持久保存提供者将所述第二命令提交给所述实例存储的动作;
所述持久保存提供者从所述实例存储接收针对所述第二命令的锁定响应的动作,所述锁定响应指示:所述应用主机是第二实例的锁定的持有者,所述锁定响应是在提交第一命令以后并且在第一命令完成以前接收的;
持久保存提供者引用所述命令日志以确定第一命令的当前解析所提供的信息不足以确定下列各项的动作:(a)第一命令是否获取了对第一实例的锁定;以及(b)第一实例和第二实例是否是同一实例,所述不足的信息导致不清楚第二命令所请求的锁定是否是之前由第一命令所获取的锁定;
所述持久保存提供者暂停第二命令的处理直到达到对第一命令的进一步解析的动作,进一步解析至少提供关于所述一个或多个被满足的条件的附加信息;以及
所述持久保存提供者基于关于第一命令的解析的附加信息来确定对第二命令如何继续的动作。
2.如权利要求1所述的方法,其特征在于,还包括:所述持久保存提供者基于所述附加信息来确定第一命令曾获取第二命令所请求的锁定的动作。
3.如权利要求2所述的方法,其特征在于,所述持久保存提供者将第一命令记录在命令日志中的动作包括:将第一命令与第一时间戳一起记录在所述命令日志中的动作,所述第一时间戳由所述持久保存提供者的命令时钟来提供;以及
其中所述持久保存提供者将第二命令记录在命令日志中的动作包括:将第二命令与第二时间戳一起记录在所述命令日志中的动作,所述第二时间戳由所述持久保存提供者的命令时钟来提供。
4.如权利要求3所述的方法,其特征在于,所述持久保存提供者基于所述附加信息来确定第一命令曾获取第二命令所请求的锁定的动作包括:基于第一时间戳和第二时间戳来确定第一命令是在第二命令以前被接收的动作。
5.如权利要求2所述的方法,其特征在于,所述持久保存提供者确定对第二命令如何继续的动作包括:丢弃第二命令的动作。
6.如权利要求2所述的方法,其特征在于,所述持久保存提供者确定对第二命令如何继续的动作包括:将所述应用主机引导到第一命令已获得锁定的实例的副本的动作。
7.如权利要求2所述的方法,其特征在于,所述持久保存提供者确定第一命令曾获取第二命令所请求的锁定的动作包括:
确定第一命令曾获取所述实例的一版本的锁定的动作;以及
确定针对第二命令的锁定响应是针对所述实例的同一版本的锁定的动作。
8.如权利要求1所述的方法,其特征在于,还包括:所述持久保存提供者基于所述附加信息来确定第一命令未曾获取第二命令所请求的锁定的动作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201080054552.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种制备标准氧化钽薄膜的方法
- 下一篇:应用于光学指标装置的图像提取装置