[发明专利]处理嵌套事务的错误地破坏的父事务有效

专利信息
申请号: 200880022416.6 申请日: 2008-06-16
公开(公告)号: CN101689138A 公开(公告)日: 2010-03-31
发明(设计)人: M·M·马格鲁德;D·德特勒夫;J·J·达菲;G·格雷费;V·K·格罗弗 申请(专利权)人: 微软公司
主分类号: G06F12/00 分类号: G06F12/00
代理公司: 上海专利商标事务所有限公司 代理人: 蔡 悦;钱静芳
地址: 美国华*** 国省代码: 美国;US
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 处理 嵌套 事务 错误 破坏
【说明书】:

背景

软件事务存储器(STM)是类似于数据库事务的、用于在并发计算中 控制对共享存储器的访问的并发控制机制。事务存储器的上下文中的事务 是对共享存储器执行一系列读取和写入的一段代码。STM用作传统锁定机 制的替换。STM允许更简单地编写并发程序。事务指定应当如同其隔离地 执行一样的代码序列。这一隔离错觉可以通过对象的细粒度锁定,以及通 过以在发现事务与某一其它事务相冲突的情况下允许回退该事务的副作用 的模式执行来实现。如果对于数据访问所生成的代码被修改成包括对这些 锁定和回退机制的支持,则可以说该访问被“事务化”。

许多STM系统支持嵌套事务,从而允许高效地合成使用事务所创作的 不同组件。如果嵌套事务的影响是与其包含(即,父)事务相同的隔离边 界的一部分,则认为它是封闭的。在封闭的嵌套事务提交时,其影响不对 系统的其余部分变得可见。相反,其影响变成父事务的一部分,仍然在进 行中,并且只有在父事务最终提交时才变得对系统的其余部分可见。在嵌 套事务回退时,其临时影响被撤消并且父事务的状态恢复到该嵌套事务开 始的点处。

使用就地写入和乐观读取的STM系统使用与每一可锁定存储器区域 相关联的版本号来指示何时对共享数据作出更改。读取事务将乐观地记录 存储器(对象、高速缓存行等)的版本号而不锁定该数据。在版本号在事 务的整个生命周期不改变的情况下,该事务可以提交。在释放其写锁定时, 写入事务递增版本号以用于提交或回退。版本号在回退期间必须增加,因 为写入事务临时就地更新了数据。这些更新对读取事务是可见的,并且必 须通知该事务不能提交,因为可能读取了不一致的数据。

在回退时,写入尚未被父事务写入的数据的嵌套事务必须递增版本号, 如同非嵌套(最高级)事务一样。然而,考虑其中父事务乐观地读取变量 X并且嵌套子事务第一次写入变量X的情况。父事务将在其日志中记录X 的版本号,如版本V1。嵌套事务将开始并取得对X的写锁定。如果嵌套事 务提交,则没有问题:写锁定未释放并被转移到父事务,并且父事务保持 一致,能够提交。然而,如果嵌套事务出于任何原因而回退,则它必须释 放写锁定并将X的版本号递增成V2。父事务将在提交时表现得不一致。X 的版本号是V2,但父事务在X是V1的时候读取了它,并且没有是谁将该 版本号更改成V2的记录。看起来父事务与另一事务冲突,但实际上是嵌套 子事务使得版本号增加,因而这实际上不是冲突。父事务被其子事务的回 退操作所破坏。这一问题使得STM系统经历父事务谬误的重新执行。

概述

公开了用于在事务存储器系统中检测嵌套子事务的错误地破坏 (doom)的父事务的各种技术和方法。在回退嵌套事务时,在给定嵌套事 务每一次释放写锁定时跟踪释放计数。例如,可以使用写异常中止补偿映 射来跟踪回退的每一嵌套事务所释放的每一锁定的释放计数。嵌套事务释 放写锁定的次数被记录在它们相应的写异常中止补偿映射中。可以在父事 务的确认期间使用释放计数来确定明显无效的乐观(optimistic)读取实际 上是否是有效的。

在一个实现中,在处理父事务日志时,所看到的对于嵌套子事务的任 何写异常中止补偿映射被聚集到父事务中的聚集的写异常中止补偿映射 中。如果乐观读取由于版本号不匹配而未能确认,则咨询聚集的写异常中 止补偿映射来检索嵌套子事务对特定变量的写锁定释放计数。如果版本号 差与嵌套子事务的写锁定释放计数正好匹配,则乐观读取是有效的。

提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一 些概念。本概述不旨在标识所要求保护的主题的关键特征或必要特征,也 不旨在用于帮助确定所要求保护的主题的范围。

附图简述

图1是一个实现的计算机系统的图示。

图2是在图1的计算机系统上操作的一个实现的事务存储器应用程序 的图示。

图3是图1的系统的一个实现的高级处理流程图。

图4是图1的系统的一个实现的处理流程图,其示出在创建和维护写 异常中止补偿映射时所涉及的各阶段。

图5是图1的系统的一个实现的处理流程图,其示出在事务回退期间 聚集的写异常中止补偿映射时所涉及的各阶段。

图6是图1的系统的一个实现的处理流程图,其示出在事务回退期间 使用写异常中止补偿映射来避免嵌套事务的错误地破坏的父事务时所涉及 的各阶段。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/200880022416.6/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top