[發(fā)明專利]對事務(wù)存儲器中的副作用動作的事務(wù)處理有效
| 申請?zhí)枺?/td> | 200980142416.4 | 申請日: | 2009-10-16 |
| 公開(公告)號: | CN102187321A | 公開(公告)日: | 2011-09-14 |
| 發(fā)明(設(shè)計)人: | D·格羅夫;A·達迪歐莫夫;Y·萊瓦諾尼 | 申請(專利權(quán))人: | 微軟公司 |
| 主分類號: | G06F12/00 | 分類號: | G06F12/00;G06F9/06 |
| 代理公司: | 上海專利商標事務(wù)所有限公司 31100 | 代理人: | 顧嘉運 |
| 地址: | 美國華*** | 國省代碼: | 美國;US |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 事務(wù) 存儲器 中的 副作用 動作 事務(wù)處理 | ||
背景
用于共享存儲器多處理器的并發(fā)編程可以包括供多個線程訪問相同數(shù)據(jù)的能力。該多個線程在多個處理器、多個處理器核心或附連到在處理器之間共享的存儲器的其他種類的并行性上執(zhí)行。共享存儲器模型是最常部署的多線程通信方法。它允許以與順序編程大致相同的方式創(chuàng)建多線程程序,這是有益的,因為并發(fā)編程本身是出了名地困難。為了實現(xiàn)共享存儲器模型,并發(fā)編程小心地避免可能造成諸如競爭等不合需要的情形的并發(fā)訪問和使用共享數(shù)據(jù)。
鎖是避免并發(fā)訪問共享數(shù)據(jù)問題的一種常見解決方案。鎖是以下面的前提為中心的:由一個線程訪問的變量將也可由其他線程訪問,并且由此變量一次次只能由一個線程使用。鎖允許一個線程控制變量而防止其他線程改變該變量直至它被解鎖。雖然基于鎖的協(xié)議是流行的,但是通常認為它們是難以使用的。以粗粒度的方式使用鎖保護了相對較大量的數(shù)據(jù),但是一般而言它們的使用不伸縮。線程即使在它們在不干涉時也彼此阻塞,并且鎖成為爭用源?;蛘撸愿毩6鹊姆绞绞褂面i而同時緩解伸縮性問題引入了其他問題,因為用于確保正確性并避免死鎖的鎖約定變得復(fù)雜且易于出錯。
另一解決方案是使用諸如軟件事務(wù)存儲器等事務(wù)存儲器和/或使用編譯器來實現(xiàn)應(yīng)用程序,軟件事務(wù)存儲器提供軟件運行時程序庫和/或運行時執(zhí)行環(huán)境中的語義。事務(wù)存儲器是用于基于以下前提來控制對共享存儲器的訪問的并發(fā)控制機制:由一個線程使用的變量將不太可能被其他線程訪問,且由此該變量可以在不對程序的可伸縮性造成惡劣結(jié)果的情況下。
基于粗糙鎖的協(xié)議上的事務(wù)存儲器的一個顯著好處是提高的并發(fā)性。在事務(wù)存儲器中,線程都無需等待訪問數(shù)據(jù),且不同的線程可以安全且同時修改數(shù)據(jù)結(jié)構(gòu)中的通常在同一個鎖保護下的不相交的部分。不管重試失敗的事務(wù)的開銷,在大多數(shù)現(xiàn)實的并發(fā)程序中,沖突出現(xiàn)得足夠罕見,以使得即使在少量處理器和處理器核上在基于粗粒度鎖的協(xié)議上有極大的性能增益。
然而,如果原子塊包括副作用動作,則可能在使用事務(wù)存儲器時發(fā)生問題。一般而言,副作用動作修改在當前線程之外可見的某個狀態(tài)。副作用動作的常見示例包括輸入/輸出、系統(tǒng)調(diào)用、傳統(tǒng)代碼動作、內(nèi)核動作、設(shè)備管理、托管環(huán)境之外的其他域中的動作等。如果中止并重新執(zhí)行事務(wù)就會產(chǎn)生困難,因為副作用動作被重新執(zhí)行并且可以在重復(fù)失敗時被多次重復(fù)執(zhí)行。非冪等副作用造成最大的困難。例如,由于與其他線程的存儲器沖突,包括遞增變量的動作和打印變量的副作用動作的原子塊可以重復(fù)地失敗并重新執(zhí)行。在意圖僅打印一次變量的情況下,在每次重新執(zhí)行時打印變量是不合需要的。
其他解決方案已試圖解決在事務(wù)存儲器中使用的副作用動作的問題。一種流行的解決方案是簡單地禁止使用這種副作用動作,但是許多研究人員一般同意對可編程性以及合成的限制在一般的使用中是不可接受的。其他提議的解決方案推遲動作直至它可能要提交,但是許多研究人員相信對動作重新排序?qū)е路穷A(yù)期結(jié)果。相似地,將補償塊與動作相關(guān)聯(lián)減少隔離并且提供了另一隱錯源。又一提議的解決方案是不允許帶有副作用動作的事務(wù)失敗并且有利于帶有副作用動作的事務(wù)來解決所有沖突。當然,一次只允許不超過一個帶有副作用動作的事務(wù)。還有一解決方案是打破事務(wù)的原子性和隔離。所有這些提議的解決方案和其他解決方案以不同的方式受到限制,并且要求程序員的很大的努力。研究人員一般同意該問題還未被解決。
概述
提供本概述以便以簡化形式介紹將在以下詳細描述中進一步描述的一些概念。本概述并不旨在標識出所要求保護的主題的關(guān)鍵因素或必要特征,也不旨在用于限定所要求保護的主題的范圍。
在一個實施例中,一種處理系統(tǒng)處理具有副作用動作的原子事務(wù)。該事務(wù)是具有多個線程的并發(fā)程序中的線程的一部分。該系統(tǒng)包括事務(wù)存儲器、第一和第二資源管理器和事務(wù)管理器。第一資源管理器加入原子事務(wù)并管理與副作用動作相關(guān)的資源。第二資源管理器加入原子事務(wù)并管理事務(wù)存儲器。事務(wù)管理器耦合到第一和第二資源管理器并且接收來自第一和第二資源管理器的關(guān)于是否提交事務(wù)的投票。副作用動作被延遲直至事務(wù)提交之后或者與針對該副作用動作的補償動作一起應(yīng)用。
附圖簡述
包括、合并在本發(fā)明書內(nèi)并構(gòu)成其一部分的附圖提供了對各實施例的進一步理解。附圖示出各實施例,并且與說明書一起用于解釋本發(fā)明的原理。其他實施例和各實施例的許多預(yù)期優(yōu)點將隨著參考下面的詳細描述進行更好的理解而得到認識。附圖的元素不一定相對于彼此而縮放。相同的附圖標記指代對應(yīng)的類似部分。
圖1是示出實現(xiàn)本發(fā)明的特征的計算設(shè)備的許多可能的示例之一的框圖。
圖2是示出圖1的示例計算系統(tǒng)中的示例事務(wù)系統(tǒng)的框圖。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于微軟公司,未經(jīng)微軟公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200980142416.4/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:冷凝器
- 下一篇:天饋系統(tǒng)狀態(tài)的確定方法及裝置
- 一種事務(wù)處理的方法和裝置
- 分布式事務(wù)處理方法與系統(tǒng)
- 一種融合原生事務(wù)和邏輯事務(wù)的方法
- 用于聚結(jié)內(nèi)存事務(wù)的方法和系統(tǒng)
- 事務(wù)處理方法、事務(wù)參與節(jié)點及事務(wù)協(xié)調(diào)節(jié)點
- 跨進程分布式事務(wù)控制方法及相關(guān)系統(tǒng)
- 一種分布式事務(wù)管理方法及系統(tǒng)
- 一種分布式事務(wù)處理的智能監(jiān)控方法及服務(wù)器
- 分布式事務(wù)處理方法及裝置
- 讀寫事務(wù)控制方法、系統(tǒng)、終端設(shè)備及存儲介質(zhì)





