国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種云數(shù)據(jù)庫中分布式事務(wù)的實(shí)現(xiàn)方法

      文檔序號(hào):6518546閱讀:248來源:國知局
      一種云數(shù)據(jù)庫中分布式事務(wù)的實(shí)現(xiàn)方法
      【專利摘要】本發(fā)明提供一種云數(shù)據(jù)庫中分布式事務(wù)的實(shí)現(xiàn)方法,該方法包括數(shù)據(jù)節(jié)點(diǎn)執(zhí)行下發(fā)的命令并將執(zhí)行的結(jié)果返回給事務(wù)交易控制器,事務(wù)交易控制器調(diào)取事務(wù)交易結(jié)果分析器,通過事務(wù)交易結(jié)果分析器按照預(yù)先設(shè)定的規(guī)則判斷該被選取的數(shù)據(jù)節(jié)點(diǎn)執(zhí)行命令是否成功,若成功,事務(wù)交易控制器給客戶端一個(gè)命令執(zhí)行成功的響應(yīng);若不成功,則選擇新的數(shù)據(jù)節(jié)點(diǎn)重新執(zhí)行命令;使用本發(fā)明方法構(gòu)建的云數(shù)據(jù)庫系統(tǒng)將增強(qiáng)存儲(chǔ)數(shù)據(jù)的完整性,可用性,一致性,以及系統(tǒng)的健壯性。
      【專利說明】一種云數(shù)據(jù)庫中分布式事務(wù)的實(shí)現(xiàn)方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及事務(wù)處理【技術(shù)領(lǐng)域】,尤其涉及一種云數(shù)據(jù)庫中分布式事務(wù)的實(shí)現(xiàn)方法。
      【背景技術(shù)】
      [0002]云數(shù)據(jù)庫是將物理上分散的多個(gè)數(shù)據(jù)單元(即數(shù)據(jù)節(jié)點(diǎn))連接起來組成的一個(gè)邏輯上統(tǒng)一的數(shù)據(jù)庫,而分布式數(shù)據(jù)庫同單個(gè)數(shù)據(jù)節(jié)點(diǎn)相比,有較大差別。其中一個(gè)較大差別為事務(wù)的處理方式。目前現(xiàn)有的分布式事務(wù)處理方式主要有以下兩種:
      [0003]第一,把事務(wù)分別放到每個(gè)數(shù)據(jù)節(jié)點(diǎn)上操作,分別由每個(gè)數(shù)據(jù)節(jié)點(diǎn)控制自己的事務(wù),當(dāng)數(shù)據(jù)節(jié)點(diǎn)執(zhí)行事務(wù)完畢后,客戶端發(fā)送提交命令,各個(gè)數(shù)據(jù)節(jié)點(diǎn)分別提交。然而,當(dāng)事務(wù)操作分別下發(fā)至每個(gè)數(shù)據(jù)節(jié)點(diǎn),由節(jié)點(diǎn)單獨(dú)控制,一旦有某個(gè)數(shù)據(jù)節(jié)點(diǎn)執(zhí)行事務(wù)失敗回滾,而其他數(shù)據(jù)節(jié)點(diǎn)執(zhí)行事務(wù)成功提交,則將造成數(shù)據(jù)丟失或形成臟數(shù)據(jù)。
      [0004]第二,基于兩階段提交方式,當(dāng)應(yīng)用開啟事務(wù)時(shí),分布式數(shù)據(jù)系統(tǒng)中代理端開啟各個(gè)節(jié)點(diǎn)的分布式事務(wù),當(dāng)客戶端提交事務(wù)時(shí),代理端詢問每個(gè)數(shù)據(jù)節(jié)點(diǎn)是否可以提交事務(wù),當(dāng)代理端得到所有數(shù)據(jù)節(jié)點(diǎn)的肯定回復(fù)時(shí),客戶端下發(fā)統(tǒng)一提交命令,各個(gè)數(shù)據(jù)節(jié)點(diǎn)提交事務(wù)?;趦呻A段事務(wù)提交方式,當(dāng)參與事務(wù)中任意一個(gè)數(shù)據(jù)節(jié)點(diǎn)事務(wù)失敗,要求事務(wù)回滾后,全局事務(wù)失敗,其他數(shù)據(jù)節(jié)點(diǎn)事務(wù)回滾,分布式數(shù)據(jù)系統(tǒng)對(duì)外宣布事務(wù)失敗。

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

      [0005]本發(fā)明的目的在于解決上述現(xiàn)有技術(shù)存在的缺陷,提供一種云數(shù)據(jù)庫中高可用的分布式事務(wù)的實(shí)現(xiàn)方法。
      [0006]一種云數(shù)據(jù)庫中分布式事務(wù)的實(shí)現(xiàn)方法,以一個(gè)節(jié)點(diǎn)組為一個(gè)節(jié)點(diǎn)組池,每個(gè)節(jié)點(diǎn)組里包括至少2個(gè)數(shù)據(jù)相同的數(shù)據(jù)節(jié)點(diǎn),包括以下步驟:
      [0007]步驟一、代理端根據(jù)客戶端的請(qǐng)求開啟事務(wù)交易存儲(chǔ)器、事務(wù)交易結(jié)果分析器、事務(wù)交易控制器;所述事務(wù)交易存儲(chǔ)器用于存儲(chǔ)客戶端下發(fā)的命令、所述事務(wù)交易結(jié)果分析器用于分析數(shù)據(jù)節(jié)點(diǎn)執(zhí)行命令的結(jié)果;所述事務(wù)交易控制器用于控制各個(gè)數(shù)據(jù)節(jié)點(diǎn)的分布式事務(wù)、以及用于調(diào)取事務(wù)交易存儲(chǔ)器存儲(chǔ)的命令、調(diào)取事務(wù)交易結(jié)果分析器的分析結(jié)果;
      [0008]步驟二、事務(wù)交易控制器判斷節(jié)點(diǎn)組中是否有未開啟過分布式事務(wù)的數(shù)據(jù)節(jié)點(diǎn);如果有,事務(wù)交易控制器從節(jié)點(diǎn)組中任意選取一個(gè)未開啟過分布式事務(wù)的數(shù)據(jù)節(jié)點(diǎn)并進(jìn)入步驟三;如果無,則對(duì)外宣布失??;
      [0009]步驟三、事務(wù)交易控制器判斷被選取的數(shù)據(jù)節(jié)點(diǎn)將要執(zhí)行的命令是之前出錯(cuò)需要重新執(zhí)行的命令還是一條新的命令將要執(zhí)行,如果是一條新的命令將要執(zhí)行,則進(jìn)入步驟四;如果是之前出錯(cuò)需要重新執(zhí)行的命令,那么事務(wù)交易控制器從事務(wù)交易存儲(chǔ)器中取出客戶端之前下發(fā)給該數(shù)據(jù)節(jié)點(diǎn)所屬的節(jié)點(diǎn)組的所有命令,并按客戶端下發(fā)的順序?qū)⑦@些命令重新下發(fā)給新選取的未開啟過分布式事務(wù)的數(shù)據(jù)節(jié)點(diǎn),然后進(jìn)入步驟五;[0010]步驟四、事務(wù)交易控制器將命令下發(fā)至被選取的數(shù)據(jù)節(jié)點(diǎn)并將該條命令通過事務(wù)交易存儲(chǔ)器進(jìn)行存儲(chǔ);
      [0011]步驟五、數(shù)據(jù)節(jié)點(diǎn)執(zhí)行下發(fā)的命令并將執(zhí)行的結(jié)果返回給事務(wù)交易控制器;
      [0012]步驟六、事務(wù)交易控制器調(diào)取事務(wù)交易結(jié)果分析器,通過事務(wù)交易結(jié)果分析器按照預(yù)先設(shè)定的規(guī)則判斷該被選取的數(shù)據(jù)節(jié)點(diǎn)執(zhí)行命令是否成功,若成功,事務(wù)交易控制器給客戶端一個(gè)命令執(zhí)行成功的響應(yīng),然后進(jìn)入步驟七;若不成功,則返回步驟二 ;
      [0013]步驟七、在上一條命令執(zhí)行成功的數(shù)據(jù)節(jié)點(diǎn)的基礎(chǔ)上,根據(jù)客戶端逐次下發(fā)的命令逐次反復(fù)執(zhí)行步驟二至六,直到所有的命令下發(fā)完畢;
      [0014]步驟八、事務(wù)交易控制器根據(jù)客戶端下發(fā)的提交命令調(diào)取事務(wù)交易結(jié)果分析器,通過交易結(jié)果分析器按照預(yù)先設(shè)定的規(guī)則判斷數(shù)據(jù)節(jié)點(diǎn)執(zhí)行提交命令是否成功,若成功,則進(jìn)入步驟九;若不成功,返回步驟二 ;
      [0015]步驟九、事務(wù)交易控制器給客戶端一個(gè)提交命令成功的響應(yīng)。
      [0016]進(jìn)一步地,如上所述云數(shù)據(jù)庫中分布式事務(wù)的實(shí)現(xiàn)方法,以至少2個(gè)節(jié)點(diǎn)組為一個(gè)節(jié)點(diǎn)組池,每個(gè)節(jié)點(diǎn)組里包括至少2個(gè)數(shù)據(jù)相同的數(shù)據(jù)節(jié)點(diǎn),所述步驟一包括代理端根據(jù)客戶端的請(qǐng)求開啟事務(wù)交易存儲(chǔ)器、事務(wù)交易結(jié)果分析器、事務(wù)交易控制器、事務(wù)交易拆分器;所述事務(wù)交易拆分器用于將客戶端下發(fā)的命令拆分為各個(gè)節(jié)點(diǎn)組對(duì)應(yīng)的分命令;
      [0017]在所述步驟三之后,還包括步驟A ;
      [0018]步驟A、事務(wù)交易拆分器將客戶端下發(fā)的命令拆分為各個(gè)節(jié)點(diǎn)組對(duì)應(yīng)的分命令;
      [0019]所述步驟四包括事務(wù)交易控制器將各個(gè)分命令分別下發(fā)至各個(gè)節(jié)點(diǎn)組中被選取的數(shù)據(jù)節(jié)點(diǎn)、并且將各個(gè)分命令按與節(jié)點(diǎn)組的對(duì)應(yīng)關(guān)系存儲(chǔ)在事務(wù)交易存儲(chǔ)器中。
      [0020]進(jìn)一步地,如上所述云數(shù)據(jù)庫中分布式事務(wù)的實(shí)現(xiàn)方法,所述步驟八包括以下步驟:
      [0021]步驟B、根據(jù)客戶端下發(fā)的提交命令,事務(wù)交易拆分器將所述提交命令拆分為各個(gè)節(jié)點(diǎn)組對(duì)應(yīng)的分提交命令;
      [0022]步驟C、事務(wù)交易拆分器將各個(gè)分提交命令分別下發(fā)至對(duì)應(yīng)的節(jié)點(diǎn)組,同時(shí)將各個(gè)分提交命令置于事務(wù)交易存儲(chǔ)器按與節(jié)點(diǎn)組的對(duì)應(yīng)關(guān)系進(jìn)行存儲(chǔ);
      [0023]步驟D、在之前所有命令執(zhí)行成功的數(shù)據(jù)節(jié)點(diǎn)的基礎(chǔ)上,繼續(xù)執(zhí)行當(dāng)前分提交命令,并將執(zhí)行結(jié)果返回給事務(wù)交易控制器;
      [0024]步驟E、事務(wù)交易控制器調(diào)取事務(wù)交易結(jié)果分析器,通過事務(wù)交易結(jié)果分析器按照預(yù)先設(shè)定的規(guī)則分析數(shù)據(jù)節(jié)點(diǎn)執(zhí)行當(dāng)前分提交命令是否成功,若成功,則進(jìn)入步驟九;若不成功,返回步驟二。
      [0025]進(jìn)一步地,如上所述云數(shù)據(jù)庫中分布式事務(wù)的實(shí)現(xiàn)方法,在步驟二之前,還包括步驟F:
      [0026]步驟F、事務(wù)交易控制器判斷節(jié)點(diǎn)組池中是否有需要的節(jié)點(diǎn)組,若有,則進(jìn)入步驟二,若無,則對(duì)外宣布失敗。
      [0027]進(jìn)一步地,如上所述云數(shù)據(jù)庫中分布式事務(wù)的實(shí)現(xiàn)方法,包括至少一個(gè)事務(wù)交易控制器,每個(gè)事務(wù)交易控制器對(duì)應(yīng)至少一個(gè)數(shù)據(jù)節(jié)點(diǎn),每個(gè)事務(wù)交易控制器對(duì)應(yīng)的數(shù)據(jù)節(jié)點(diǎn)不可交叉對(duì)應(yīng)至其他事務(wù)交易控制器對(duì)應(yīng)的數(shù)據(jù)節(jié)點(diǎn)。
      [0028]進(jìn)一步地,如上所述云數(shù)據(jù)庫中分布式事務(wù)的實(shí)現(xiàn)方法,代理端包括至少2個(gè)事務(wù)交易存儲(chǔ)器,每個(gè)事務(wù)交易存儲(chǔ)器不可重復(fù)存儲(chǔ)客戶端下發(fā)的命令。
      [0029]進(jìn)一步地,如上所述云數(shù)據(jù)庫中分布式事務(wù)的實(shí)現(xiàn)方法,包括至少2個(gè)事務(wù)交易結(jié)果分析器,每個(gè)事務(wù)交易結(jié)果分析器不可分析同一個(gè)數(shù)據(jù)節(jié)點(diǎn)的同一個(gè)執(zhí)行結(jié)果。
      [0030]進(jìn)一步地,如上所述云數(shù)據(jù)庫中分布式事務(wù)的實(shí)現(xiàn)方法,包括至少2個(gè)事務(wù)交易拆分器,每個(gè)事務(wù)交易拆分器不可拆分客戶端下發(fā)的同一條命令。
      [0031]進(jìn)一步地,如上所述云數(shù)據(jù)庫中分布式事務(wù)的實(shí)現(xiàn)方法,所述預(yù)先設(shè)定的規(guī)則包括:數(shù)據(jù)節(jié)點(diǎn)是否在線、數(shù)據(jù)節(jié)點(diǎn)命令是否可到達(dá)、數(shù)據(jù)節(jié)點(diǎn)命令執(zhí)行是否超時(shí)、數(shù)據(jù)節(jié)點(diǎn)是否拒絕執(zhí)行命令、數(shù)據(jù)節(jié)點(diǎn)響應(yīng)與設(shè)定結(jié)果不符。
      [0032]進(jìn)一步地,如上所述云數(shù)據(jù)庫中分布式事務(wù)的實(shí)現(xiàn)方法,當(dāng)數(shù)據(jù)節(jié)點(diǎn)響應(yīng)結(jié)果與設(shè)定不符時(shí),事務(wù)交易控制器從節(jié)點(diǎn)組中刪除該數(shù)據(jù)節(jié)點(diǎn);當(dāng)出現(xiàn)剩余情形時(shí),事務(wù)交易控制器回滾該數(shù)據(jù)節(jié)點(diǎn),并關(guān)閉該數(shù)據(jù)節(jié)點(diǎn)的分布式事務(wù),同時(shí)標(biāo)示出該數(shù)據(jù)節(jié)點(diǎn)不可用。
      [0033]本發(fā)明提供的云數(shù)據(jù)庫中分布式事務(wù)的實(shí)現(xiàn)方法,提高了云數(shù)據(jù)庫中分布式事務(wù)的高可用性,而分布式事務(wù)的高可用性增強(qiáng)了客戶端應(yīng)用系統(tǒng)的高可用性,從而提高了用戶體驗(yàn)。使用本發(fā)明方法構(gòu)建的云數(shù)據(jù)庫系統(tǒng)將增強(qiáng)存儲(chǔ)數(shù)據(jù)的完整性,可用性,一致性,以及系統(tǒng)的健壯性。
      【專利附圖】

      【附圖說明】
      [0034]圖1為本發(fā)明云數(shù)據(jù)庫中分布式事務(wù)的實(shí)現(xiàn)方法流程圖;
      [0035]圖2為本發(fā)明云數(shù)據(jù)庫中分布式事務(wù)實(shí)現(xiàn)系統(tǒng)結(jié)構(gòu)圖。
      【具體實(shí)施方式】
      [0036]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明中的附圖,對(duì)本發(fā)明中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
      [0037]實(shí)施例1:
      [0038]附圖1為本發(fā)明云數(shù)據(jù)庫中分布式事務(wù)的實(shí)現(xiàn)方法流程圖,如圖1所示,本實(shí)施例一個(gè)節(jié)點(diǎn)組池中只有一個(gè)節(jié)點(diǎn)組,一個(gè)節(jié)點(diǎn)組里包括至少2個(gè)數(shù)據(jù)相同的數(shù)據(jù)節(jié)點(diǎn),該方法包括以下步驟:
      [0039]步驟101:代理端根據(jù)客戶端的請(qǐng)求開啟事務(wù)交易存儲(chǔ)器、事務(wù)交易結(jié)果分析器、事務(wù)交易控制器;所述事務(wù)交易存儲(chǔ)器用于存儲(chǔ)客戶端下發(fā)的命令、所述事務(wù)交易結(jié)果分析器用于分析數(shù)據(jù)節(jié)點(diǎn)執(zhí)行命令的結(jié)果;所述事務(wù)交易控制器用于控制各個(gè)數(shù)據(jù)節(jié)點(diǎn)的分布式事務(wù)、以及用于調(diào)取事務(wù)交易存儲(chǔ)器存儲(chǔ)的命令、調(diào)取事務(wù)交易結(jié)果分析器的分析結(jié)果;
      [0040]具體地,代理端包括事務(wù)交易存儲(chǔ)器、事務(wù)交易結(jié)果分析器、事務(wù)交易控制器。首先,客戶端開啟分布式事務(wù)的請(qǐng)求,代理端則根據(jù)客戶端開啟分布式事務(wù)的請(qǐng)求開啟事務(wù)交易存儲(chǔ)器、事務(wù)交易結(jié)果分析器、事務(wù)交易控制器。其中,所述事務(wù)交易存儲(chǔ)器用于存儲(chǔ)客戶端下發(fā)的命令、所述事務(wù)交易結(jié)果分析器用于分析數(shù)據(jù)節(jié)點(diǎn)執(zhí)行命令的結(jié)果;所述事務(wù)交易控制器用于控制各個(gè)數(shù)據(jù)節(jié)點(diǎn)的分布式事務(wù)、以及用于調(diào)取事務(wù)交易存儲(chǔ)器存儲(chǔ)的命令、調(diào)取事務(wù)交易結(jié)果分析器的分析結(jié)果。
      [0041]步驟102:事務(wù)交易控制器判斷節(jié)點(diǎn)組中是否有未開啟過分布式事務(wù)的數(shù)據(jù)節(jié)點(diǎn),如果有未開啟過分布式事務(wù)的數(shù)據(jù)節(jié)點(diǎn),則進(jìn)入步驟103 ;如果沒有,則進(jìn)入步驟1013 ;
      [0042]具體地,在同一次分布式事務(wù)中,一個(gè)節(jié)點(diǎn)組內(nèi)只有未開啟過分布式事務(wù)的數(shù)據(jù)節(jié)點(diǎn)才能執(zhí)行分布式事務(wù),否則,就說明沒有可以執(zhí)行分布式事務(wù)的對(duì)象,那么只能對(duì)外宣布失敗,表明該次分布式事務(wù)失敗。
      [0043]步驟103:事務(wù)交易控制器從節(jié)點(diǎn)組中任意選取一個(gè)未開啟過分布式事務(wù)的數(shù)據(jù)節(jié)點(diǎn);
      [0044]具體地,由于一個(gè)節(jié)點(diǎn)組內(nèi)包括至少2個(gè)節(jié)點(diǎn)數(shù)據(jù),若2個(gè)以上的節(jié)點(diǎn)數(shù)據(jù)均為未開啟過分布式事務(wù)的數(shù)據(jù)節(jié)點(diǎn),則事務(wù)交易控制器從節(jié)點(diǎn)組中任意選取一個(gè)未開啟過分布式事務(wù)的數(shù)據(jù)節(jié)點(diǎn)來執(zhí)行該次分布式事務(wù)的命令。
      [0045]其中,在步驟103中,事務(wù)交易控制器從節(jié)點(diǎn)組中任意選取一個(gè)未開啟過分布式事務(wù)的數(shù)據(jù)節(jié)點(diǎn),是根據(jù)某種算法方法選取的,本發(fā)明提供了以下三種算法。
      [0046]1.隨機(jī)選取方法:該方法是從節(jié)點(diǎn)組中隨機(jī)選取一個(gè)未開啟過分布式事務(wù)的節(jié)點(diǎn),其具體算法為:
      [0047]每次選取,節(jié)點(diǎn)組中所有節(jié)點(diǎn)從I開始編號(hào),獲取當(dāng)前代理服務(wù)器(即代理端)的時(shí)間戳值T,假設(shè)當(dāng)前節(jié)點(diǎn)組中未開啟過分布式事務(wù)的節(jié)點(diǎn)數(shù)為:N,則值V = T% Ν(即求模)。選取節(jié)點(diǎn)組中第V+1個(gè)節(jié)點(diǎn)為本發(fā)明步驟103中所述未開啟過分布式事務(wù)的數(shù)據(jù)節(jié)點(diǎn)。
      [0048]2.資源最優(yōu)選取方法:該方法中,事務(wù)交易控制器獲取每個(gè)節(jié)點(diǎn)的以下屬性值。并根據(jù)以下屬性中一個(gè)或多個(gè)值來選取需要的節(jié)點(diǎn)。
      [0049]代理服務(wù)器到節(jié)點(diǎn)網(wǎng)絡(luò)速度(Node Speed,以下簡稱:NS)(單位KB / S);
      [0050]節(jié)點(diǎn)響應(yīng)速度(Node Response Speed,以下簡稱:NRS)(單位ms);
      [0051]節(jié)點(diǎn)磁盤剩余量(Node Disk,以下簡稱ND:)(單位MB);
      [0052]節(jié)點(diǎn)CPU使用率(Node CPU,以下簡稱:NC)(單位MHz);
      [0053]節(jié)點(diǎn)CPU未使用率:1-NC ;
      [0054]節(jié)點(diǎn)內(nèi)存大小(Node Memory,以下簡稱:NM)(單位MB);
      [0055]節(jié)點(diǎn)使用內(nèi)存大小(Node Use Memory,以下簡稱NUM:)(單位MB);
      [0056]節(jié)點(diǎn)剩余內(nèi)存大小:NM-NUM ;
      [0057]I)根據(jù)以上其中一項(xiàng)或多項(xiàng)進(jìn)行排序,具體排序方法為:
      [0058]分別獲取選取的每個(gè)屬性對(duì)應(yīng)排名前三的節(jié)點(diǎn),并給每個(gè)屬性對(duì)應(yīng)排名第一的節(jié)點(diǎn)賦值0.5,給排名第二的節(jié)點(diǎn)賦值0.3,給排名第三的節(jié)點(diǎn)賦值0.2,排名第三名以后的節(jié)點(diǎn)賦值0.0 ;
      [0059]2)分別計(jì)算每個(gè)節(jié)點(diǎn)被賦值的總和。
      [0060]3)選取賦值總和最大的節(jié)點(diǎn)作為本發(fā)明步驟103中所述未開啟過分布式事務(wù)的數(shù)據(jù)節(jié)點(diǎn)。如果獲得的賦值總和相同,則根據(jù)隨機(jī)獲取方法,隨機(jī)選取獲得賦值總和相同的一個(gè)節(jié)點(diǎn)。
      [0061]以下通過舉例來說明:
      [0062]假設(shè)一個(gè)節(jié)點(diǎn)組里有4個(gè)節(jié)點(diǎn),分別為(節(jié)點(diǎn)1、節(jié)點(diǎn)2、節(jié)點(diǎn)3、節(jié)點(diǎn)4);[0063]假設(shè)本次選取節(jié)點(diǎn)時(shí),只選取了三個(gè)屬性(分別為NS、NRS、NM-NUM);這三個(gè)屬性對(duì)應(yīng)的節(jié)點(diǎn)排名見下表:
      [0064]
      【權(quán)利要求】
      1.一種云數(shù)據(jù)庫中分布式事務(wù)的實(shí)現(xiàn)方法,其特征在于,以一個(gè)節(jié)點(diǎn)組為一個(gè)節(jié)點(diǎn)組池,每個(gè)節(jié)點(diǎn)組里包括至少2個(gè)數(shù)據(jù)相同的數(shù)據(jù)節(jié)點(diǎn),包括以下步驟: 步驟一、代理端根據(jù)客戶端的請(qǐng)求開啟事務(wù)交易存儲(chǔ)器、事務(wù)交易結(jié)果分析器、事務(wù)交易控制器;所述事務(wù)交易存儲(chǔ)器用于存儲(chǔ)客戶端下發(fā)的命令、所述事務(wù)交易結(jié)果分析器用于分析數(shù)據(jù)節(jié)點(diǎn)執(zhí)行命令的結(jié)果;所述事務(wù)交易控制器用于控制各個(gè)數(shù)據(jù)節(jié)點(diǎn)的分布式事務(wù)、以及用于調(diào)取事務(wù)交易存儲(chǔ)器存儲(chǔ)的命令、調(diào)取事務(wù)交易結(jié)果分析器的分析結(jié)果;步驟二、事務(wù)交易控制器判斷節(jié)點(diǎn)組中是否有未開啟過分布式事務(wù)的數(shù)據(jù)節(jié)點(diǎn);如果有,事務(wù)交易控制器從節(jié)點(diǎn)組中任意選取一個(gè)未開啟過分布式事務(wù)的數(shù)據(jù)節(jié)點(diǎn)并進(jìn)入步驟三;如果無,則對(duì)外宣布失??; 步驟三、事務(wù)交易控制器判斷被選取的數(shù)據(jù)節(jié)點(diǎn)將要執(zhí)行的命令是之前出錯(cuò)需要重新執(zhí)行的命令還是一條新的命令將要執(zhí)行,如果是一條新的命令將要執(zhí)行,則進(jìn)入步驟四;如果是之前出錯(cuò)需要重新執(zhí)行的命令,那么事務(wù)交易控制器從事務(wù)交易存儲(chǔ)器中取出客戶端之前下發(fā)給該數(shù)據(jù)節(jié)點(diǎn)所屬的節(jié)點(diǎn)組的所有命令,并按客戶端下發(fā)的順序?qū)⑦@些命令重新下發(fā)給新選取的未開啟過分布式事務(wù)的數(shù)據(jù)節(jié)點(diǎn),然后進(jìn)入步驟五; 步驟四、事務(wù)交易控制器將命令下發(fā)至被選取的數(shù)據(jù)節(jié)點(diǎn)并將該條命令通過事務(wù)交易存儲(chǔ)器進(jìn)行存儲(chǔ); 步驟五、數(shù)據(jù)節(jié)點(diǎn)執(zhí)行下發(fā)的命令并將執(zhí)行的結(jié)果返回給事務(wù)交易控制器; 步驟六、事務(wù)交易控制器調(diào)取事務(wù)交易結(jié)果分析器,通過事務(wù)交易結(jié)果分析器按照預(yù)先設(shè)定的規(guī)則判斷該被選取的數(shù)據(jù)節(jié)點(diǎn)執(zhí)行命令是否成功,若成功,事務(wù)交易控制器給客戶端一個(gè)命令執(zhí)行成功的響應(yīng),然后進(jìn)入步驟七;若不成功,則返回步驟二 ; 步驟七、在上一條命令執(zhí)行成功的數(shù)據(jù)節(jié)點(diǎn)的基礎(chǔ)上,根據(jù)客戶端逐次下發(fā)的命令逐次反復(fù)執(zhí)行步驟二至六,直到所有的命令下發(fā)完畢; 步驟八、事務(wù)交易控制器根據(jù)客戶端下發(fā)的提交命令調(diào)取事務(wù)交易結(jié)果分析器,通過交易結(jié)果分析器按照預(yù)先設(shè)定的規(guī)則判斷數(shù)據(jù)節(jié)點(diǎn)執(zhí)行提交命令是否成功,若成功,則進(jìn)入步驟九;若不成功,返回步驟二 ; 步驟九、事務(wù)交易控制器給客戶端一個(gè)提交命令成功的響應(yīng)。
      2.根據(jù)權(quán)利要求1所述的云數(shù)據(jù)庫中分布式事務(wù)的實(shí)現(xiàn)方法,其特征在于,以至少2個(gè)節(jié)點(diǎn)組為一個(gè)節(jié)點(diǎn)組池,每個(gè)節(jié)點(diǎn)組里包括至少2個(gè)數(shù)據(jù)相同的數(shù)據(jù)節(jié)點(diǎn),所述步驟一包括代理端根據(jù)客戶端的請(qǐng)求開啟事務(wù)交易存儲(chǔ)器、事務(wù)交易結(jié)果分析器、事務(wù)交易控制器、事務(wù)交易拆分器;所述事務(wù)交易拆分器用于將客戶端下發(fā)的命令拆分為各個(gè)節(jié)點(diǎn)組對(duì)應(yīng)的分命令; 在所述步驟三之后,還包括步驟A ; 步驟A、事務(wù)交易拆分器將客戶端下發(fā)的命令拆分為各個(gè)節(jié)點(diǎn)組對(duì)應(yīng)的分命令; 所述步驟四包括事務(wù)交易控制器將各個(gè)分命令分別下發(fā)至各個(gè)節(jié)點(diǎn)組中被選取的數(shù)據(jù)節(jié)點(diǎn)、并且將各個(gè)分命令按與節(jié)點(diǎn)組的對(duì)應(yīng)關(guān)系存儲(chǔ)在事務(wù)交易存儲(chǔ)器中。
      3.根據(jù)權(quán)利要求2所述的云數(shù)據(jù)庫中分布式事務(wù)的實(shí)現(xiàn)方法,其特征在于,所述步驟八包括以下步驟: 步驟B、根據(jù)客戶端下發(fā)的提交命令,事務(wù)交易拆分器將所述提交命令拆分為各個(gè)節(jié)點(diǎn)組對(duì)應(yīng)的分提交命令;步驟C、事務(wù)交易拆分器將各個(gè)分提交命令分別下發(fā)至對(duì)應(yīng)的節(jié)點(diǎn)組,同時(shí)將各個(gè)分提交命令置于事務(wù)交易存儲(chǔ)器按與節(jié)點(diǎn)組的對(duì)應(yīng)關(guān)系進(jìn)行存儲(chǔ); 步驟D、在之前所有命令執(zhí)行成功的數(shù)據(jù)節(jié)點(diǎn)的基礎(chǔ)上,繼續(xù)執(zhí)行當(dāng)前分提交命令,并將執(zhí)行結(jié)果返回給事務(wù)交易控制器; 步驟E、事務(wù)交易控制器調(diào)取事務(wù)交易結(jié)果分析器,通過事務(wù)交易結(jié)果分析器按照預(yù)先設(shè)定的規(guī)則分析數(shù)據(jù)節(jié)點(diǎn)執(zhí)行當(dāng)前分提交命令是否成功,若成功,則進(jìn)入步驟九;若不成功,返回步驟二。
      4.根據(jù)權(quán)利要求1或2或3所述的云數(shù)據(jù)庫中分布式事務(wù)的實(shí)現(xiàn)方法,其特征在于,在步驟二之前,還包括步驟F: 步驟F、事務(wù)交易控制器判斷節(jié)點(diǎn)組池中是否有需要的節(jié)點(diǎn)組,若有,則進(jìn)入步驟二,若無,則對(duì)外宣布失敗。
      5.根據(jù)權(quán)利要求4所述的云數(shù)據(jù)庫中分布式事務(wù)的實(shí)現(xiàn)方法,其特征在于,包括至少2個(gè)事務(wù)交易控制器,每個(gè)事務(wù)交易控制器對(duì)應(yīng)至少一個(gè)數(shù)據(jù)節(jié)點(diǎn),每個(gè)事務(wù)交易控制器對(duì)應(yīng)的數(shù)據(jù)節(jié)點(diǎn)不可交叉對(duì)應(yīng)至其他事務(wù)交易控制器對(duì)應(yīng)的數(shù)據(jù)節(jié)點(diǎn)。
      6.根據(jù)權(quán)利要求4所述的云數(shù)據(jù)庫中分布式事務(wù)的實(shí)現(xiàn)方法,其特征在于,代理端包括至少2個(gè)事務(wù)交易存儲(chǔ)器,每個(gè)事務(wù)交易存儲(chǔ)器不可重復(fù)存儲(chǔ)客戶端下發(fā)的命令。
      7.根據(jù)權(quán)利要求4所述的云數(shù)據(jù)庫中分布式事務(wù)的實(shí)現(xiàn)方法,其特征在于,包括至少2個(gè)事務(wù)交易結(jié)果分析器,每個(gè)事務(wù)交易結(jié)果分析器不可分析同一個(gè)數(shù)據(jù)節(jié)點(diǎn)的同一個(gè)執(zhí)行結(jié)果。
      8.根據(jù)權(quán)利要求4所述的云數(shù)據(jù)庫中分布式事務(wù)的實(shí)現(xiàn)方法,其特征在于,包括至少2個(gè)事務(wù)交易拆分器,每個(gè)事務(wù)交易拆分器不可拆分客戶端下發(fā)的同一條命令。
      9.根據(jù)權(quán)利要求4所述的云數(shù)據(jù)庫中分布式事務(wù)的實(shí)現(xiàn)方法,其特征在于,所述預(yù)先設(shè)定的規(guī)則包括:數(shù)據(jù)節(jié)點(diǎn)是否在線、數(shù)據(jù)節(jié)點(diǎn)命令是否可到達(dá)、數(shù)據(jù)節(jié)點(diǎn)命令執(zhí)行是否超時(shí)、數(shù)據(jù)節(jié)點(diǎn)是否拒絕執(zhí)行命令、數(shù)據(jù)節(jié)點(diǎn)響應(yīng)與設(shè)定結(jié)果不符。
      10.根據(jù)權(quán)利要求9所述的云數(shù)據(jù)庫中分布式事務(wù)的實(shí)現(xiàn)方法,其特征在于,當(dāng)數(shù)據(jù)節(jié)點(diǎn)響應(yīng)結(jié)果與設(shè)定不符時(shí),事務(wù)交易控制器從節(jié)點(diǎn)組中刪除該數(shù)據(jù)節(jié)點(diǎn);當(dāng)出現(xiàn)剩余情形時(shí),事務(wù)交易控制器回滾該數(shù)據(jù)節(jié)點(diǎn),并關(guān)閉該數(shù)據(jù)節(jié)點(diǎn)的分布式事務(wù),同時(shí)標(biāo)示出該數(shù)據(jù)節(jié)點(diǎn)不可用。
      【文檔編號(hào)】G06F17/30GK103577588SQ201310556809
      【公開日】2014年2月12日 申請(qǐng)日期:2013年11月12日 優(yōu)先權(quán)日:2013年11月12日
      【發(fā)明者】馬軍, 石輝, 裴文斌, 曹玉清, 王俊民 申請(qǐng)人:西安雷迪維護(hù)系統(tǒng)設(shè)備有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1