欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種推測嵌套軟件事務存儲的沖突管理方法

文檔序號:9326649閱讀:351來源:國知局
一種推測嵌套軟件事務存儲的沖突管理方法
【技術領域】
[0001] 本發(fā)明屬于事務管理領域,具體涉及一種推測嵌套軟件事務存儲的沖突管理方 法。
【背景技術】
[0002] 隨著計算機硬件的迅速發(fā)展,多核處理器已經(jīng)廣泛應用于工業(yè)設計和日常生活 中。理論上增加處理器的核數(shù),則可執(zhí)行的指令數(shù)就將有成倍的增長,但是在多核處理器上 運行現(xiàn)存的大量串行程序并沒有獲得預期加速的效果,這是由于串行程序在多核處理器上 并不能自動并行而獲得加速。因此如何利用多核處理器加速已有的串行程序已經(jīng)成為學術 界和工業(yè)界關注的熱點研究問題。
[0003] 事務存儲技術和線程級推測技術成為提高串行程序在多核處理器上執(zhí)行效率的 關鍵技術。事務存儲技術有效地解決了傳統(tǒng)并行編程模型中采用鎖和信號量機制實現(xiàn)線程 間的同步/互斥以及對共享資源的訪問所帶來的死鎖、優(yōu)先級反轉(zhuǎn)等諸多問題。線程級推 測技術打破了線程間依賴對線程并行執(zhí)行的限制,可以進一步挖掘程序的并行性,有效提 高程序的可擴展性。
[0004] 目前已有的支持線程級推測的事務存儲技術或者不支持嵌套事務存儲,或者僅僅 將嵌套事務簡化為單層次的事務。嵌套事務通過允許兩個事務在語義上不沖突時進行嵌 套處理來提高事務存儲的性能,但是嵌套事務的引入也帶來了邏輯上的復雜性和更多的沖 突。沖突不僅是事務存儲技術的瓶頸,也是線程級推測技術的瓶頸,如何有效的檢測沖突、 消解沖突,是提高系統(tǒng)性能的關鍵。因此,針對推測嵌套軟件事務存儲,設計一種沖突管理 方法是非常必需的。

【發(fā)明內(nèi)容】

