TWI442235B - 記憶體交易群組 - Google Patents
記憶體交易群組 Download PDFInfo
- Publication number
- TWI442235B TWI442235B TW097123601A TW97123601A TWI442235B TW I442235 B TWI442235 B TW I442235B TW 097123601 A TW097123601 A TW 097123601A TW 97123601 A TW97123601 A TW 97123601A TW I442235 B TWI442235 B TW I442235B
- Authority
- TW
- Taiwan
- Prior art keywords
- transactions
- transaction
- groups
- group
- version management
- Prior art date
Links
- 230000007246 mechanism Effects 0.000 claims description 45
- 238000000034 method Methods 0.000 claims description 15
- 230000008901 benefit Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
Description
本發明係相關於記憶體交易群組。
隨著時間演進,電腦係日益變得更加強大,具有更強的處理能力與記憶體來進行更先進的操作。近來,業界的注意力係有從增加單一處理器的時脈移開,朝向增加在單一電腦內可用的處理單元的數量的趨勢。軟體研發者想要利用電腦處理能力改善的優勢,讓軟體程式在新的硬體內執行得更快。然而,對於新的硬體趨勢,其需要不同的方法,研發者必須安排讓一特定軟體的一或更多工作“並行”(有時稱“平行地”)執行,使得當新增更多處理器於此類軟體操作於其上的電腦中時,相同的邏輯操作可以同時使用許多處理器,來提供較好的效能。
交易記憶體被設計藉由將單元性(Atomicity)與隔離性(Isolation)提供給程式碼中的數個區域,來緩和並行程式的發展。交易記憶體(Transactional memory,TM)係為一並行控制機制,類比至資料庫交易,以控制存取並行計算中的共享記憶體。在交易記憶體的內容中的交易係為一段程式碼,執行一系列的讀取與寫入動作至一共享記憶體。TM係用作為傳統鎖定機制的替代方案。TM讓並行程式能更簡單地被寫入。一交易係指定一串程式碼有如以隔離方式來執行,雖然在實際上它係與其他活動並行地在一
般多執行緒環境中執行。此種虛擬的隔離係可藉由細分地鎖定一物件或記憶體範圍,並在發現一交易與一些其他交易衝突時,藉由執行於容許還原該交易的模式中來達成。若一資料存取由上述鎖定與還原機制來保護,我們稱該資料存取係“被交易”。
不同的鎖定與版本機制是可能的,包括一些以軟體為基礎,或以硬體為基礎的方法。不同機制具有不同的特徵與品質,讓其適合或較佳地用於不同情況中。在單一處理器中結合不同機制通常是不可能的,故為了達到一般的可應用性,會導致選擇典型與效能妥協的一般機制。
各種科技與技術被公開來提供一交易群組特徵,用於數個程式中,該等程式係於交易記憶體系統中操作。該交易群組特徵係可操作來容許產生包含相關交易的交易群組。交易群組係用來增強該等程式的操作性。交易群組被定義,使得每個群組內的交易係已知在互相分離的資料上操作,如此,在每個該等群組中彼此不相容的鎖定與版本管理機制得以實現,故容許對於每個特定群組進行該等特定機制的微調(fine-tuning)。
茲提供本發明內容,以簡化形式介紹經選擇的概念,其之後將於實施方式中詳細說明。本發明內容並非用以辨識所主張標的之關鍵特徵或必要特徵,亦非用來幫助決定所主張標的之範圍。
在一般的文章內容中,科技與技術在此被描述為交易記憶體系統,但該科技與技術亦可能被用於上述以外的不同的目的。在一實施例中,在此敘述的一或更多技術係被實現為在框架程式,例如是MICROSOFT®.NET框架,中的特徵,或是被實現為在可提供平台給研發者來發展軟體應用程式的任何其他種類的程式或服務中的特徵。在其他實施例中,在此所述的一或更多技術係被實現為其他應用程式的特徵,其中,該等其他應用程式係應付開發在並行環境中執行的應用程式。
在一實施例中,茲提供交易群組特徵以於操作在交易記憶體系統下的程式中使用。交易群組特徵容許將交易置於群組當中。若吾人可以判斷一組明確地與其他交易所存取的資料分離的交易存取資料(例如,讀取/寫入),則該組交易存取資料係稱為一“交易群組”。
由以上定義可知,交易為一群組之部分,且交易係已知在讀取/寫入資料上操作,其中該讀取/寫入資料係與其他群組中的其他交易所存取的讀取/寫入資料分離。結果,使得針對各個群組實施可明顯區別的鎖定與版本管理機制成為可能,其容許每個交易群組針對該群組中數個交易所存取的資料,來使用最適合之特別選擇的鎖定與版本管理演算法。
除了由一群組中的數個交易所存取的特定資料以外,
其他因素亦會影響使用於相同群組中的鎖定與版本管理演算法的特定選擇。舉例而言,交易的持續時間或在交易中的編碼特性係為兩個其他因素。在一實施例中,一般彼此不相容的鎖定與版本管理機制,可以同時被用於一程序中,而使得效能可能增加。
透過複數個構件,可以決定何時將交易群聚成一群組。一實施例可以使用程式設計者所提供的註解,來反向標示該等群組,如第4圖所示。其他實施例可以使用編譯器啟發式(heuristics)地自動推導出群組與群組內的成員,如第5圖所示。在另一實施例中,更可使用運行時間(runtime)環境,來動態地與自動地推導出群組與群組內的成員,如第6圖所示。需瞭解的是,相關於產生群組與指派群組成員的特定機制是很多的,且可以用各種方式來結合。
如第1圖所示,用來實現一或更多部分該系統的範例電腦系統,其包括一計算裝置,例如是計算裝置100。在其最基本的組態中,計算裝置100一般包括至少一處理器102與記憶體104。取決於計算裝置的確切組態與種類,記憶體可以是揮發性記憶體(例如是隨機存取記憶體,RAM)、非揮發性記憶體(例如是唯讀記憶體,ROM、快閃記憶體等等)或該兩者的一些結合物。此基本組態係由第1圖的虛線106內所示。
此外,裝置100亦具有附加的特徵/功能。例如,裝置100亦可以包括附加的儲存裝置(可移除的或非可移除
的)。儲存裝置包括,而非限於,磁碟或光碟或磁帶。上述附加儲存裝置係如第1圖的可移除儲存裝置108與非可移除儲存裝置110所示。電腦儲存媒體包括揮發性的、非揮發性的、可移除的或非可移除的媒體,以儲存資訊的任何方法或科技,例如是電腦可讀取資料、資料結構、程式模組或其他資料,來實現。記憶體104,可移除儲存裝置108、非可移除儲存裝置110係為電腦儲存媒體的範例。電腦儲存媒體包括,但非限於,RAM、ROM、電子可抹除可程式化唯讀記憶體(EEPROM)或其他記憶體技術、CD-ROM、數位揮發碟(DVD)或其他光學儲存裝置、磁帶、磁片、磁碟儲存裝置或其他磁性儲存裝置、或其他可用來儲存所需資訊,並可由裝置100進行存取的媒介。任何上述的電腦儲存媒體可以是部分的裝置100。
計算裝置100包括一或更多通訊連結114,允許計算裝置100與其他電腦/應用程式115進行通訊。裝置100亦可以包括輸入裝置112,諸如鍵盤、滑鼠、筆、聲音輸入裝置、觸控輸入裝置等等。輸出裝置111,例如是顯示器、喇叭、印表機等等,亦可以包括於其中。這些裝置係在本發明技術領域中為眾所皆知的,故無須大篇幅地在此討論。在一實施例中,計算裝置100包括交換記憶體應用程式200。交換記憶體應用程式200係於第2圖中進一步詳述之。
請參閱第2圖,並同時參考第1圖,操作於電腦系統100的應用程式200係繪於其中。交換記憶體應用程式200
係為位於電腦系統100中的應用程式之一。然而,將瞭解的是,交換記憶體應用程式200係可替代地或附加地實現成在一或更多電腦上與/或在不同於第1圖所示的變型上的電腦可執行指令。替代地或附加地,一或更多部分的交換記憶體應用程式200可以是在其他電腦與/或應用程式115上的部分系統記憶體104,或其他出現在電腦軟體技術中的變化。
交換記憶體應用程式200包括程式邏輯204,其負責執行一些或全部在此所述之技術。程式邏輯204包括提供交易群組特徵的邏輯206(其容許在一特定程式中相關的交易被群聚在一起,參考第3至第6圖,如以下所述)、提供使用交易群組的專門競爭管理邏輯210(參考第7圖,如以下所述)、針對不同交易群組212提供不同鎖定與版本管理機制的邏輯(參考第8圖,如以下所述)、用來命名交易群組來增強偵錯或其他程式214的邏輯(參考第9圖,如以下所述)、與其他用來操作交換記憶體應用程式的邏輯220。
請參閱第3至第10圖,並繼續參考第1與第2圖,茲詳述實現一或更多交易記憶體程式200的實施例的階段。在一些實施例中,第3至第10圖中的程序係至少部分地實現於計算裝置100的作業邏輯中。第3圖係為交易記憶體應用程式200的高階程序流程圖。該程序由起始點240開始,提供使用軟體、硬體或其組合之一交易記憶體系統(階段242)。該系統提供交易群組特徵,該特徵係容許在一特
定程式內相關的交易,手動地(如第4圖所示)與/或程式化地(如第5與第6圖所示)被群聚在一起(階段244)。該系統使用交易群組來改善程式效能或增強程式的操作性,如第7至第10圖所述(階段246)。該程序係於結束點248結束。
第4圖繪示相關於容許程式設計者將交易群聚在一起的階段之一實施例。該程序由起始點270開始,接收程式設計者的輸入,來存取在交易記憶體系統中執行的特定程式的原始碼(階段272)。程式設計者係新增宣告或將群組指派給數個交易(階段274)。系統使用專門的群組來增強程式的操作性,如第7至第9圖所詳述(階段276)。此程序結束於結束點278。
第5圖繪示相關於提供自動將交易群聚在一起的語言編譯器的數個階段之一實施例。該程序係由起始點290開始,提供語言編譯器,該編譯器係編譯執行於交易記憶體系統200之下的程式(階段292)。在一特定程式的編譯期間,使用邏輯來判斷是否有任何交易可被群聚在一起(階段294)。作為一些非限制性的例子,編譯器可以藉由使用此語言的特定語義(semantics),或透過全盤地分析,來證明群聚是有可能的,而將數個交易群聚在一起。該系統會產生在程式中被辨識出來的群組(階段296),並接著使用專門的群組來增強操作性(階段298)。該程序係結束於結束點300。
第6圖繪示相關於提供將交易群聚起來之一運行時間
環境之階段之一實施例。該程序係由起始點310開始,提供運行時間環境,其執行操作於交易記憶體系統下的程式(階段312)。當執行一特定程式時,係使用邏輯來辨識出應該群聚在一起的交易(階段314)。作為一些非用以限制的範例地,藉由辨識操作在分離的讀取/寫入資料所建立的數組交易,交易係可以被一運行時間環境群聚在一起。運行時間可以依據由編譯器所提供的提示(hint)來操作,來加強分析程序。運行時間將被辨識出的交易群聚成群組(階段316)並使用被群聚起來的交易來改善該特定程式的操作性(階段318)。此程序結束於結束點320。
請參閱第7至第9圖,茲以數個範例來說明如何使用被群聚的交易,以增強程式的操作性。第7圖繪示相關於使用群聚的交易,來提供專門的競爭管理之階段之一實施例。該程序係由起始點340開始,允許程式設計者來定義一或更多專門的競爭管理策略(階段342)。對於每個策略,系統容許交易執行排程設定、交易失敗處理設定、與/或其他需定義的設定(階段344)。上述先前定義的策略可以被指派給程序中的每個交易群組(階段346)。系統係針對群聚交易,使用上述策略來實現專門競爭管理(階段348)。
競爭管理係為一機制,使用於運行時間系統,只要在多個並行執行的交易之間發生衝突時,該機制即選擇適當的行為。若是有任何衝突,競爭管理會決定哪個衝突的交易要被保留或被中止。更進一步地決定如何重新排程個別
交易的執行,使得它們得以完整執行。使用於此的競爭管理係指應用競爭管理啟發式的能力,此啟發式係與一給定運行時間的預設啟發式有所區別。
在一實施例中,藉由將不同策略應用至不同群組,可以達到增強程式的效能。例如,其中一種專門競爭管理策略,係可指派給一特定交易群組,使得這些交易所包含的操作的型態為最佳效能。其他專門的競爭管理策略可被指派給其他交易群組,使得其他交易群組所包含的操作的型態為最佳效能。該程序係結束於結束點350。
第8圖繪示相關於將不同鎖定與版本管理機制提供給不同交易群組的階段之一實施例。該程序係由起始點370開始。系統係使用邏輯來決定在每個交易群組(階段372)中,所要使用的鎖定與版本管理機制的哪一種,並依照需求,調整用於每個交易群組的鎖定與版本管理機制(階段374)。該程序結束於結束點376。
作為一範例地,一交易記憶體鎖定與版本管理機制可用於一特定交易群組,而其他可能互不相容的交易記憶體鎖定與版本管理係用於其他交易群組。
請參考一非限制性範例,來進一步說明當有多個交易群組時,不同交易記憶體機制可如何一起結合。一交易群組可使用緩衝更新方法來進行版本管理,而其他群組可以使用一就地(in-place)更新方法來回復記錄。藉由將交易群聚在一起,即可以使用不相容的交易記憶體鎖定與版本機制的組合,以此方式,即可將資料隔離,使整體效能改
善。在另一範例中,快速但有限制之以硬體為基礎的交易記憶體機制可在一些交易群組中使用,而當其他群組內的交易無法接受該硬體限制時,可在該交易群組中使用不相容的且較慢之以軟體為基礎的交易記憶體機制。
剛剛所提出的先前假設範例係於兩個交易群組中使用此方法,此概念可被用於多於兩個交易群組中,以及交易記憶體鎖定與版本管理機制的各種不同組合,包括硬體與軟體兩種方法。
第9圖繪示相關於命名一組相關交易來增強偵錯功能或其他程序的階段之一範例。該程序係由起始點450開始,其容許相關交易被一使用者與/或程式化地群聚在一起(階段452)。一命名特徵係被提供,容許每個交易群組被一使用者或編程式地命名(階段454)。系統接著顯示或使用該等群組名稱來加強偵錯、參數設定、或其他程序(階段456)。例如,群組名稱可以被顯示於偵錯器或分析器中,來讓使用者更容易辨識出特定交易群組。該程序係結束於結束點458。
第10圖繪示多個交易群組的圖解示意圖。在此範例中,第一個交易群組500包括四個交易,其中之一係巢套(nested)於其中之其他者內。第二交易群組502只包括單一交易。各種其他交易群組的情境,包括不同數量的交易群組與/或在每個群組中具有不同數量的交易,亦是有可能的。
雖然此標的已經以語言來具體說明其結構性特徵與/
或方法論的動作,需要瞭解的是,之後的申請專利範圍所定義的標的係非必要地限制於如上所述的具體特徵或動作。如上所述的具體特徵與動作係被公開,作為實現申請專利範圍的範例。所有敘述於此與/或於之後的申請專利範圍的實施例之精神內的等效物、更動或調整,係均需要被保護。
例如,在電腦軟體技術領域中具有通常知識者,係可以辨認出討論於此的各個範例可以不同方式,在一或更多電腦上重新組織,包括相較於在範例中所述的較少或更多選項或特徵。
100‧‧‧計算裝置
102‧‧‧處理單元
104‧‧‧記憶體
106‧‧‧虛線
108‧‧‧可移除儲存裝置
110‧‧‧非可移除儲存裝置
111‧‧‧輸出裝置
112‧‧‧輸入裝置
114‧‧‧其他通訊連結
115‧‧‧其他電腦/應用程式
200‧‧‧交易記憶體應用程式
204‧‧‧程式邏輯
206‧‧‧提供容許在一特定程式內的相關交易可以被群聚在一起的交易群組特徵的邏輯
210‧‧‧提供專門的競爭管理給不同交易群組的邏輯
212‧‧‧提供專門的鎖定與版本管理機制給不同交易群組的邏輯
214‧‧‧命名一交易群組來增強偵錯功能或其他程序的邏輯
220‧‧‧用來操作應用程式的其他邏輯
500‧‧‧第一交易群組
502‧‧‧第二交易群組
第1圖繪示一實施例之電腦系統之圖解示意圖。
第2圖繪示操作於第1圖之電腦系統之一實施例的交易記憶體應用程式之圖解示意圖。
第3圖繪示第1圖之系統之一實施例的高階程序流程圖。
第4圖繪示第1圖之系統之一實施例之程序流程圖,說明相關於容許一程式設計者來群聚交易的數個階段。
第5圖繪示第1圖之系統之一實施例之程序流程圖,說明相關於提供用以依據特定啟發方式而自動地群聚交易之一語言編譯器的數個階段。
第6圖繪示第1圖之系統之一實施例之程序流程圖,說明相關於提供用以自動地群聚交易之一運行時間環境的
數個階段。
第7圖繪示第1圖之系統之一實施例之程序流程圖,說明相關於提供專門的競爭管理給不同交易群組的數個階段。
第8圖繪示第1圖之系統之一實施例之程序流程圖,說明相關於提供專門的鎖定與版本管理機制給不同交易群組的數個階段。
第9圖繪示第1圖之系統之一實施例之程序流程圖,說明相關於命名一組相關的交易,來增強偵錯功能或其他程序的數個階段。
第10圖繪示多個交易群組之一圖解示意圖。
100‧‧‧計算裝置
102‧‧‧處理單元
104‧‧‧記憶體
106‧‧‧虛線
108‧‧‧可移除儲存裝置
110‧‧‧非可移除儲存裝置
111‧‧‧輸出裝置
112‧‧‧輸入裝置
114‧‧‧其他通訊連結
115‧‧‧其他電腦/應用程式
Claims (10)
- 一種具有電腦可執行指令之硬體電腦儲存媒體,當一電腦執行該等電腦可執行指令時,導致該電腦:將一組交易放入複數個交易群組中之一者;以及提供一競爭管理機制,該競爭管理機制經配置以偵測一程式之複數個交易之多個同時執行交易間之一衝突,其中該組交易係來自該等複數個交易,以及其中該等複數個交易中之每一者係實現為經配置以存取共享記憶體之代碼,以及其中該組交易係經配置以存取與其他交易分離之資料,以及其中不在該組交易中之該等複數個交易中之其他者經配置以存取其他資料,以及其中該等複數個交易群組中之每一者係經配置以利用複數個鎖定與版本管理機制中之一者,該等複數個鎖定與版本管理機制中之該一者不與藉由該等複數個交易群組中之其他者利用之該等複數個鎖定與版本管理機制中之其他者不相容,以及其中該等複數個交易群組中之該等其他者之至少一者係經配置以同時利用該等複數個鎖定與版本管理機制中之該等其他者之至少一者。
- 如申請專利範圍第1項所述之硬體電腦儲存媒體,其中該等鎖定與版本管理機制之一些係透過軟體方法來實現, 同時該等複數個鎖定與版本管理機制之另一些係使用硬體來實現。
- 如申請專利範圍第1項所述之硬體電腦儲存媒體,更提供一命名特徵,該命名特徵係經配置以提供該等複數個交易群組之至少一者之一名稱,其中該名稱可由一偵錯器存取。
- 如申請專利範圍第3項所述之硬體電腦儲存媒體,其中該名稱係由一偵錯器使用。
- 如申請專利範圍第3項所述之硬體電腦儲存媒體,其中該名稱係由一分析器(Profiler)使用。
- 如申請專利範圍第1項所述之硬體電腦儲存媒體,其中該組交易係依據該程式之原始碼中之一宣告而被分組至該等複數個交易群組之該一者。
- 如申請專利範圍第1項所述之硬體電腦儲存媒體,其中該組交易係藉由一編碼器而被分組至該等複數個交易群組之該一者。
- 如申請專利範圍第1項所述之硬體電腦儲存媒體,其中該組交易係在該程式之執行期間被分組至該等複數個交易群組之該一者。
- 一種用以在一電腦之一交易記憶體系統中之不同的交易群組中使用不同的鎖定與版本管理機制之方法,該方法包含以下步驟:將一組交易分組至複數個交易群組中之一者;以及 提供一競爭管理機制,該競爭管理機制經配置以偵測一程式之複數個交易之多個同時執行交易間之一衝突,其中該組交易係來自該等複數個交易,以及其中該等複數個交易中之每一者係實現為經配置以存取共享記憶體之代碼,以及其中該組交易係經配置以存取與其他交易分離之資料,以及其中不在該組交易中之該等複數個交易中之其他者經配置以存取其他資料,以及其中該等複數個交易群組中之每一者係經配置以利用複數個鎖定與版本管理機制中之一者,該等複數個鎖定與版本管理機制中之該一者與藉由該等複數個交易群組中之其他者利用之該等複數個鎖定與版本管理機制中之其他者不相容,以及其中該等複數個交易群組中之該等其他者之至少一者係經配置以同時利用該等複數個鎖定與版本管理機制中之該等其他者之至少一者;將一第二交易組從該等複數個交易群組中分組至該等複數個交易群組中之一第二者藉由一交易記憶體執行機制執行該等複數個交易群組中之該一者之該交易組;以及藉由該交易記憶體執行機制,與該等複數個交易群組中之該一者之該交易組同時執行該等複數個交易群組中之 該第二者之該第二交易組。
- 一種用以在一電腦之一交易記憶體系統中支持交易群組之方法,該方法包含以下步驟:提供一交易群組特徵,該交易群組特徵經配置以將一組交易放入複數個交易群組中之一者;以及提供一競爭管理機制,該競爭管理機制經配置以偵測一程式之複數個交易之多個同時執行交易間之一衝突,其中該組交易係來自該等複數個交易,以及其中該等複數個交易中之每一者係實現為經配置以存取共享記憶體之代碼,以及其中該組交易係經配置以存取與其他交易分離之資料,以及其中不在該組交易中之該等複數個交易中之其他者經配置以存取其他資料,以及其中該等複數個交易群組中之每一者係經配置以利用複數個鎖定與版本管理機制中之一者,該等複數個鎖定與版本管理機制中之該一者與藉由該等複數個交易群組中之其他者利用之該等複數個鎖定與版本管理機制中之其他者不相容,以及其中該等複數個交易群組中之該等其他者之至少一者係經配置以同時利用該等複數個鎖定與版本管理機制中之該等其他者之至少一者。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/824,379 US7941411B2 (en) | 2007-06-29 | 2007-06-29 | Memory transaction grouping |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200910093A TW200910093A (en) | 2009-03-01 |
TWI442235B true TWI442235B (zh) | 2014-06-21 |
Family
ID=40161867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW097123601A TWI442235B (zh) | 2007-06-29 | 2008-06-24 | 記憶體交易群組 |
Country Status (6)
Country | Link |
---|---|
US (2) | US7941411B2 (zh) |
EP (1) | EP2176763B1 (zh) |
JP (1) | JP5328055B2 (zh) |
CN (1) | CN101681294B (zh) |
TW (1) | TWI442235B (zh) |
WO (1) | WO2009006023A2 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9208191B2 (en) | 2012-07-20 | 2015-12-08 | Sap Se | Lock-free, scalable read access to shared data structures |
US8479166B2 (en) * | 2008-08-25 | 2013-07-02 | International Business Machines Corporation | Detecting locking discipline violations on shared resources |
US8688921B2 (en) * | 2009-03-03 | 2014-04-01 | Microsoft Corporation | STM with multiple global version counters |
JP2010282586A (ja) * | 2009-06-08 | 2010-12-16 | Fujitsu Ltd | ファイル管理装置、ファイル管理方法、ファイル管理プログラム及び情報システム |
US9189297B2 (en) | 2010-12-14 | 2015-11-17 | Hewlett-Packard Development Company, L.P. | Managing shared memory |
US9870384B2 (en) * | 2012-03-30 | 2018-01-16 | International Business Machines Corporation | Database system transaction management |
US9009203B2 (en) | 2013-02-19 | 2015-04-14 | Sap Se | Lock-free, scalable read access to shared data structures using garbage collection |
KR102094475B1 (ko) * | 2013-04-29 | 2020-03-27 | 삼성전자주식회사 | 멀티-트랜잭션의 아토믹 라이트 방법 |
US9684685B2 (en) | 2013-10-24 | 2017-06-20 | Sap Se | Using message-passing with procedural code in a database kernel |
US9600551B2 (en) | 2013-10-24 | 2017-03-21 | Sap Se | Coexistence of message-passing-like algorithms and procedural coding |
US9146774B2 (en) | 2013-12-12 | 2015-09-29 | International Business Machines Corporation | Coalescing memory transactions |
US9158573B2 (en) * | 2013-12-12 | 2015-10-13 | International Business Machines Corporation | Dynamic predictor for coalescing memory transactions |
US9348523B2 (en) | 2013-12-12 | 2016-05-24 | International Business Machines Corporation | Code optimization to enable and disable coalescing of memory transactions |
US9292337B2 (en) | 2013-12-12 | 2016-03-22 | International Business Machines Corporation | Software enabled and disabled coalescing of memory transactions |
US9348522B2 (en) | 2013-12-12 | 2016-05-24 | International Business Machines Corporation | Software indications and hints for coalescing memory transactions |
US9697040B2 (en) * | 2014-03-26 | 2017-07-04 | Intel Corporation | Software replayer for transactional memory programs |
US20150293974A1 (en) * | 2014-04-10 | 2015-10-15 | David Loo | Dynamic Partitioning of Streaming Data |
BR112017014359A2 (pt) * | 2014-12-31 | 2018-04-10 | Huawei Tech Co Ltd | método e aparelho para detectar conflito de transação e sistema de computador. |
Family Cites Families (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4937736A (en) * | 1987-11-30 | 1990-06-26 | International Business Machines Corporation | Memory controller for protected memory with automatic access granting capability |
US5157777A (en) | 1989-12-22 | 1992-10-20 | Intel Corporation | Synchronous communication between execution environments in a data processing system employing an object-oriented memory protection mechanism |
GB2239334B (en) | 1989-12-22 | 1994-07-06 | Intel Corp | Synchronous communication between execution environments in a data processing system employing an object-oriented memory protection mechanism |
CA2115464C (en) | 1994-02-11 | 1998-12-15 | William G. O'farrell | Concurrent processing in object oriented parallel and near parallel systems |
US6237096B1 (en) * | 1995-01-17 | 2001-05-22 | Eoriginal Inc. | System and method for electronic transmission storage and retrieval of authenticated documents |
US5805702A (en) * | 1995-09-29 | 1998-09-08 | Dallas Semiconductor Corporation | Method, apparatus, and system for transferring units of value |
US6324683B1 (en) * | 1996-02-23 | 2001-11-27 | International Business Machines Corporation | System, method and program for debugging external programs in client/server-based relational database management systems |
US6938263B2 (en) | 1996-04-23 | 2005-08-30 | Sun Microsystems, Inc. | System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space |
US6778651B1 (en) * | 1997-04-03 | 2004-08-17 | Southwestern Bell Telephone Company | Apparatus and method for facilitating service management of communications services in a communications network |
US6105147A (en) * | 1997-04-16 | 2000-08-15 | Compaq Computer Corporation | Using process pairs as transaction-coordinated resource managers |
US6085035A (en) | 1997-09-09 | 2000-07-04 | Sun Microsystems, Inc. | Method and apparatus for efficient operations on primary type values without static overloading |
US6493804B1 (en) * | 1997-10-01 | 2002-12-10 | Regents Of The University Of Minnesota | Global file system and data storage device locks |
US7076784B1 (en) * | 1997-10-28 | 2006-07-11 | Microsoft Corporation | Software component execution management using context objects for tracking externally-defined intrinsic properties of executing software components within an execution environment |
US6240413B1 (en) * | 1997-12-22 | 2001-05-29 | Sun Microsystems, Inc. | Fine-grained consistency mechanism for optimistic concurrency control using lock groups |
US6268850B1 (en) * | 1997-12-22 | 2001-07-31 | Sun Microsystems, Inc. | User interface for the specification of lock groups |
US6138269A (en) | 1998-05-20 | 2000-10-24 | Sun Microsystems, Inc. | Determining the actual class of an object at run time |
DE19918896A1 (de) * | 1999-04-26 | 2000-11-02 | Mueschenborn Hans Joachim | Logisches Netzwerksystem |
US6553384B1 (en) | 1999-06-14 | 2003-04-22 | International Business Machines Corporation | Transactional name service |
US6516404B1 (en) * | 1999-07-30 | 2003-02-04 | International Business Machines Corporation | Data processing system having hashed architected processor facilities |
US6856993B1 (en) * | 2000-03-30 | 2005-02-15 | Microsoft Corporation | Transactional file system |
AU2001259089A1 (en) | 2000-04-18 | 2001-11-07 | Sun Microsystems, Inc. | Lock-free implementation of concurrent shared object with dynamic node allocation and distinguishing pointer value |
US7503033B2 (en) * | 2000-04-28 | 2009-03-10 | Microsoft Corporation | Model for business workflow processes |
US6772154B1 (en) * | 2000-11-16 | 2004-08-03 | Sun Microsystems, Inc. | Implementation of nested databases using flexible locking mechanisms |
US20030014394A1 (en) * | 2001-03-22 | 2003-01-16 | Shinji Fujiwara | Cell-level data access control using user-defined functions |
US7062490B2 (en) * | 2001-03-26 | 2006-06-13 | Microsoft Corporation | Serverless distributed file system |
US6654760B2 (en) | 2001-06-04 | 2003-11-25 | Hewlett-Packard Development Company, L.P. | System and method of providing a cache-efficient, hybrid, compressed digital tree with wide dynamic ranges and simple interface requiring no configuration or tuning |
US6748470B2 (en) * | 2001-11-13 | 2004-06-08 | Microsoft Corporation | Method and system for locking multiple resources in a distributed environment |
US7506313B2 (en) * | 2002-03-04 | 2009-03-17 | International Business Machines Corporation | Debug of code with selective display of data |
US7149737B1 (en) * | 2002-04-04 | 2006-12-12 | Ncr Corp. | Locking mechanism using a predefined lock for materialized views in a database system |
US7146366B2 (en) * | 2002-09-13 | 2006-12-05 | Netezza Corporation | Distributed concurrency control using serialization ordering |
US6976022B2 (en) * | 2002-09-16 | 2005-12-13 | Oracle International Corporation | Method and mechanism for batch processing transaction logging records |
US7103597B2 (en) * | 2002-10-03 | 2006-09-05 | Mcgoveran David O | Adaptive transaction manager for complex transactions and business process |
US7496574B2 (en) * | 2003-05-01 | 2009-02-24 | International Business Machines Corporation | Managing locks and transactions |
US7289992B2 (en) * | 2003-05-01 | 2007-10-30 | International Business Machines Corporation | Method, system, and program for lock and transaction management |
US20040230893A1 (en) * | 2003-05-16 | 2004-11-18 | Dethe Elza | Method and system for enabling collaborative authoring of hierarchical documents with node privileges |
US7243088B2 (en) * | 2003-08-06 | 2007-07-10 | Oracle International Corporation | Database management system with efficient version control |
US7587615B2 (en) * | 2003-09-12 | 2009-09-08 | International Business Machines Corporation | Utilizing hardware transactional approach to execute code after initially utilizing software locking by employing pseudo-transactions |
US20060149739A1 (en) * | 2004-05-28 | 2006-07-06 | Metadata, Llc | Data security in a semantic data model |
US7818513B2 (en) * | 2004-08-10 | 2010-10-19 | Oracle America, Inc. | Coordinating accesses to shared objects using transactional memory mechanisms and non-transactional software mechanisms |
US7315926B2 (en) * | 2004-09-21 | 2008-01-01 | Emc Corporation | Lock management for concurrent access to a single file from multiple data mover computers |
US20060167921A1 (en) * | 2004-11-29 | 2006-07-27 | Grebus Gary L | System and method using a distributed lock manager for notification of status changes in cluster processes |
US20070168292A1 (en) * | 2004-12-21 | 2007-07-19 | Fabrice Jogand-Coulomb | Memory system with versatile content control |
US20060271510A1 (en) * | 2005-05-25 | 2006-11-30 | Terracotta, Inc. | Database Caching and Invalidation using Database Provided Facilities for Query Dependency Analysis |
KR100606748B1 (ko) * | 2005-05-27 | 2006-08-01 | 엘지전자 주식회사 | 메시지 인증을 위한 방법과, 그를 위한 단말기 및 시스템 |
US7529902B2 (en) * | 2005-10-19 | 2009-05-05 | Lsi Corporation | Methods and systems for locking in storage controllers |
US7761591B2 (en) * | 2005-12-16 | 2010-07-20 | Jean A. Graham | Central work-product management system for coordinated collaboration with remote users |
US20070186056A1 (en) * | 2006-02-07 | 2007-08-09 | Bratin Saha | Hardware acceleration for a software transactional memory system |
US8099538B2 (en) * | 2006-03-29 | 2012-01-17 | Intel Corporation | Increasing functionality of a reader-writer lock |
CN101427248B (zh) * | 2006-04-27 | 2013-05-22 | 英特尔公司 | 用于基于内容的分割与挖掘的基于系统的方法 |
US7676691B2 (en) * | 2006-08-18 | 2010-03-09 | Isilon Systems, Inc. | Systems and methods for providing nonlinear journaling |
US8214451B2 (en) * | 2007-01-19 | 2012-07-03 | Alcatel Lucent | Network service version management |
US8332374B2 (en) * | 2007-04-13 | 2012-12-11 | Oracle America, Inc. | Efficient implicit privatization of transactional memory |
-
2007
- 2007-06-29 US US11/824,379 patent/US7941411B2/en active Active
-
2008
- 2008-06-18 JP JP2010514980A patent/JP5328055B2/ja active Active
- 2008-06-18 EP EP08771364.0A patent/EP2176763B1/en active Active
- 2008-06-18 WO PCT/US2008/067343 patent/WO2009006023A2/en active Application Filing
- 2008-06-18 CN CN2008800201893A patent/CN101681294B/zh active Active
- 2008-06-24 TW TW097123601A patent/TWI442235B/zh not_active IP Right Cessation
-
2011
- 2011-03-08 US US13/043,082 patent/US8484175B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US8484175B2 (en) | 2013-07-09 |
JP2010532530A (ja) | 2010-10-07 |
US20110161603A1 (en) | 2011-06-30 |
US20090006406A1 (en) | 2009-01-01 |
JP5328055B2 (ja) | 2013-10-30 |
EP2176763A2 (en) | 2010-04-21 |
EP2176763A4 (en) | 2011-12-07 |
WO2009006023A2 (en) | 2009-01-08 |
CN101681294B (zh) | 2013-12-25 |
CN101681294A (zh) | 2010-03-24 |
EP2176763B1 (en) | 2019-09-04 |
WO2009006023A3 (en) | 2009-03-05 |
TW200910093A (en) | 2009-03-01 |
US7941411B2 (en) | 2011-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI442235B (zh) | 記憶體交易群組 | |
Hildebrand et al. | Autotm: Automatic tensor movement in heterogeneous memory systems using integer linear programming | |
US10152309B2 (en) | Cross-library framework architecture feature sets | |
JP5957006B2 (ja) | 拡張可能なデータ並列セマンティクス | |
US8549502B2 (en) | Compiler with user-defined type inference rules | |
US10970130B2 (en) | Composable and cancelable dataflow continuation passing | |
JP2013524386A (ja) | ランスペース方法、システムおよび装置 | |
US9817643B2 (en) | Incremental interprocedural dataflow analysis during compilation | |
JP2014146355A (ja) | トランザクションを用いるシーケンシャルフレームワークの並行化 | |
Kicherer et al. | Seamlessly portable applications: Managing the diversity of modern heterogeneous systems | |
Belviranli et al. | Juggler: a dependence-aware task-based execution framework for GPUs | |
JP2023507709A (ja) | 統合された参照及び二次のマーキング | |
US9766926B2 (en) | Method and system for optimizing parallel program execution based on speculation that an object written to is not shared | |
JP5276094B2 (ja) | トランザクション・メモリ・システムにおけるトランザクション・コード・ブロックを効果的に検索する方法 | |
Gay et al. | Yada: Straightforward parallel programming | |
US20100077384A1 (en) | Parallel processing of an expression | |
JP2022542007A (ja) | テスト・ベクタを使用した高水準コンストラクトの最適化の自動検証 | |
WO2009002725A1 (en) | Object model for transactional memory | |
Fumero et al. | Using compiler snippets to exploit parallelism on heterogeneous hardware: a Java reduction case study | |
You et al. | A static region‐based compiler for the Dalvik virtual machine | |
Luecke | Software Development for Parallel and Multi-Core Processing | |
CN116010100A (zh) | 区块链系统中的合约调用方法、装置、设备及存储介质 | |
Stork | Concurrent Programming via Access Permissions | |
Strumpen et al. | Multithreaded Processor Architecture with Implicit Granularity Adaptation | |
Vance | A migration-based parallel programming model with architectural support structures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |