TWI515661B - 用於減少專屬類型穩定配置集用場的方法及電腦可讀取儲存媒體 - Google Patents
用於減少專屬類型穩定配置集用場的方法及電腦可讀取儲存媒體 Download PDFInfo
- Publication number
- TWI515661B TWI515661B TW103109965A TW103109965A TWI515661B TW I515661 B TWI515661 B TW I515661B TW 103109965 A TW103109965 A TW 103109965A TW 103109965 A TW103109965 A TW 103109965A TW I515661 B TWI515661 B TW I515661B
- Authority
- TW
- Taiwan
- Prior art keywords
- data structure
- transaction
- transaction data
- type
- memory
- Prior art date
Links
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
- G06F9/467—Transactional memory
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本發明是有關於一種促進競爭管理的方法,且特別是有關於一種使用類型穩定以促進競爭管理的方法。
交易記憶(Transactional memory)是可使同作程式(concurrent programs)更為簡化的一種機制,一交易詳述了一系列的程式碼,其在執行時應「如同」在隔離狀態下執行,然而在實際運作時,是允許交易同作執行的,且發生衝突的資料存取可被偵察出來。當競爭發生時所做的決策,例如「競爭管理」,可對交易系統的效能表現有明顯的影響。
然而,在競爭管理者(contention manager)的實施上有一重要且基礎的問題。假設交易Tx1偵察到與交易Tx2有所競爭,一種可能的狀況是Tx2持有Tx1亦想鎖定之資料項的悲觀寫入鎖(pessimistic write lock),在一些情況裡,競爭管理者中止Tx2而允許Tx1取得鎖的決策可能有其意義,因
為或許Tx2短,Tx1長,因此在中止Tx2後重新執行Tx2的成本會遠少於重新執行Tx1的成本。
但是在此示例情境中,Tx1偵察到此競爭狀況,且似乎是執行競爭管理決策邏輯的合理場所,但是如此做,它需要關於Tx2的資訊,例如關於它的執行狀況的統計資料、交易記錄的內容,或者它可以請求Tx2自願中止而釋出其取得之鎖。在最自然的情況下,前述之資訊儲存於代表交易Tx2的資料結構中,為了效率考量,此資料結構對執行Tx2的執行緒(thread)而言最好是屬於區域性(local),而非在某些全域性(global)資料結構內。交易記憶系統將定義某些鎖定資料結構以涵蓋每一個可能共享的資料項。當一位置是鎖寫(write-locked)時,此鎖定資料結構將包括某種指示來顯示此交易持有鎖,當Tx1發現它想存取的資料項是鎖寫時,它可讀取此鎖定資料結構以發現Tx2的身分。問題的核心是一旦Tx1獲得指向代表Tx2的資料結構的指標,並且準備自此資料結構讀取資料,Tx2可能已完成,並且它的資料結構可能已被解除配置,且可能為了其他目的而被重新配置,在此情況下,Tx1所讀取關於Tx2的資訊是不穩定的。
在此揭露不同的科技及技術來提供使用類型穩定技術以促進競爭管理。交易記憶系統提供一參考計數機制以使交易能夠安全地檢查代表其他交易的資料結構,使用此參考計數機制可促進二交易間的衝突解決(稱為「競爭管理」),例如,由於一交易試圖取得另一交易佔有的專屬鎖定,因此與
此佔有中交易有關的資訊即被取得。代表此佔有中交易之資料結構的計數被增量,系統會確認是正確的交易資料結構的參考計數被增量,以預防此資料結構被解除配置且重新配置以代表另一交易。若此佔有中交易仍然佔有引起衝突的鎖,則在此佔有中交易資料結構中的資訊通知一競爭管理決策,此決策決定是否中止二交易的其中一者或等待此佔有中交易釋出此鎖。
當決定競爭管理決策時,先前對此佔有中交易資料結構的參考計數進行增量的衝突交易將對其進行減量。每一交易資料結構的參考計數的起始數值為一,當每一交易完成時,其資料結構的參考計數會被減量。當在另一執行緒中的衝突交易正在對一資料結構進行存取時,不為零的參考計數可預防將此交易資料結構解除配置。當資料結構的參考計數為零時,資料結構可被解除配置。
在一實施例中,使用一不穩定屬性可減少專屬的類型穩定配置集用場(pool),在執行緒可取得指向交易資料結構的指標之前,設定一執行緒不穩定屬性,並於指標使用完後即清除此屬性。在廢料收集暫停期間,只有在執行緒不穩定屬性未設置於任何執行緒時,可將在一類型穩定配置集用場的物件刪除。
提供此發明說明係用以介紹經簡化之部分發明構想,將於以下的實例方式詳細說明,此發明說明並非用以說明申請專利之發明的主要或必要技術特徵,亦非用以輔助判定申請專利之發明的範圍。
100‧‧‧計算裝置
102‧‧‧處理單元
104‧‧‧記憶體
106‧‧‧虛線
108‧‧‧可移除儲存裝置
110‧‧‧不可移除儲存裝置
111‧‧‧輸出裝置
112‧‧‧輸入裝置
114‧‧‧通訊連接模組
115‧‧‧其他電腦/應用
200‧‧‧交易記憶應用軟體
206‧‧‧用以提供競爭管理者的邏輯
208‧‧‧用以使得交易日誌區段類型穩定的邏輯
210‧‧‧用以使得交易資料結構類型穩定的邏輯
360‧‧‧方塊圖
362‧‧‧第一交易
363‧‧‧第二交易
364‧‧‧資料結構
365‧‧‧資料結構
366‧‧‧交易日誌區段
204‧‧‧程式邏輯
240、270、290‧‧‧起點
310、340、370、400‧‧‧起點
250、280、298‧‧‧終點
320、354、380、408‧‧‧終點
242~248‧‧‧階段
272~278‧‧‧階段
367‧‧‧交易日誌區段
368‧‧‧指標
369‧‧‧競爭物件
292~296‧‧‧階段
312~318‧‧‧階段
342~352‧‧‧階段
372~378‧‧‧階段
402~406‧‧‧階段
為讓本發明之上述和其他目的、特徵、優點與實施例能更明顯易懂,所附圖式之詳細說明如下:第1圖係繪示根據一實施例的電腦系統方塊圖。
第2圖係繪示於第1圖之電腦系統運作之一實施例的交易記憶應用方塊圖。
第3圖係繪示於第1圖之系統的實施例的上位流程圖。
第4圖係第1圖之系統的實施例的流程圖,其繪示使得交易日誌區段類型穩定的階段。
第5圖係第1圖之系統的實施例的流程圖,其繪示使得交易資料結構類型穩定所涉及之階段。
第6圖係第1圖之系統的實施例的流程圖,其繪示佔有正參與一參考計數機制之鎖的一交易所採取的動作。
第7圖係第1圖之系統的實施例的流程圖,其繪示參與察覺到競爭之一參考計數機制的一交易所採取的動作。
第8圖係繪示於二個交易間使用參考計數機制之實施例的方塊圖。
第9圖係第1圖之系統的實施例的流程圖,其繪示使用一不穩定屬性以減少專屬的類型穩定配置集用場所涉及之階段。
第10圖係另一實施例的流程圖,其繪示藉由追蹤指向類型穩定記憶體的指標以減少專屬的類型穩定配置集用場。
在一般情況下可將在此的科技及技術敘述成一個交易記憶系統(transactional memory system)之一般架構,但這些科技及技術亦可用於除此之外的其他目的。在一實施例中,在此敘述的一或多個技術可以諸如MICROSOFT®.NET框架之類的框架程式內的特徵來實現,或者以提供平台讓開發者開發應用軟體的任何其他類型的程式或服務之特徵來實現。在另一實施例中,在此說明的一或多個技術可與在同作環境中執行的其他開發應用軟體作為特徵來實現。
在一實施例中,提供一交易記憶系統,其使用類型穩定技術使得無鎖(lock-free)競爭管理成為可能。在一實施例中,提供一參考計數機制以使一交易能夠安全地檢查代表另一交易的資料結構。此處使用的「參考計數機制」(reference counting mechanism)意指包括為了一特定交易資料結構而去追蹤在一特定時刻指示是否有其他交易對此特定交易資料結構感興趣的數字或者其他資料,及確保當其他交易對其感興趣時,此特定交易資料結構不被解除配置(返還至類型穩定配置集用場)的技術。此處使用的「類型穩定配置集用場」(type-stable allocation pool)表示記憶體集用場,由記憶體集用場以一特定的方式配置物件:一旦一個記憶區塊被配置為代表一個類型T的物件,則此記憶區塊即不會被再用來代表其他類型U的物件。因此,指向T的指標可以總是被認為指向T。此處使用的「安全地檢查」(safely examine)意指包括當檢查進行時不允許被檢查的資料被解除配置的能力。一交易
資料結構的參考計數會被任一登記對其感興趣的交易增量,當興趣終止時,參考計數會被減量。當然,每個交易會對代表它的資料結構感興趣,因此在作配置時參考計數為1,而當交易完成時,其交易資料結構的參考計數會被減量,直到資料結構的參考計數成為0才將資料結構解除配置。在另一實施例中,透過使用廢料收集器(garbage collector)認得的不穩定屬性,專屬的類型穩定配置集用場可被安全地釋出。在執行緒(thread)可以取得指向交易資料結構的指標之前,即設置一執行緒不穩定屬性,並於指標使用完後即重置此屬性。在廢料收集暫停期間,只有在執行緒不穩定屬性未設置於任何執行緒時,可將在一類型穩定配置集用場中的物件刪除。
第1圖所示為用以實施此系統的一或多個部分的示例電腦系統,其包括一計算裝置,如計算裝置100。計算裝置100最基本的配置包括至少一處理單元102及記憶體104,取決於計算裝置實際的配置及種類,記憶體104可能是揮發性(例如RAM)、非揮發性(例如ROM、快閃記憶體等)或兩者的結合,這種最基本的配置以虛線106繪示於第1圖中。
另外,計算裝置100可能也有另外的特徵/功能,例如,計算裝置100可能也包括額外的儲存裝置(可移除及/或不可移除),其包括,但不限於,磁碟、光碟或磁帶、光學磁帶。這些額外的儲存裝置係以可移除儲存裝置108及不可移除儲存裝置110繪示於第1圖中。電腦儲存媒體包括以任何的方法或科技實施而用以儲存資料(如電腦可讀取指令、資料結構、程式模組或其他資料)的揮發性及非揮發性、可移除及不
可移除媒體。記憶體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的一或多個部分可以是記憶體104的一部分,在其他電腦及/或應用115上,或者其他可在電腦軟體領域存在的態樣。
交易記憶應用軟體200包括程式邏輯204,負責執
行部分或所有在此描述的技術,程式邏輯204包括用以提供競爭管理者的邏輯206;用以使得交易日誌區段(log segment)類型穩定的邏輯208(如下所述參照第4圖);用以使得交易資料結構類型穩定的邏輯210(如下所述參照第5圖);使用參考計數機制以使第一交易能夠安全地檢查第二交易的狀態的邏輯212(如下所述參照第6-8圖);用以適當地減少專屬的類型穩定配置集用場的邏輯214(如下所述參照第9-10圖);以及用以操作此應用的其他邏輯220。
參照第3-10圖時請繼續參照第1-2圖,在此詳述實現交易記憶應用軟體200的一或更多實施例的階段。在一些實施例中,第3-10圖中的過程至少有部分是在計算裝置100的運作邏輯中實現。第3圖係交易記憶應用軟體200的上位流程圖,應注意的是,第3圖雖以一順序描述,並非限定其順序,第3圖中描述的特徵及/或動作可能以其他順序提供及/或執行。在起點240,此過程以使得交易日誌區段類型穩定作為開始,將於第4圖中更進一步描述此階段(階段242)。類型穩定確保一類型穩定指標所指向之物件是屬於指示之類型,在一同作環境中,指標所指向之物件的內容可被同作執行緒所改變,但是它的類型將不會改變。此系統使交易資料結構類型穩定,在第5圖有更進一步的細節描述(階段244)。使用參考計數機制以使另一交易能夠防止它感興趣的交易資料結構被解除配置,在第6-8圖有更進一步的細節描述(階段246)。此系統以適當的方式選擇性地減少專屬的類型穩定配置集用場,在第9及10圖中有更進一步的細節描述(階段248)。
此過程結束於終點250。
第4圖係繪示一實施例的流程圖,其包括了使得交易日誌區段類型穩定所涉及的各階段。應注意的是,第4圖雖以一順序描述,並非限定其順序,第4圖中描述的特徵及/或動作可能以其他順序提供及/或執行。在起點270,此過程始於確保一指標是否指向一日誌區段,在之後其依然保持如此(階段272)。此系統使得所有日誌區段的大小相同,且校準成其配置的大小(階段274)。此系統以指向代表其佔有中交易之資料結構的指標來起始每一日誌區段(階段276)。若給定指向在日誌區段內一寫入日誌項(write log entry)的一指標,即可計算出指向日誌區段起始點的指標(階段278)。此過程結束於終點280。
第5圖係繪示一實施例的流程圖,其包括了使得交易資料結構類型穩定的各階段。在起點290,此過程始於提供只會增加之交易資料結構的全域性集用場(global pool)(階段292)。為了使得配置更有效率,中型區段會分配給執行緒區域性配置集用場(階段294)。這樣使得指向交易資料結構的指標可以安全地解參考(階段296)。此過程結束於終點298。
第6圖係繪示一實施例的流程圖,其包括了佔有正參與一參考計數之鎖的交易所採取的動作。在起點310,此過程將新近配置的交易資料結構的參考計數定為1,意思為其被其所代表的交易所使用(階段312)。當每一交易完成時,它減量它自身的交易資料結構的參考計數(階段314)。若參考計數為零,則資料結構可被解除配置(階段316),若參考計數大於
零,則資料結構不會被解除配置,然而解除配置的責任傳遞至最後將參考計數減至零的交易上(階段318)。此過程結束於終點320。
第7圖係繪示一實施例的流程圖,其包括了參與對競爭有所察覺的參考計數機制的交易所採取的動作。在起點340,此過程始於追蹤一物件中的鎖定資訊以取得指向代表可能佔有中交易的資料結構的指標(階段342)。於可能佔有中交易的資料結構中,增量一參考計數(階段344)。再次追蹤物件中的鎖定資訊,判定正確交易資料結構的參考計數是否被增量(決策點346)。若此鎖定資訊仍然導引至相同的交易資料結構,此交易資料結構是針對「正確的交易」。若正確參考計數未被增量,則可能佔有中交易的資料結構的參考計數會被減量,且在一更高層次再試著鎖定(階段348)。
若正確交易資料結構的參考計數被增量(決策點346),則決定競爭管理決策,以決定是否中止此競爭交易、中止其本身(即察覺到競爭的交易)、或等待此競爭交易釋出此鎖(階段350)。於是減量此佔有中交易資料結構的參考計數,且若減量後參考計數為零,即刪除此資料結構(階段352)。此過程結束於終點354。
第8圖係繪示於二個交易間使用參考計數機制之實施例的方塊圖360。第一交易362包括資料結構364及交易日誌區段366,第二交易363包括資料結構365及交易日誌區段367。當第二交易363因為競爭物件369而對第一交易362的資料結構登記興趣時,第二交易363讀取競爭物件369中的
鎖定資訊,將發現此物件是鎖住的,及第一交易362佔有著鎖。在此實施例中,在競爭物件369中的鎖定資訊包括一指標,此指標指向鎖定第一交易362的日誌中的一項,其包括與此鎖定相關的更多資訊。如同之前所討論的,日誌區段包括指向它們的佔有中交易資料結構364的指標。在其他實施例中,可使用其他鎖定機制以替佔有鎖的交易辨識資料結構。例如,鎖定資訊可能直接指出佔有中交易,而儲存在交易日誌區段366日誌項中的其他關於此鎖定的資訊可被置於散列表(hash table)中而利用鎖定物件的位址進行索引。
第二交易增量在第一交易362的資料結構364中的參考計數(在此次增量後數值為2),在這個過程中,執行第一交易的執行緒並沒有停止,它可繼續執行,完成其交易工作,且對代表它的資料結構364解除配置,這個資料結構甚至可被重新配置以代表第三交易。增量參考計數的目的是為了防止解除配置,但增量的動作可能發生在這些步驟之後,使得資料結構被解除配置或代表另一不同的交易,因此,在增量參考計數後,第二交易363必須確認資料結構364仍然代表的是其感興趣的交易,它再次檢查在競爭物件369中的鎖定資訊,確認它仍然導引至相同的交易資料結構364,如果它不是,那麼,競爭物件369的鎖定資訊已經改變;由於它現在可能會成功,因此我們從頭開始重試鎖定程序。如果它未導引至相同的資料結構364,則第二交易363已取得指向第一交易362的資料結構364的指標368,如此一來它能夠安全地檢查資料結構364,藉此為競爭物件369促成競爭管理決
策。當第二交易363完成時,其增量第一交易362中資料結構364的參考計數,以指示其將不再對該資料結構感興趣。一特定交易資料結構直至其參考計數為零才能被解除配置,這意味著不再有任何交易對其資料感興趣。如果第一交易362先前已完成,那麼第二交易363的減量動作可能使得資料結構364的參考計數成為零,在這種情況下,第二交易363必須將這個資料結構配除配置。
第9圖係繪示一實施例的流程圖,其包括了使用一不穩定屬性以減少專屬的類型穩定配置集用場的各階段。在起點370,此過程始於在當前的執行緒上設定一不穩定位元(階段372),然後取得指向一競爭交易的指標(階段374)。在一實施例中,每個執行緒在可能取得指向交易資料結構的指標之前必須設定一不穩定屬性。決定競爭管理決策以解決衝突(階段376),一旦決定競爭管理決策,即不再使用指向競爭交易的指標(階段376)。因此,在當前的執行緒上清除不穩定位元(階段378)。在一實施例中,如果所有的執行緒在廢料收集時即停止,且沒有執行緒設定其不穩定屬性,那麼在類型穩定配置集用場的物件可被解除配置。此解除配置不是類型穩定,因為刪除的記憶可被返還至操作系統且被重新配置以代表其他類型。此過程結束於終點380。
第10圖係繪示替代第9圖的實施例的流程圖,其包括了藉由追蹤指向類型穩定記憶體的指標位置以減少專屬的類型穩定配置集用場的各階段。在起點400,此過程始於要求執行緒執行競爭管理以向類型穩定記憶體宣告指標位置(階
段402)。系統於類型穩定配置集用場執行類似廢料收集的過程,辨識使用中的元件(階段404)。系統可選擇性地將一些剩下的類型穩定配置集用場解除配置(階段406)。此過程結束於終點408。
雖然已將本發明的具體結構特徵及/或方法動作揭露如上,然其並非用以限定本發明,而是用以舉例說明本發明的可能實施方法,任何熟習此技術者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
舉例來說,在電腦軟體領域中具有通常知識者會認知到在此討論的例子可於一或多個電腦上以不同的方式組織架構以包括較少或額外的選項或功能特微。
100‧‧‧計算裝置
102‧‧‧處理單元
104‧‧‧記憶體
106‧‧‧虛線
108‧‧‧可移除儲存裝置
110‧‧‧不可移除儲存裝置
111‧‧‧輸出裝置
112‧‧‧輸入裝置
114‧‧‧通訊連接模組
115‧‧‧其他電腦/應用
200‧‧‧交易記憶應用軟體
Claims (4)
- 一種用於使用一不穩定屬性以減少專屬的類型穩定(type-stable)配置集用場(allocation pool)的方法,該方法包含以下步驟:提供一交易記憶機制,該交易記憶機制允許複數個交易的其中一者可安全地檢查該些交易中的另一者的一交易資料結構,該檢查之方式係不允許在該檢查進行同時解除配置(deallocate)正被檢查的該交易資料結構,若該交易資料結構被解除配置則該交易資料結構被回傳至一類型穩定記憶體配置集用場,物件乃從該類型穩定記憶體配置集用場被配置,該配置之方式係使得一旦一記憶體塊經配置以代表一指定類型物件,則該記憶體塊不被再使用以代表別的類型;在取得指向該交易資料結構之一指標之前,為該交易資料結構設置一執行緒不穩定屬性;當不再需要指向該交易資料結構之該指標時,清除該執行緒不穩定屬性;以及在一廢料收集暫停期間,若該執行緒不穩定屬性未設置於該些交易的任一者上,則刪除在一類型穩定記憶體配置集用場中的物件。
- 如申請專利範圍第1項所述之方法,其中一參考計數機制於該交易資料結構維持一個別參考計數,以追蹤在一特定時刻感興趣的交易的個數。
- 如申請專利範圍第2項所述之方法,其中該參考計數機制確保該交易資料結構直至該個別參考計數減至零時才可被解除配置。
- 一種電腦可讀取儲存媒體,該電腦可讀取儲存媒體乃一記憶體裝置,該電腦可讀取儲存媒體儲存有電腦可執行指令,該等電腦可執行指令用於控制一電腦系統執行一方法,該方法包含下列步驟:提供一交易記憶機制,該交易記憶機制允許複數個交易的其中一者可安全地檢查該些交易中的另一者的一交易資料結構,該檢查之方式係不允許在該檢查進行同時解除配置(deallocate)正被檢查的該交易資料結構,若該交易資料結構被解除配置則該交易資料結構被回傳至一類型穩定(type-stable)記憶體配置集用場(allocation pool),物件乃從該類型穩定記憶體配置集用場被配置,該配置之方式係使得一旦一記憶體塊經配置以代表一指定類型物件,則該記憶體塊不被再使用以代表別的類型;在取得指向該交易資料結構之一指標之前,為該交易資料結構設置一執行緒不穩定屬性;當不再需要指向該交易資料結構之該指標時,清除該執行緒不穩定屬性;以及在一廢料收集暫停期間,若該執行緒不穩定屬性未設置於該些交易的任一者上,則刪除在一類型穩定記憶體配置集用場中的物件。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/824,353 US7991967B2 (en) | 2007-06-29 | 2007-06-29 | Using type stability to facilitate contention management |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201426557A TW201426557A (zh) | 2014-07-01 |
TWI515661B true TWI515661B (zh) | 2016-01-01 |
Family
ID=40161866
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103109965A TWI515661B (zh) | 2007-06-29 | 2008-06-10 | 用於減少專屬類型穩定配置集用場的方法及電腦可讀取儲存媒體 |
TW097121596A TWI455029B (zh) | 2007-06-29 | 2008-06-10 | 用於使用類型穩定性來促進競爭管理的方法及電腦可讀取儲存媒體 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW097121596A TWI455029B (zh) | 2007-06-29 | 2008-06-10 | 用於使用類型穩定性來促進競爭管理的方法及電腦可讀取儲存媒體 |
Country Status (6)
Country | Link |
---|---|
US (2) | US7991967B2 (zh) |
EP (1) | EP2176764B1 (zh) |
JP (1) | JP5435741B2 (zh) |
CN (1) | CN101689139B (zh) |
TW (2) | TWI515661B (zh) |
WO (1) | WO2009006025A2 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6988161B2 (en) | 2001-12-20 | 2006-01-17 | Intel Corporation | Multiple port allocation and configurations for different port operation modes on a host |
US7991967B2 (en) | 2007-06-29 | 2011-08-02 | Microsoft Corporation | Using type stability to facilitate contention management |
US8924403B2 (en) * | 2007-12-31 | 2014-12-30 | Sap Se | Method and system for central data querying |
US8832401B2 (en) * | 2011-01-26 | 2014-09-09 | International Business Machines Corporation | Iteratively de-allocating active objects associated with virtual functions of an adapter |
US9411739B2 (en) * | 2012-11-30 | 2016-08-09 | Intel Corporation | System, method and apparatus for improving transactional memory (TM) throughput using TM region indicators |
WO2014142861A1 (en) * | 2013-03-14 | 2014-09-18 | Intel Corporation | Memory object reference count management with improved scalability |
US20160062655A1 (en) * | 2014-08-28 | 2016-03-03 | Endgame, Inc. | System and Method for Improved Memory Allocation in a Computer System |
WO2017011223A1 (en) * | 2015-07-10 | 2017-01-19 | Rambus, Inc. | Thread associated memory allocation and memory architecture aware allocation |
CN106599151A (zh) * | 2016-12-07 | 2017-04-26 | Tcl集团股份有限公司 | 一种Android工程无用资源并行清理的方法及系统 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4912629A (en) * | 1986-06-26 | 1990-03-27 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Real-time garbage collection for list processing using restructured cells for increased reference counter size |
US5701480A (en) | 1991-10-17 | 1997-12-23 | Digital Equipment Corporation | Distributed multi-version commitment ordering protocols for guaranteeing serializability during transaction processing |
US5241675A (en) | 1992-04-09 | 1993-08-31 | Bell Communications Research, Inc. | Method for enforcing the serialization of global multidatabase transactions through committing only on consistent subtransaction serialization by the local database managers |
US5335343A (en) | 1992-07-06 | 1994-08-02 | Digital Equipment Corporation | Distributed transaction processing using two-phase commit protocol with presumed-commit without log force |
US5842016A (en) * | 1997-05-29 | 1998-11-24 | Microsoft Corporation | Thread synchronization in a garbage-collected system using execution barriers |
EP1236097A4 (en) * | 1999-09-01 | 2006-08-02 | Intel Corp | BRANCH COMMAND TO THE PROCESSOR |
US6513100B1 (en) * | 2000-10-30 | 2003-01-28 | Microsoft Corporation | System and method for fast referencing a reference counted item |
US7216136B2 (en) * | 2000-12-11 | 2007-05-08 | International Business Machines Corporation | Concurrent collection of cyclic garbage in reference counting systems |
US7769791B2 (en) * | 2001-01-12 | 2010-08-03 | Oracle America, Inc. | Lightweight reference counting using single-target synchronization |
GB0130399D0 (en) | 2001-12-19 | 2002-02-06 | Ibm | Message ordering in a messaging system |
US6754737B2 (en) | 2001-12-24 | 2004-06-22 | Hewlett-Packard Development Company, L.P. | Method and apparatus to allow dynamic variation of ordering enforcement between transactions in a strongly ordered computer interconnect |
US6785779B2 (en) | 2002-01-09 | 2004-08-31 | International Business Machines Company | Multi-level classification method for transaction address conflicts for ensuring efficient ordering in a two-level snoopy cache architecture |
US7685583B2 (en) | 2002-07-16 | 2010-03-23 | Sun Microsystems, Inc. | Obstruction-free mechanism for atomic update of multiple non-contiguous locations in shared memory |
US7076508B2 (en) | 2002-08-12 | 2006-07-11 | International Business Machines Corporation | Method, system, and program for merging log entries from multiple recovery log files |
US7146366B2 (en) | 2002-09-13 | 2006-12-05 | Netezza Corporation | Distributed concurrency control using serialization ordering |
US7003532B2 (en) * | 2002-11-27 | 2006-02-21 | Microsoft Corporation | System and method for scaleable multiplexed transactional log recovery |
US6898685B2 (en) | 2003-03-25 | 2005-05-24 | Emc Corporation | Ordering data writes from a local storage device to a remote storage device |
CA2425033A1 (en) | 2003-04-08 | 2004-10-08 | Ibm Canada Limited - Ibm Canada Limitee | Multi-level locking hierarchy in a database with multi-dimensional clustering |
US7343598B2 (en) | 2003-04-25 | 2008-03-11 | Microsoft Corporation | Cache-conscious coallocation of hot data streams |
US7243088B2 (en) * | 2003-08-06 | 2007-07-10 | Oracle International Corporation | Database management system with efficient version control |
US7475093B2 (en) | 2004-10-15 | 2009-01-06 | Microsoft Corporation | Memory cache management in XML/relational data mapping |
US7376675B2 (en) | 2005-02-18 | 2008-05-20 | International Business Machines Corporation | Simulating multi-user activity while maintaining original linear request order for asynchronous transactional events |
US8027288B2 (en) * | 2005-04-22 | 2011-09-27 | Nokia Corporation | Reducing beacon slot acquisition time in distributed media access control network |
US8028133B2 (en) * | 2006-02-22 | 2011-09-27 | Oracle America, Inc. | Globally incremented variable or clock based methods and apparatus to implement parallel transactions |
US7669015B2 (en) * | 2006-02-22 | 2010-02-23 | Sun Microsystems Inc. | Methods and apparatus to implement parallel transactions |
US7991967B2 (en) | 2007-06-29 | 2011-08-02 | Microsoft Corporation | Using type stability to facilitate contention management |
-
2007
- 2007-06-29 US US11/824,353 patent/US7991967B2/en active Active
-
2008
- 2008-06-10 TW TW103109965A patent/TWI515661B/zh not_active IP Right Cessation
- 2008-06-10 TW TW097121596A patent/TWI455029B/zh not_active IP Right Cessation
- 2008-06-18 CN CN200880022472.XA patent/CN101689139B/zh active Active
- 2008-06-18 EP EP08771367.3A patent/EP2176764B1/en active Active
- 2008-06-18 WO PCT/US2008/067346 patent/WO2009006025A2/en active Application Filing
- 2008-06-18 JP JP2010514981A patent/JP5435741B2/ja active Active
-
2011
- 2011-08-02 US US13/196,569 patent/US8578105B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US8578105B2 (en) | 2013-11-05 |
US20090006405A1 (en) | 2009-01-01 |
JP2010532531A (ja) | 2010-10-07 |
EP2176764A2 (en) | 2010-04-21 |
CN101689139B (zh) | 2014-04-30 |
WO2009006025A3 (en) | 2009-03-05 |
EP2176764B1 (en) | 2015-07-15 |
CN101689139A (zh) | 2010-03-31 |
TW201426557A (zh) | 2014-07-01 |
US7991967B2 (en) | 2011-08-02 |
TWI455029B (zh) | 2014-10-01 |
US20110289288A1 (en) | 2011-11-24 |
WO2009006025A2 (en) | 2009-01-08 |
JP5435741B2 (ja) | 2014-03-05 |
EP2176764A4 (en) | 2011-11-16 |
TW200905568A (en) | 2009-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI515661B (zh) | 用於減少專屬類型穩定配置集用場的方法及電腦可讀取儲存媒體 | |
US7676638B2 (en) | Combined pessimistic and optimistic concurrency control | |
US8595446B2 (en) | System and method for performing dynamic mixed mode read validation in a software transactional memory | |
US8473950B2 (en) | Parallel nested transactions | |
US8495641B2 (en) | Efficiently boosting priority of read-copy update readers while resolving races with exiting and unlocking processes | |
US9727369B2 (en) | System and method for implementing reader-writer locks using hardware transactional memory | |
US9053140B2 (en) | Enhanced B-trees with record merging | |
Spiegelman et al. | Transactional data structure libraries | |
RU2439663C2 (ru) | Порядок фиксации программных транзакций и управление конфликтами | |
US8239635B2 (en) | System and method for performing visible and semi-visible read operations in a software transactional memory | |
US9672077B2 (en) | Reentrant read-write lock algorithm | |
JP5270268B2 (ja) | 共有データへの排他的アクセスを許すためのコンピュータ・システム、並びにその方法及びコンピュータ読み取り可能な記録媒体 | |
US10929201B2 (en) | Method and system for implementing generation locks | |
JP2010539609A (ja) | トランザクショナルメモリにおける並列入れ子状トランザクション | |
US20120233139A1 (en) | Efficient multi-version locking for main memory databases | |
JP2010524133A (ja) | バッファリングされた書込みおよび強制的直列化順序を使用するトランザクショナルメモリ | |
US8412691B2 (en) | Maintenance and access of a linked list |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |