一種并發(fā)事務(wù)的處理方法和裝置制造方法
【專利摘要】本申請(qǐng)?zhí)峁┝艘环N并發(fā)事務(wù)的處理方法和裝置。所述方法包括:接收客戶端提交的多個(gè)事務(wù);將每個(gè)事務(wù),拆分為多個(gè)針對(duì)單個(gè)賬戶的數(shù)據(jù)處理子操作,并構(gòu)成一個(gè)數(shù)據(jù)處理組;并發(fā)執(zhí)行各個(gè)數(shù)據(jù)處理組,其中,同一組的數(shù)據(jù)處理子操作逐個(gè)執(zhí)行,不同組的數(shù)據(jù)處理子操作同時(shí)執(zhí)行。本申請(qǐng)可以提高并發(fā)事務(wù)的處理效率。
【專利說明】一種并發(fā)事務(wù)的處理方法和裝置
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及數(shù)據(jù)處理領(lǐng)域,特別是涉及一種并發(fā)事務(wù)的方法和裝置。
【背景技術(shù)】
[0002]網(wǎng)絡(luò)熱點(diǎn)數(shù)據(jù)是指在在當(dāng)前業(yè)務(wù)系統(tǒng)中,一定的時(shí)間內(nèi)訪問頻率較高的數(shù)據(jù)。例如,在支付賬戶中,所有賬戶會(huì)員的賬戶余額值中,大商戶中的賬戶余額由于經(jīng)常被訪問成為熱點(diǎn)數(shù)據(jù);積分賬戶中的當(dāng)前剩余額度數(shù)據(jù)也是熱點(diǎn)數(shù)據(jù)。
[0003]業(yè)務(wù)系統(tǒng)中,常常出現(xiàn)多個(gè)事務(wù)需要同時(shí)操作數(shù)據(jù)庫(kù)內(nèi)同一條熱點(diǎn)數(shù)據(jù)的情況,例如:對(duì)同一個(gè)賣家同時(shí)有多筆帳務(wù)的寫操作。當(dāng)同一條熱點(diǎn)數(shù)據(jù)被多個(gè)并發(fā)事務(wù)請(qǐng)求操作時(shí),當(dāng)某些操作需要撤銷或是回滾時(shí),只能通過修改數(shù)據(jù)的方式進(jìn)行,當(dāng)多個(gè)操作對(duì)同一個(gè)數(shù)據(jù)進(jìn)行修改時(shí),容易造成數(shù)據(jù)在事務(wù)之間被覆蓋,即臟寫。因此,必須在多個(gè)事務(wù)之間存在一種協(xié)調(diào)機(jī)制,防止事務(wù)之間的沖突,保證數(shù)據(jù)一致性及完整性。
[0004]現(xiàn)有技術(shù)中,針對(duì)熱點(diǎn)數(shù)據(jù)的高并發(fā)事務(wù),可以通過讀寫鎖的方式來解決。
[0005]讀寫鎖機(jī)制是通過讀寫鎖控制多個(gè)事務(wù)按順序執(zhí)行,多個(gè)并發(fā)事務(wù)在數(shù)據(jù)庫(kù)內(nèi)搶鎖,獲得讀寫鎖的事務(wù)將賬戶鎖定,余額數(shù)據(jù)只受當(dāng)前正在處理的事務(wù)的影響,該事務(wù)處理完成后,釋放讀寫鎖,搶到鎖的事務(wù)再對(duì)該賬戶進(jìn)行處理,因此,可以嚴(yán)格保證數(shù)據(jù)的一致性和完整性。
[0006]以上現(xiàn)有技術(shù)中存在的問題是:讀寫鎖方式中,由于一個(gè)事務(wù),從讀取數(shù)據(jù),業(yè)務(wù)演算,更新數(shù)據(jù),整個(gè)環(huán)節(jié)可能耗時(shí)很長(zhǎng),在復(fù)雜的業(yè)務(wù)場(chǎng)景,單個(gè)事務(wù)處理甚至達(dá)到秒級(jí)的時(shí)間量。順序執(zhí)行使得業(yè)務(wù)處理吞吐量受到嚴(yán)重制約,在大并發(fā)量情況下,處理事務(wù)的性能存在嚴(yán)重瓶頸,無法滿足日常處理需求。
[0007]因此,目前需要本領(lǐng)域技術(shù)人員解決的一個(gè)技術(shù)問題就是,提供一種并發(fā)事務(wù)的處理機(jī)制,以提高并發(fā)事務(wù)的處理效率。
【發(fā)明內(nèi)容】
[0008]本申請(qǐng)所要解決的技術(shù)問題是提供一種并發(fā)事務(wù)的處理方法,以提高并發(fā)事務(wù)的
處理效率。
[0009]本申請(qǐng)還提供了一種并發(fā)事務(wù)的處理裝置,用以保證上述方法在實(shí)際中的應(yīng)用及實(shí)現(xiàn)。
[0010]為了解決上述問題,本申請(qǐng)公開了一種并發(fā)事務(wù)的處理方法,包括:
[0011]接收客戶端提交的多個(gè)事務(wù);
[0012]將每個(gè)事務(wù),拆分為多個(gè)針對(duì)單個(gè)賬戶的數(shù)據(jù)處理子操作,并構(gòu)成一個(gè)數(shù)據(jù)處理組;
[0013]并發(fā)執(zhí)行各個(gè)數(shù)據(jù)處理組,其中,同一組的數(shù)據(jù)處理子操作逐個(gè)執(zhí)行,不同組的數(shù)據(jù)處理子操作同時(shí)執(zhí)行。
[0014]優(yōu)選的,針對(duì)各個(gè)事務(wù),所述將每個(gè)事務(wù),拆分為多個(gè)針對(duì)單個(gè)賬戶的數(shù)據(jù)處理子操作的步驟并發(fā)執(zhí)行。
[0015]優(yōu)選的,各個(gè)數(shù)據(jù)處理組的回滾操作與不同數(shù)據(jù)處理組的數(shù)據(jù)處理子操作或回滾操作并發(fā)執(zhí)行。
[0016]優(yōu)選的,所述方法還包括:
[0017]在各個(gè)數(shù)據(jù)處理組執(zhí)行完畢后,判斷返回的執(zhí)行結(jié)果是否符合預(yù)設(shè)條件;
[0018]若不符合,則執(zhí)行所述數(shù)據(jù)處理組中各個(gè)數(shù)據(jù)處理子操作的回滾操作。
[0019]優(yōu)選的,所述判斷返回的執(zhí)行結(jié)果是否符合預(yù)設(shè)條件的步驟為:
[0020]判斷返回的執(zhí)行結(jié)果是否為負(fù)值或者小于預(yù)設(shè)值;
[0021]若是,則符合預(yù)設(shè)條件。
[0022]優(yōu)選的,所述方法還包括:
[0023]判斷所述回滾操作是否執(zhí)行成功;
[0024]若否,則依據(jù)所述執(zhí)行結(jié)果生成報(bào)警提示信息。
[0025]優(yōu)選的,所述數(shù)據(jù)處理子操作為對(duì)數(shù)據(jù)進(jìn)行增加數(shù)值或減少數(shù)值的操作。
[0026]優(yōu)選的,所述方法還包括:
[0027]將所述數(shù)據(jù)處理組添加到預(yù)置的數(shù)據(jù)處理隊(duì)列中。
[0028]本申請(qǐng)還提供了一種并發(fā)事務(wù)的處理裝置,包括:
[0029]事務(wù)接收模塊,用于接收客戶端提交的多個(gè)事務(wù);
[0030]拆分模塊,用于將每個(gè)事務(wù),拆分為多個(gè)針對(duì)單個(gè)賬戶的數(shù)據(jù)處理子操作,并構(gòu)成一個(gè)數(shù)據(jù)處理組;
[0031]并發(fā)模塊,用于并發(fā)執(zhí)行各個(gè)數(shù)據(jù)處理組,其中,同一組的數(shù)據(jù)處理子操作逐個(gè)執(zhí)行,不同組的數(shù)據(jù)處理子操作同時(shí)執(zhí)行。
[0032]優(yōu)選的,所述拆分模塊包括針對(duì)各個(gè)事務(wù)的拆分子模塊,各個(gè)拆分子模塊并發(fā)執(zhí)行。
[0033]優(yōu)選的,所述裝置還包括:
[0034]執(zhí)行結(jié)果判斷模塊,用于在各個(gè)數(shù)據(jù)處理組執(zhí)行完畢后,判斷返回的執(zhí)行結(jié)果是否符合預(yù)設(shè)條件,若否,則執(zhí)行回滾模塊;
[0035]回滾模塊,用于執(zhí)行所述數(shù)據(jù)處理組中各個(gè)數(shù)據(jù)處理子操作的回滾操作。
[0036]優(yōu)選的,所述裝置還包括:
[0037]回滾操作判斷模塊,用于判斷所述回滾操作是否執(zhí)行成功,若否,則依據(jù)所述執(zhí)行結(jié)果生成報(bào)警提示信息。
[0038]與現(xiàn)有技術(shù)相比,本申請(qǐng)具有以下優(yōu)點(diǎn):
[0039]本申請(qǐng)針對(duì)提交的多個(gè)并發(fā)事務(wù),逐個(gè)拆分為針對(duì)單個(gè)賬戶的子操作,然后并發(fā)執(zhí)行各事務(wù)對(duì)應(yīng)的各組子操作,其中,同一組的數(shù)據(jù)處理子操作逐個(gè)執(zhí)行,不同組的數(shù)據(jù)處理子操作同時(shí)執(zhí)行。由于子操作執(zhí)行的結(jié)果直接生效,因此,不同組的子操作同時(shí)執(zhí)行時(shí),不會(huì)出現(xiàn)臟讀臟寫的問題,保證了數(shù)據(jù)的完整性和一致性;并且,由于不同組的子操作同時(shí)執(zhí)行,相比于讀寫鎖機(jī)制,大大提高了并發(fā)事務(wù)的處理效率。
[0040]由于本申請(qǐng)?jiān)诿拷M子操作處理完成后,對(duì)于執(zhí)行結(jié)果不符合業(yè)務(wù)邏輯的情況還可以執(zhí)行各組子操作的回滾操作,保證了數(shù)據(jù)處理結(jié)果的準(zhǔn)確性,并且,同時(shí)執(zhí)行一組子操作的回滾操作保證了這組子操作中所有業(yè)務(wù)同時(shí)撤銷,保證了事務(wù)處理的完整性和賬戶余額的一致性,避免了資金風(fēng)險(xiǎn)以及凍結(jié)資金所增加事務(wù)處理系統(tǒng)復(fù)雜度。
[0041]本申請(qǐng)中,針對(duì)不同事務(wù)的拆分操作可以同時(shí)執(zhí)行,一個(gè)子操作組的執(zhí)行和另一個(gè)子操作組的回滾之間也可以同時(shí)執(zhí)行,從而可以進(jìn)一步提高并發(fā)事務(wù)的處理效率。
[0042]當(dāng)然,實(shí)施本申請(qǐng)的任一產(chǎn)品不一定需要同時(shí)達(dá)到以上所述的所有優(yōu)點(diǎn)。
【專利附圖】
【附圖說明】
[0043]圖1是本申請(qǐng)的一種并發(fā)事務(wù)的處理方法實(shí)施例1的流程圖;
[0044]圖2是本申請(qǐng)的一種并發(fā)事務(wù)的處理方法實(shí)施例2的流程圖;
[0045]圖3是本申請(qǐng)的一種并發(fā)事務(wù)的處理裝置實(shí)施例1的結(jié)構(gòu)框圖;
[0046]圖4是本申請(qǐng)的一種并發(fā)事務(wù)的處理裝置實(shí)施例2的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0047]為使本申請(qǐng)的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和【具體實(shí)施方式】對(duì)本申請(qǐng)作進(jìn)一步詳細(xì)的說明。
[0048]業(yè)務(wù)系統(tǒng)中,常常出現(xiàn)多個(gè)事務(wù)同時(shí)訪問同一條熱點(diǎn)數(shù)據(jù)的情況,多個(gè)事務(wù)同時(shí)對(duì)一個(gè)數(shù)據(jù)進(jìn)行修改時(shí),會(huì)出現(xiàn)臟寫的問題。以買家A,買家B同時(shí)向賣家C購(gòu)買30元商品為例,買家A創(chuàng)建事務(wù)Tl,買家B創(chuàng)建事務(wù)T2。
[0049]Tl事務(wù)包括以下幾個(gè)步驟:
[0050]1、先取得買家A的賬戶余額為100元;
[0051]2、取得賣家C的賬戶余額為200元;
[0052]3、買家A的賬戶更新為70元(扣款操作);
[0053]4、賣家賬戶C更新為230元(充值操作);
[0054]5、其它業(yè)務(wù)處理;
[0055]6、提交事務(wù)或回滾。
[0056]T2事務(wù)包括以下幾個(gè)步驟:
[0057]1、先取得買家B的賬戶余額為100元
[0058]2、取得賣家C的賬戶余額為200元(所以)
[0059]3、買家B的賬戶更新為70元(扣款操作)
[0060]4、賣家賬戶C更新為230元(充值操作)
[0061]5、其它業(yè)務(wù)處理。
[0062]6、提交事務(wù)或回滾。
[0063]由于事務(wù)提交有先后順序,數(shù)據(jù)庫(kù)對(duì)事務(wù)的處理結(jié)果是在事務(wù)沒提交前不會(huì)更改原來的賬戶余額,也就是說數(shù)據(jù)庫(kù)只有當(dāng)Tl中的1、2、3、4步驟全部完成后,才會(huì)更改上述帳戶余額。因此,在T2事務(wù)中的第2步讀取時(shí),可能Tl的步驟并沒有全部完成,帳戶余額并沒有更新,讀到還是Tl事務(wù)進(jìn)行前賣家C的值,已經(jīng)產(chǎn)生臟讀現(xiàn)象;同樣,在事務(wù)T2中的第4步產(chǎn)生了臟寫現(xiàn)象。最后的結(jié)果體現(xiàn)為,賣家C買了兩件商品但是只收到一筆錢。
[0064]現(xiàn)有技術(shù)中多通過讀寫鎖機(jī)制解決上述問題,此處以賬戶系統(tǒng)余額的并發(fā)操作為例,某大商戶賬戶的余額,可能由于大量交易,產(chǎn)生大量對(duì)余額的并發(fā)事務(wù)。
[0065]讀寫鎖機(jī)制的步驟如下:[0066]a、針對(duì)每一筆交易發(fā)起一個(gè)事務(wù),相繼產(chǎn)生多個(gè)事務(wù);
[0067]b、多個(gè)事務(wù)在數(shù)據(jù)庫(kù)內(nèi)通過搶鎖,使得某一個(gè)事務(wù)T0,成功搶到本商戶帳戶余額記錄的讀寫鎖LO ;
[0068]C、其他事務(wù)試圖對(duì)余額記錄進(jìn)行加鎖,發(fā)現(xiàn)記錄已被鎖定,進(jìn)入等待裝態(tài),等待當(dāng)前事務(wù)T0,直到TO釋放讀寫鎖L0,再回到步驟b ;
[0069]d、當(dāng)前事務(wù)T0,讀取當(dāng)前賬戶余額,并在此基礎(chǔ)上根據(jù)交易做余額演算;
[0070]e、當(dāng)前事務(wù)TC,將演算結(jié)果寫入數(shù)據(jù)庫(kù),更新本商戶帳務(wù)余額記錄;
[0071]f、當(dāng)前事務(wù)T0,完成本次操作,釋放當(dāng)前記錄讀寫鎖L0,回到步驟b。
[0072]讀寫鎖是一個(gè)全局的排它鎖,它有如下兩方面特性:1、加鎖后其它事務(wù)中不能在讀到記錄值;2、加鎖后其它事務(wù)中不能對(duì)該記錄的值做變更。典型的sql語義是selectfor update。讀寫鎖機(jī)制將寫操作串行化,逐一進(jìn)行處理,從而保證數(shù)據(jù)的一致性和完整性;但由于是順序執(zhí)行事務(wù),在大并發(fā)量情況下,處理效率很低,業(yè)務(wù)處理系統(tǒng)性能存在嚴(yán)重瓶頸。
[0073]現(xiàn)有技術(shù)中,還可以通過緩存記賬機(jī)制解決并發(fā)事務(wù)臟讀臟寫的問題,具體步驟如下:
[0074]a、除了本商戶帳戶余額記錄之外,另外建一張緩沖記賬記錄表;
[0075]b、多個(gè)并發(fā)交易事務(wù),將本交易需要打款或扣款的金額數(shù)量插入到緩沖記賬記錄表中;
[0076]C、定期將緩沖記賬中的記錄做合并處理,并將匯總結(jié)果金額回寫入本商戶帳戶余額記錄中。
[0077]緩存記賬機(jī)制對(duì)于多個(gè)事務(wù),采取批處理方式,可以提高事務(wù)處理的效率,解決了按順序處理的性能瓶頸。依據(jù)緩沖記賬的方式,在記錄進(jìn)行合并后,多個(gè)事務(wù)已經(jīng)執(zhí)行完成,若發(fā)現(xiàn)賬戶余額不符合邏輯(例如,執(zhí)行多個(gè)扣除金額的事務(wù)后,賬戶余額為負(fù))則無法進(jìn)行回滾,無法保證數(shù)據(jù)處理結(jié)果的準(zhǔn)確性;同時(shí),為了防止超額扣款引發(fā)的資金損失,需要在業(yè)務(wù)層面做額外保證,一般是通過向用戶繳納一定保證金的方式來解決的。
[0078]另一種是需要撤銷的事務(wù)是非法操作,一個(gè)事務(wù)執(zhí)行完畢后發(fā)現(xiàn)是非法操作想要取消交易時(shí),由于緩沖記賬的記錄沒有完全合并而不能立即取消,只能先將資金凍結(jié)住,然后走沖賬模式進(jìn)行處理。
[0079]由此,緩沖記賬的方式嚴(yán)重影響了用戶的使用,提高了業(yè)務(wù)系統(tǒng)的運(yùn)營(yíng)成本和風(fēng)險(xiǎn),增加了業(yè)務(wù)系統(tǒng)的整體復(fù)雜度。
[0080]參考圖1,示出了本申請(qǐng)的一種并發(fā)事務(wù)的處理方法實(shí)施例1的流程圖,具體可以包括以下步驟:
[0081]步驟101、接收客戶端提交的多個(gè)事務(wù)。
[0082]業(yè)務(wù)系統(tǒng)的客戶端在接收到事務(wù)請(qǐng)求時(shí),會(huì)依據(jù)數(shù)據(jù)處理請(qǐng)求,對(duì)相應(yīng)的數(shù)據(jù)進(jìn)行處理,例如,在交易系統(tǒng)客戶端買家A向賣家B購(gòu)買30元的商品,這時(shí),相應(yīng)的事務(wù)為,對(duì)賬戶A的賬戶余額減少30元,對(duì)賬戶B的賬戶余額增加30元。
[0083]在數(shù)據(jù)庫(kù)系統(tǒng)中,事務(wù)是一個(gè)操作序列,例如,銀行轉(zhuǎn)帳工作從一個(gè)帳號(hào)扣款并使另一個(gè)帳號(hào)增款,包含了扣款和增款這兩個(gè)操作。
[0084]步驟102、將每個(gè)事務(wù),拆分為多個(gè)針對(duì)單個(gè)賬戶的數(shù)據(jù)處理子操作,并構(gòu)成一個(gè)數(shù)據(jù)處理組。
[0085]本申請(qǐng)中,事務(wù)包括對(duì)不同的操作對(duì)象的處理,按照針對(duì)的賬戶的不同,可以拆分為多個(gè)針對(duì)單個(gè)賬戶的數(shù)據(jù)處理子操作。
[0086]例如,買家A和買家B同時(shí)向賣家C購(gòu)買30元的商品,生成事務(wù)Tl和T2,Tl包括對(duì)買家A的賬戶減少30元和對(duì)賣家C的賬戶增加30元的操作,T2包括對(duì)買家B的賬戶減少30元和對(duì)賣家C的賬戶增加30元的操作。按照操作對(duì)象的不同,事務(wù)Tl可以拆分為對(duì)買家A的賬戶減少30元(Tll)和對(duì)賣家C的賬戶增加30元(T12)的這兩個(gè)子操作,并組成一個(gè)數(shù)據(jù)處理組,事務(wù)T2可以拆分為對(duì)買家B的賬戶減少30元(T21)和對(duì)賣家C的賬戶增加30元(T22)的這兩個(gè)子操作,并組成一個(gè)數(shù)據(jù)處理組。
[0087]優(yōu)選的,針對(duì)各個(gè)事務(wù),所述將每個(gè)事務(wù),可以拆分為多個(gè)針對(duì)單個(gè)賬戶的數(shù)據(jù)處理子操作的步驟并發(fā)執(zhí)行,從而可以進(jìn)一步加快并發(fā)事務(wù)的處理效率。
[0088]步驟103、并發(fā)執(zhí)行各個(gè)數(shù)據(jù)處理組,其中,同一組的數(shù)據(jù)處理子操作逐個(gè)執(zhí)行,不同組的數(shù)據(jù)處理子操作同時(shí)執(zhí)行。
[0089]將各個(gè)事務(wù)拆分完后,并發(fā)執(zhí)行對(duì)應(yīng)的數(shù)據(jù)處理組,其中,同一組的數(shù)據(jù)處理子操作逐個(gè)執(zhí)行,不同組的數(shù)據(jù)處理子操作同時(shí)執(zhí)行。如上例,事務(wù)Tl中Tll和T12逐個(gè)執(zhí)行,事務(wù)T2中T21和T22也是逐個(gè)執(zhí)行,例如,Tl中先執(zhí)行T12,T2中先執(zhí)行T22,T12和T22可以同時(shí)執(zhí)行,即同時(shí)執(zhí)行對(duì)賬戶C增加30元的兩個(gè)操作,然后在同時(shí)執(zhí)行Tll和T21兩個(gè)操作。
[0090]在單處理器系統(tǒng)(Uni Processor)中,能夠在單條指令(一條指令同時(shí)完成讀和寫的操作)中完成的操作都可以認(rèn)為是原子操作,原子級(jí)操作是不可分割的,在執(zhí)行完畢前不會(huì)被任何其它任務(wù)或事件中斷。本申請(qǐng)中,針對(duì)單個(gè)賬戶的數(shù)據(jù)處理子操作就是原子級(jí)操作。
[0091]現(xiàn)有技術(shù)中,由于一個(gè)事務(wù)包括多個(gè)針對(duì)多個(gè)賬戶的多個(gè)操作,事務(wù)的處理結(jié)果需等待多個(gè)操作逐個(gè)執(zhí)行完成后,才會(huì)提交事務(wù)處理結(jié)果,更新原數(shù)據(jù)。以事務(wù)Tl為例,先執(zhí)行T12,再執(zhí)行T11,T12的執(zhí)行結(jié)果要等待Tll執(zhí)行完畢后一同提交,相當(dāng)于Τ12提交結(jié)果的操作被Tll中斷。在事務(wù)Tl提交處理結(jié)果之前,其他事務(wù)取到的數(shù)據(jù)是事務(wù)Tl處理前的原數(shù)據(jù),因此會(huì)出現(xiàn)臟讀和臟寫的問題。
[0092]本申請(qǐng)對(duì)事務(wù)拆分后得到的是針對(duì)一個(gè)賬戶執(zhí)行的原子級(jí)操作,原子級(jí)的操作執(zhí)行完畢不需要等待其他操作處理,因此不需要提交處理結(jié)果的步驟,執(zhí)行完畢后處理結(jié)果直接生效,以事務(wù)Tl為例,Τ12執(zhí)行完畢后即時(shí)提交,然后執(zhí)行Τ11,執(zhí)行完畢也是即時(shí)提交;同時(shí)由于在數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)值型數(shù)據(jù)具有天然的原子性(即數(shù)值類型數(shù)據(jù)做變更時(shí)不存在中間狀態(tài)),因此,不同組的數(shù)據(jù)處理子操作同時(shí)執(zhí)行時(shí),不會(huì)出現(xiàn)臟讀和臟寫的問題。
[0093]另外,針對(duì)數(shù)值型數(shù)據(jù)只有更新(update)—種操作,數(shù)值型數(shù)據(jù)的update動(dòng)作可以描述成增加數(shù)值或減少數(shù)值這兩種動(dòng)作,這樣事務(wù)對(duì)多數(shù)據(jù)的更新,實(shí)際上就被分解成了若干原子級(jí)的加減動(dòng)作。
[0094]本申請(qǐng)的方法在多CPU的服務(wù)器上執(zhí)行,與傳統(tǒng)單CPU不同的是,在現(xiàn)有的多CPU服務(wù)器中,對(duì)同一賬戶數(shù)值中加減操作是多個(gè)加法運(yùn)算器并發(fā)的執(zhí)行的,如上例,TI中先執(zhí)行T12,T2中先執(zhí)行T22,T12和T22可以同時(shí)執(zhí)行,Tll和T21也可以同時(shí)執(zhí)行。[0095]加法運(yùn)算器并發(fā)執(zhí)行對(duì)同一數(shù)據(jù)的多個(gè)動(dòng)作時(shí),首先記錄下各個(gè)動(dòng)作的變更數(shù)據(jù),并即時(shí)返回依據(jù)原數(shù)據(jù)計(jì)算出的執(zhí)行結(jié)果,然后依據(jù)原數(shù)據(jù)和所有的變更數(shù)據(jù)計(jì)算出一個(gè)最終結(jié)果,從而可以保證數(shù)據(jù)數(shù)據(jù)處理結(jié)果的準(zhǔn)確性。例如,賣家C賬戶的余額為200,T12和T22均是對(duì)賣家C賬戶增加30的操作,并發(fā)執(zhí)行T12和T22時(shí),先記錄下兩個(gè)加30的變更數(shù)據(jù);然后即時(shí)返回T12對(duì)200加30的執(zhí)行結(jié)果為230,T22對(duì)200加30的執(zhí)行結(jié)果為230 ;兩個(gè)返回的執(zhí)行結(jié)果與最終結(jié)果無關(guān),最后依據(jù)兩個(gè)加30變更數(shù)據(jù)和原數(shù)據(jù)200,計(jì)算出最終結(jié)果為260。
[0096]同時(shí),由于使用多CPU并發(fā)執(zhí)行多個(gè)原子級(jí)操作和執(zhí)行一個(gè)原子級(jí)操作的時(shí)間是一樣的,因此本申請(qǐng)可以大大提高并發(fā)事務(wù)的處理效率,例如,原始值是0,一個(gè)對(duì)原始值加I的操作被執(zhí)行的時(shí)間是I個(gè)單位,那么50個(gè)加I操作同時(shí)被執(zhí)行,執(zhí)行的時(shí)間也是I個(gè)單位。
[0097]以買家A (賬戶余額100),買家B (賬戶余額100)同時(shí)向賣家C (賬戶余額200)購(gòu)買30元商品為例,買家A創(chuàng)建事務(wù)Tl,買家B創(chuàng)建事務(wù)T2,按照讀寫鎖的機(jī)制,各事務(wù)執(zhí)行順序舉例如下:
[0098]事務(wù)Tl:
[0099]I鎖掉買家A的賬戶取得余額為100元
[0100]2鎖掉買家C的賬戶取得余額為200元
[0101]3買家A的賬戶更新為70元(充值操作)
[0102]4賣家賬戶更新為230元(扣款操作)
[0103]5其它業(yè)務(wù)處理
[0104]6提交事務(wù)或回滾
[0105]7釋放買家A事務(wù)鎖
[0106]8釋放賣家C事務(wù)鎖
[0107]事務(wù)T2:
[0108]I鎖掉買家B的賬戶取得余額為100元
[0109]2鎖掉買家C的賬戶取得余額為230元
[0110]3買家A的賬戶更新為70元(充值操作)
[0111]4賣家賬戶更新為260元(扣款操作)
[0112]5其它業(yè)務(wù)處理(例如在購(gòu)買商品時(shí)同時(shí)贈(zèng)與積分或紅包,在購(gòu)買彩票付錢同時(shí)的投注行為)
[0113]6提交事務(wù)或回滾
[0114]7釋放買家B事務(wù)鎖
[0115]8釋放賣家C事務(wù)鎖
[0116]按照現(xiàn)有技術(shù)中讀寫鎖的方式,將每個(gè)動(dòng)作執(zhí)行的時(shí)間記為1,2個(gè)事務(wù)執(zhí)行完畢所耗費(fèi)的時(shí)間為16個(gè)單位,隨著并發(fā)事務(wù)量的增加,時(shí)間復(fù)雜度是O (n),n為事務(wù)的個(gè)數(shù)。
[0117]按照本申請(qǐng)的方法執(zhí)行事務(wù)Tl和T2,舉例如下:
[0118]事務(wù)Tl:
[0119]I買家A的賬戶執(zhí)行減30元,即時(shí)返回執(zhí)行結(jié)果為70元(扣款操作)
[0120]2賣家C賬戶增加30元即時(shí)返回執(zhí)行結(jié)果為230元(充值操作)[0121]3其它業(yè)務(wù)處理
[0122]4是否執(zhí)行反函數(shù)回滾
[0123]事務(wù)T2:
[0124]I買家B的賬戶執(zhí)行減30元,即時(shí)返回執(zhí)行結(jié)果為70元(扣款操作)
[0125]2賣家C賬戶增加30元即時(shí)返回執(zhí)行結(jié)果為230元(充值操作)
[0126]3其它業(yè)務(wù)處理
[0127]4是否執(zhí)行反函數(shù)回滾
[0128]加法計(jì)數(shù)器依據(jù)兩個(gè)加30變更數(shù)據(jù)和原數(shù)據(jù)200,計(jì)算出賣家C賬戶的余額為260。
[0129]按照本申請(qǐng)的方法,2個(gè)事務(wù)執(zhí)行完畢所耗費(fèi)的時(shí)間為8個(gè)單位,隨著并發(fā)事務(wù)量的增加,時(shí)間復(fù)雜度是0,即處理時(shí)間不隨著事務(wù)個(gè)數(shù)的增加而增加。
[0130]參考圖2,示出了本申請(qǐng)的一種并發(fā)事務(wù)的處理方法實(shí)施例2的流程圖,具體可以包括以下步驟:
[0131]步驟201、接收客戶端提交的多個(gè)事務(wù);
[0132]步驟202、將每個(gè)事務(wù),拆分為多個(gè)針對(duì)單個(gè)賬戶的數(shù)據(jù)處理子操作,并構(gòu)成一個(gè)數(shù)據(jù)處理組;
[0133]在本實(shí)施例中,還可以將拆分得到的各個(gè)數(shù)據(jù)處理組添加到數(shù)據(jù)處理隊(duì)列中,如圖2所示,所述方法還可以包括:
[0134]步驟203、將所述數(shù)據(jù)處理組添加到預(yù)置的數(shù)據(jù)處理隊(duì)列中;
[0135]步驟204、并發(fā)執(zhí)行各個(gè)數(shù)據(jù)處理組,其中,同一組的數(shù)據(jù)處理子操作逐個(gè)執(zhí)行,不同組的數(shù)據(jù)處理子操作同時(shí)執(zhí)行。
[0136]在本實(shí)施例中,可以依據(jù)各個(gè)數(shù)據(jù)處理組的執(zhí)行結(jié)果判斷是否需要進(jìn)行回滾,如圖2所示,所述方法還可以包括:
[0137]步驟205、在各個(gè)數(shù)據(jù)處理組執(zhí)行完畢后,判斷返回的執(zhí)行結(jié)果是否符合預(yù)設(shè)條件,若否,則執(zhí)行步驟206 ;
[0138]所述步驟205可以包括:
[0139]子步驟S11、判斷返回的執(zhí)行結(jié)果是否為負(fù)值或者小于預(yù)設(shè)值,若是,則符合預(yù)設(shè)條件。
[0140]步驟206、執(zhí)行所述數(shù)據(jù)處理組中各個(gè)數(shù)據(jù)處理子操作的回滾操作。
[0141]數(shù)據(jù)處理組的每個(gè)操作執(zhí)行完成后,會(huì)返回多個(gè)執(zhí)行結(jié)果,為了確保數(shù)據(jù)處理結(jié)果符合邏輯,需要對(duì)每個(gè)執(zhí)行結(jié)果進(jìn)行判斷,若執(zhí)行結(jié)果為負(fù)值或小于預(yù)設(shè)的某個(gè)值,例如,事務(wù)Tl對(duì)賬戶A和B的操作執(zhí)行完畢后,返回的結(jié)果為賬戶A余額為-30元,賬戶B余額為40元,則賬戶A的余額不符合邏輯,這個(gè)數(shù)據(jù)處理組需要進(jìn)行回滾。
[0142]在具體的實(shí)現(xiàn)中,除了數(shù)據(jù)處理結(jié)果不合邏輯的情況,還可以判斷事務(wù)是否是非法操作。具體而言,可以借助于第三方系統(tǒng)(例如風(fēng)險(xiǎn)控制系統(tǒng)CTU),依據(jù)執(zhí)行結(jié)果和用戶行為,進(jìn)行數(shù)據(jù)挖掘分析,判斷事務(wù)是否是非法操作,例如該賬戶是否被盜用,是否為虛假交易,是否有洗錢,是否有非法提現(xiàn)。這種非法操作的判斷返回判斷結(jié)果需要一定的時(shí)間間隔。
[0143]回滾操作是原操作的逆操作,例如,Tll為對(duì)賬戶A減少30元,對(duì)應(yīng)的逆操作為對(duì)賬戶A增加30元。
[0144]交易系統(tǒng)數(shù)據(jù)庫(kù)具備完整性,即一個(gè)事務(wù)必然包括對(duì)兩個(gè)不同對(duì)象的操作,一個(gè)數(shù)據(jù)變化的同時(shí),另一個(gè)數(shù)據(jù)也會(huì)發(fā)生相應(yīng)的變化,數(shù)據(jù)總量保持不變。對(duì)于執(zhí)行結(jié)果不符合業(yè)務(wù)邏輯的情況執(zhí)行各組子操作的回滾操作,不僅保證了數(shù)據(jù)處理結(jié)果的準(zhǔn)確性,由于同時(shí)執(zhí)行一組子操作的回滾操作保證了這組子操作中所有業(yè)務(wù)同時(shí)撤銷,保證了事務(wù)處理的完整性和賬戶余額的一致性;并且,與現(xiàn)有技術(shù)中緩存賬戶的方式相比,避免了資金風(fēng)險(xiǎn)以及凍結(jié)資金所增加事務(wù)處理系統(tǒng)復(fù)雜度。
[0145]在本申請(qǐng)的一種優(yōu)選實(shí)施例中,各個(gè)數(shù)據(jù)處理組的回滾操作與不同數(shù)據(jù)處理組的數(shù)據(jù)處理子操作或回滾操作可以并發(fā)執(zhí)行,其它事務(wù)的回滾操作不影響當(dāng)前事務(wù)的操作。,從而可以進(jìn)步一提聞并發(fā)事務(wù)的處理效率。
[0146]在本實(shí)施例中,在執(zhí)行回滾操作后,還可以進(jìn)一步判斷回滾操作是否執(zhí)行成功,如圖2所示,所述方法還可以包括:
[0147]步驟207、判斷所述回滾操作是否執(zhí)行成功,若否,則執(zhí)行步驟208.[0148]步驟208、依據(jù)所述執(zhí)行結(jié)果生成報(bào)警提示信息。
[0149]回滾操作執(zhí)行成功后會(huì)返回一個(gè)成功的信息,若未收到該信息則表明回滾操作執(zhí)行失敗,可以依據(jù)回滾失敗的事務(wù)對(duì)應(yīng)的執(zhí)行結(jié)果生成報(bào)警信息,例如,事務(wù)Tl處理結(jié)果為買家A賬戶余額-30,賣家賬戶B余額為30,將報(bào)警信息展示在交易系統(tǒng)的客戶端,以供技術(shù)人員或是用戶進(jìn)行處理。
[0150]綜上所述,本申請(qǐng)針對(duì)提交的多個(gè)并發(fā)事務(wù),逐個(gè)拆分為針對(duì)單個(gè)賬戶的子操作,然后并發(fā)執(zhí)行各事務(wù)對(duì)應(yīng)的各組子操作,其中,同一組的數(shù)據(jù)處理子操作逐個(gè)執(zhí)行,不同組的數(shù)據(jù)處理子操作同時(shí)執(zhí)行。由于子操作執(zhí)行的結(jié)果直接生效,因此,不同組的子操作同時(shí)執(zhí)行時(shí),不會(huì)出現(xiàn)臟讀臟寫的問題,保證了數(shù)據(jù)的完整性和一致性;并且,由于不同組的子操作同時(shí)執(zhí)行,相比于讀寫鎖機(jī)制,大大提高了并發(fā)事務(wù)的處理效率。
[0151]由于本申請(qǐng)?jiān)诿拷M子操作處理完成后,對(duì)于執(zhí)行結(jié)果不符合業(yè)務(wù)邏輯的情況還可以執(zhí)行各組子操作的回滾操作,保證了數(shù)據(jù)處理結(jié)果的準(zhǔn)確性,并且,同時(shí)執(zhí)行一組子操作的回滾操作保證了這組子操作中所有業(yè)務(wù)同時(shí)撤銷,保證了事務(wù)處理的完整性和賬戶余額的一致性,避免了資金風(fēng)險(xiǎn)以及凍結(jié)資金所增加事務(wù)處理系統(tǒng)復(fù)雜度。
[0152]本申請(qǐng)中,針對(duì)不同事務(wù)的拆分操作可以同時(shí)執(zhí)行,一個(gè)子操作組的執(zhí)行和另一個(gè)子操作組的回滾之間也可以同時(shí)執(zhí)行,從而可以進(jìn)一步提高并發(fā)事務(wù)的處理效率。
[0153]當(dāng)然,實(shí)施本申請(qǐng)的任一產(chǎn)品不一定需要同時(shí)達(dá)到以上所述的所有優(yōu)點(diǎn)。
[0154]對(duì)于方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請(qǐng)并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本申請(qǐng),某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本申請(qǐng)所必須的。
[0155]參考圖3,示出了本申請(qǐng)的一種并發(fā)事務(wù)的處理裝置實(shí)施例1的結(jié)構(gòu)框圖,具體可以包括以下模塊:
[0156]事務(wù)接收模塊301,用于接收客戶端提交的多個(gè)事務(wù);
[0157]拆分模塊302, 用于將每個(gè)事務(wù),拆分為多個(gè)針對(duì)單個(gè)賬戶的數(shù)據(jù)處理子操作,并構(gòu)成一個(gè)數(shù)據(jù)處理組;[0158]并發(fā)模塊303,用于并發(fā)執(zhí)行各個(gè)數(shù)據(jù)處理組,其中,同一組的數(shù)據(jù)處理子操作逐個(gè)執(zhí)行,不同組的數(shù)據(jù)處理子操作同時(shí)執(zhí)行。
[0159]在本申請(qǐng)的一種優(yōu)選實(shí)施例中,所述拆分模塊可以包括針對(duì)各個(gè)事務(wù)的拆分子模塊,各個(gè)拆分子模塊可以并發(fā)執(zhí)行。
[0160]在本申請(qǐng)的一種優(yōu)選實(shí)施例中,所述數(shù)據(jù)處理子操作可以為對(duì)數(shù)據(jù)進(jìn)行增加數(shù)值或減少數(shù)值的操作。
[0161]參考圖4,示出了本申請(qǐng)的一種并發(fā)事務(wù)的處理裝置實(shí)施例2的結(jié)構(gòu)框圖,具體可以包括以下模塊:
[0162]事務(wù)接收模塊401,用于接收客戶端提交的多個(gè)事務(wù);
[0163]拆分模塊402,用于將每個(gè)事務(wù),拆分為多個(gè)針對(duì)單個(gè)賬戶的數(shù)據(jù)處理子操作,并構(gòu)成一個(gè)數(shù)據(jù)處理組;
[0164]在本實(shí)施例中,還可以將拆分得到的各個(gè)數(shù)據(jù)處理組添加到數(shù)據(jù)處理隊(duì)列中,如圖4所示,所述裝置還可以包括:
[0165]數(shù)據(jù)處理隊(duì)列添加模塊403,用于將所述數(shù)據(jù)處理組添加到預(yù)置的數(shù)據(jù)處理隊(duì)列中。
[0166]并發(fā)模塊404,用于并發(fā)執(zhí)行各個(gè)數(shù)據(jù)處理組,其中,同一組的數(shù)據(jù)處理子操作逐個(gè)執(zhí)行,不同組的數(shù)據(jù)處理子操作同時(shí)執(zhí)行;
[0167]在本實(shí)施例中,可以依據(jù)各個(gè)數(shù)據(jù)處理組的執(zhí)行結(jié)果判斷是否需要進(jìn)行回滾,如圖4所示,所述裝置還可以包括:
[0168]執(zhí)行結(jié)果判斷模塊405,用于在各個(gè)數(shù)據(jù)處理組執(zhí)行完畢后,判斷返回的執(zhí)行結(jié)果是否符合預(yù)設(shè)條件,若否,則執(zhí)行回滾模塊;
[0169]回滾模塊406,用于執(zhí)行所述數(shù)據(jù)處理組中各個(gè)數(shù)據(jù)處理子操作的回滾操作。
[0170]在本申請(qǐng)的一種優(yōu)選實(shí)施例中,所述并發(fā)模塊可以和所述回滾模塊并發(fā)執(zhí)行。
[0171]在本申請(qǐng)的一種優(yōu)選實(shí)施例中,所述執(zhí)行結(jié)果判斷模塊405可以包括:
[0172]數(shù)值判斷子模塊,用于判斷返回的執(zhí)行結(jié)果是否為負(fù)值或者小于預(yù)設(shè)值,若是,則符合預(yù)設(shè)條件。
[0173]在本實(shí)施例中,在執(zhí)行回滾操作后,還可以進(jìn)一步判斷回滾操作是否執(zhí)行成功,如圖4所示,所述裝置還可以包括:
[0174]回滾操作判斷模塊407,用于判斷所述回滾操作是否執(zhí)行成功,若否,則執(zhí)行報(bào)警提不1旲塊;
[0175]報(bào)警提示模塊408,用于依據(jù)所述執(zhí)行結(jié)果生成報(bào)警提示信息。
[0176]由于所述裝置實(shí)施例基本相應(yīng)于前述圖1和圖2所示的方法實(shí)施例,故本實(shí)施例的描述中未詳盡之處,可以參見前述實(shí)施例中的相關(guān)說明,在此就不贅述了。
[0177]本申請(qǐng)可用于眾多通用或?qū)S玫挠?jì)算系統(tǒng)環(huán)境或配置中。例如:個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂盒、可編程的消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括以上任何系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等等。
[0178]本申請(qǐng)可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本申請(qǐng),在這些分布式計(jì)算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。[0179]在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0180]以上對(duì)本申請(qǐng)所提供的一種并發(fā)事務(wù)的處理方法,以及,一種并發(fā)事務(wù)的處理裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本申請(qǐng)的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本申請(qǐng)的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請(qǐng)的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本申請(qǐng)的限制。
【權(quán)利要求】
1.一種并發(fā)事務(wù)的處理方法,其特征在于,包括: 接收客戶端提交的多個(gè)事務(wù); 將每個(gè)事務(wù),拆分為多個(gè)針對(duì)單個(gè)賬戶的數(shù)據(jù)處理子操作,并構(gòu)成一個(gè)數(shù)據(jù)處理組;并發(fā)執(zhí)行各個(gè)數(shù)據(jù)處理組,其中,同一組的數(shù)據(jù)處理子操作逐個(gè)執(zhí)行,不同組的數(shù)據(jù)處理子操作同時(shí)執(zhí)行。
2.如權(quán)利要求1所述的方法,其特征在于,針對(duì)各個(gè)事務(wù),所述將每個(gè)事務(wù),拆分為多個(gè)針對(duì)單個(gè)賬戶的數(shù)據(jù)處理子操作的步驟并發(fā)執(zhí)行。
3.如權(quán)利要求1所述的方法,其特征在于,各個(gè)數(shù)據(jù)處理組的回滾操作與不同數(shù)據(jù)處理組的數(shù)據(jù)處理子操作或回滾操作并發(fā)執(zhí)行。
4.如權(quán)利要求1所述的方法,其特征在于,還包括: 在各個(gè)數(shù)據(jù)處理組執(zhí)行完畢后,判斷返回的執(zhí)行結(jié)果是否符合預(yù)設(shè)條件; 若不符合,則執(zhí)行所述數(shù)據(jù)處理組中各個(gè)數(shù)據(jù)處理子操作的回滾操作。
5.如權(quán)利要求4所述的方法,其特征在于,所述判斷返回的執(zhí)行結(jié)果是否符合預(yù)設(shè)條件的步驟為: 判斷返回的執(zhí)行結(jié)果是否為負(fù)值或者小于預(yù)設(shè)值; 若是,則符合預(yù)設(shè)條件。
6.如權(quán)利要求4所述的方法,其特征在于,還包括: 判斷所述回滾操作是否執(zhí)行成功; 若否,則依據(jù)所述執(zhí)行結(jié)果生成報(bào)警提示信息。
7.如權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)處理子操作為對(duì)數(shù)據(jù)進(jìn)行增加數(shù)值或減少數(shù)值的操作。
8.如權(quán)利要求1所述的方法,其特征在于,還包括: 將所述數(shù)據(jù)處理組添加到預(yù)置的數(shù)據(jù)處理隊(duì)列中。
9.一種并發(fā)事務(wù)的處理裝置,其特征在于,包括: 事務(wù)接收模塊,用于接收客戶端提交的多個(gè)事務(wù); 拆分模塊,用于將每個(gè)事務(wù),拆分為多個(gè)針對(duì)單個(gè)賬戶的數(shù)據(jù)處理子操作,并構(gòu)成一個(gè)數(shù)據(jù)處理組; 并發(fā)模塊,用于并發(fā)執(zhí)行各個(gè)數(shù)據(jù)處理組,其中,同一組的數(shù)據(jù)處理子操作逐個(gè)執(zhí)行,不同組的數(shù)據(jù)處理子操作同時(shí)執(zhí)行。
10.如權(quán)利要求9所述的裝置,其特征在于,所述拆分模塊包括針對(duì)各個(gè)事務(wù)的拆分子模塊,各個(gè)拆分子模塊并發(fā)執(zhí)行。
11.如權(quán)利要求9所述的裝置,其特征在于,還包括: 執(zhí)行結(jié)果判斷模塊,用于在各個(gè)數(shù)據(jù)處理組執(zhí)行完畢后,判斷返回的執(zhí)行結(jié)果是否符合預(yù)設(shè)條件,若否,則執(zhí)行回滾模塊; 回滾模塊,用于執(zhí)行所述數(shù)據(jù)處理組中各個(gè)數(shù)據(jù)處理子操作的回滾操作。
12.如權(quán)利要求11所述的裝置,其特征在于,還包括: 回滾操作判斷模塊,用于判斷所述回滾操作是否執(zhí)行成功,若否,則依據(jù)所述執(zhí)行結(jié)果生成報(bào)警提示信息。
【文檔編號(hào)】G06F9/44GK103677771SQ201210328626
【公開日】2014年3月26日 申請(qǐng)日期:2012年9月6日 優(yōu)先權(quán)日:2012年9月6日
【發(fā)明者】龐舉, 錢進(jìn) 申請(qǐng)人:阿里巴巴集團(tuán)控股有限公司