[0005] 本發(fā)明的目的在于提供一種推測嵌套軟件事務存儲的沖突管理方法,以克服上述 現(xiàn)有技術存在的缺陷。
[0006] 為達到上述目的,本發(fā)明采用如下技術方案:
[0007] -種推測嵌套軟件事務存儲的沖突管理方法,包括以下步驟:
[0008] 步驟1 :創(chuàng)建事務;
[0009] 步驟2 :對所創(chuàng)建事務進行讀操作或?qū)懖僮?,若進行讀操作,則進入步驟3,若進行 寫操作,則進入步驟5 ;
[0010] 步驟3 :在讀操作過程中檢測是否有寫后讀沖突,若有,則進入步驟4,若無,則進 入步驟5 ;
[0011] 步驟4:在讀操作過程中對寫后讀沖突進行消解,并判斷沖突是否消解,若是,則 進入步驟5,若否,則進入步驟9 ;
[0012] 步驟5 :判斷事務是否結(jié)束,若是,則進入步驟6,若否,則回到步驟2 ;
[0013] 步驟6 :對事務進行提交,并檢測是否有寫后寫沖突或讀后寫沖突,若有,則進入 步驟7,若無,則進入步驟8;
[0014] 步驟7 :在提交過程中對寫后寫沖突或讀后寫沖突進行消解,并判斷沖突是否消 解,若是,則進入步驟8 ;若否,則進入步驟9 ;
[0015] 步驟8 :事務提交成功;
[0016] 步驟9:放棄事務。
[0017] 進一步地,步驟3及步驟6中通過沖突檢測器檢測是否有沖突,沖突檢測器包括若 干對象,每個對象包括讀集合、寫集合以及寫版本號,所述讀集合指向?qū)υ搶ο蟠嬖谧x操作 的事務,每個事務節(jié)點包括事務ID、值和讀版本號,在事務執(zhí)行寫操作時,需要更新讀版本 號的值;所述寫集合指向?qū)υ搶ο蟠嬖趯懖僮鞯氖聞?,每個事務寫操作節(jié)點包括事務ID、 值、新值和寫版本號,在事務執(zhí)行寫操作時,需要更新寫版本號,并存入新值。
[0018] 進一步地,步驟4及步驟7中通過沖突消解器對沖突進行消解,沖突消解器為每個 事務創(chuàng)建一個管理器節(jié)點,每個管理器節(jié)點包括優(yōu)先級、開始時間、嘗試次數(shù)、中止次數(shù)、父 事務ID、父事務優(yōu)先級、讀次數(shù)和寫次數(shù)。
[0019] 進一步地,步驟2中讀操作包括以下步驟:
[0020] 步驟2. 1 :在事務tx及事務tx祖先的寫集合中查找對象s,若未找到,則進入步驟 2. 2,若找到,則進入步驟2. 4 ;
[0021] 步驟2. 2 :在事務tx的讀集合中查找對象s,若找至I」,則直接返回對象s的值,若未 找到,則進入步驟2. 3;
[0022] 步驟2. 3 :在事務tx祖先的讀集合中查找對象s,找到后將對象s及其讀版本號并 入事務tx的讀集合,并返回事務執(zhí)行前最近一次成功提交的事務對對象s的寫入值;
[0023] 步驟2. 4 :判斷對對象s最后與操作事務是否就是事務tx,若是,將對象s的值和 其寫版本號并入事務tx的讀集合,并返回事務tx中對對象S存在寫操作的值;若否,則進 入步驟2. 5 ;
[0024] 步驟2. 5 :判斷事務tx和對對象s寫操作的祖先是否為兄弟節(jié)點,若是,則存在寫 后讀沖突,并對沖突進行消解,若否,將對象s的值和其寫版本號并入事務tx的讀集合,并 返回事務tx中對對象s存在寫操作的值。
[0025] 進一步地,步驟6中事務提交包括以下步驟:
[0026] 步驟6. 1 :判斷提交全局順序號serial是否小于事務tx的提交順序號,若是,則 等待,若否,則進入步驟6. 2;
[0027] 步驟6. 2 :檢查事務tx讀集合中所有對象s是否存在讀后寫沖突,若存在,則對沖 突進行消解并進入步驟6. 5,若不存在,則將子集合中事務的相關信息并入父集合中并進入 步驟6. 3 ;
[0028] 步驟6. 3 :檢查事務tx寫集合中所有對象s是否存在寫后寫沖突,若存在,則對沖 突進行消解并進入步驟6. 5,若不存在,將事務tx中對象s的值和版本號拷貝給寫集合中多 有對對象s進行過操作的事務并進入步驟6. 4 ;
[0029] 步驟6.4 :清空事務tx的讀集合和寫集合,并使全局提交順序號加1,然后進入步 驟 6. 5 ;
[0030] 步驟6. 5:結(jié)束。
[0031 ] 進一步地,步驟6. 2中檢查事務tx讀集合中所有對象s是否存在讀后寫沖突的方 法為:遍歷對象S的讀集合查找和全局寫版本號相同的讀版本號所對應的事務tx',若事務 tx'就是事務tx的兄弟事務的后繼,則存在讀后與沖突。
[0032] 進一步地,步驟6. 3中檢查事務tx寫集合中所有對象s是否存在寫后寫沖突的方 法為:遍歷對象s的寫集合查找和全局寫版本號相同的寫版本號所對應的事務tx',若事務 tx'就是事務tx的兄弟事務的后繼,則存在寫后寫沖突。
[0033] 進一步地,沖突消解的方法為:將所有事務的優(yōu)先級初始狀態(tài)都設定為0,當事務 發(fā)生沖突時,比較事務的優(yōu)先級,中止優(yōu)先級小的事務,根事務的優(yōu)先級=讀次數(shù)+寫次數(shù) *2+時間戳,子事務的優(yōu)先級=時間戳+父事務優(yōu)先級+讀次數(shù)+寫次數(shù)*2。
[0034] 進一步地,沖突消解的具體步驟如下:
[0035] 1)沖突消解器初始化:分別記錄事務txjP tx ^的時間戳,并初始化事務tx ;和tx 的中止次數(shù)、讀次數(shù)、寫次數(shù)、優(yōu)先級、父事務ID和父事務優(yōu)先級;
[0036] 2)事務退避:若讀操作打開或?qū)懖僮鞔蜷_失敗時,則讓事務隨機避讓,并將嘗試 打開次數(shù)加1,若嘗試次數(shù)大于設定閾值,則中止事務;
[0037] 3)沖突消解:若事務tx.j是tx ;兄弟的后繼節(jié)點時,則放棄tx .j,并將tx.j合并到tx ; 的父節(jié)點中,然后結(jié)束并銷毀沖突消解器;若事務tX]不是tXl兄弟的后繼節(jié)點時,則初始化 ^ 1和^]并計算其優(yōu)先級,通過比較二者優(yōu)先級,放棄優(yōu)先級小的事務,并增加事務中止次 數(shù),然后結(jié)束并銷毀沖突消解器。
[0038] 進一步地,判斷沖突是否消解的情況有以下兩種:一,發(fā)生沖突的兩個事務中,若 一個事務是另一個事務兄弟的后繼節(jié)點則該事務撤銷回滾,若撤銷回滾成功則沖突消解, 否則沖突未消解;二,若一個事務不是另一個事務兄弟的后繼節(jié)點時則撤銷并回滾兩個沖 突事務中優(yōu)先級低的事務,若撤銷回滾成功則沖突消解,否則未消解。
[0039] 與現(xiàn)有技術相比,本發(fā)明具有以下有益的技術效果:
[0040] 由于采用推測執(zhí)行事務需要事務串行序列化提交,本發(fā)明中的沖突檢測方法一方 面有效的避免了線程間和線程內(nèi)普通事務的WAW和RAW依賴,另一方面嵌套事務發(fā)生沖突 僅當一個事務是另一個事務的兄弟節(jié)點的后繼節(jié)點時。因此,本發(fā)明中的沖突檢測方法很 大程度上減少了事務處理中的沖突檢測損耗。本發(fā)明的沖突消解方法采用基于動態(tài)優(yōu)先級 的隨機退避策略來仲裁事務間發(fā)生的沖突?;趧討B(tài)優(yōu)先級的隨機退避策略將事務的開始 時間、打開次數(shù)、隨機退避時間及事務訪問對象的數(shù)量綜合后形成事務的動態(tài)優(yōu)先級,放棄 沖突事務中優(yōu)先級小的事務。該沖突消解方法有效地緩解了由于仲裁策略
當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
雷山县| 长子县| 克山县| 新邵县| 连江县| 鸡西市| 济阳县| 宁河县| 巴楚县| 蕲春县| 得荣县| 泾川县| 庆元县| 永川市| 嘉祥县| 贺州市| 类乌齐县| 客服| 华池县| 团风县| 曲松县| 宁津县| 彭山县| 扎赉特旗| 温泉县| 乌拉特前旗| 尼木县| 沙雅县| 松原市| 久治县| 正镶白旗| 朝阳区| 凤阳县| 东乡族自治县| 甘谷县| 瓦房店市| 攀枝花市| 六安市| 五指山市| 平谷区| 龙海市|