專利名稱:一種數(shù)據(jù)庫處理事務(wù)的裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機(jī)信息領(lǐng)域的數(shù)據(jù)庫技術(shù),特別涉及一種數(shù)據(jù)庫處理事務(wù)的裝置及方法。
背景技術(shù):
隨著計算機(jī)信息技術(shù)的發(fā)展,其中的數(shù)據(jù)庫技術(shù)已經(jīng)成為先進(jìn)信息技術(shù)的重要組成部分和核心之一。在數(shù)據(jù)庫技術(shù)中,需要將事務(wù)提交給數(shù)據(jù)庫處理。所謂事務(wù)就是指一組邏輯操作單元,使事務(wù)涉及的數(shù)據(jù)在數(shù)據(jù)庫中從一種狀態(tài)變化到另一種狀態(tài)。為了確保數(shù)據(jù)庫中數(shù)據(jù)的一致性,數(shù)據(jù)的處理應(yīng)當(dāng)為離散的成組的邏輯操作單元,當(dāng)事務(wù)被數(shù)據(jù)庫處理完成時, 數(shù)據(jù)庫中的數(shù)據(jù)一致性可以保持,而當(dāng)數(shù)據(jù)庫處理事務(wù)過程中邏輯操作單元中的一部分操作失敗時,則整個事務(wù)應(yīng)全部視為錯誤,所有邏輯操作單元從起始點(diǎn)以后的操作全部退到數(shù)據(jù)庫中數(shù)據(jù)的開始狀態(tài)。數(shù)據(jù)庫正確地處理事務(wù)可以保證數(shù)據(jù)庫中數(shù)據(jù)的完整性和一致性,當(dāng)事務(wù)沒有被數(shù)據(jù)庫處理完成前,保證數(shù)據(jù)庫中的數(shù)據(jù)沒有增加、刪除或/和更改。舉一個具體例子說明一下。假設(shè)數(shù)據(jù)庫為銀行應(yīng)用數(shù)據(jù)庫,數(shù)據(jù)為一百元錢,事務(wù)為要將該一百元錢從銀行應(yīng)用數(shù)據(jù)庫中儲戶甲的帳戶中劃歸給儲戶乙的帳戶中。在銀行應(yīng)用數(shù)據(jù)庫中,儲戶甲和儲戶乙分別對應(yīng)有存儲空間,如存儲表,用于存儲帳戶信息。當(dāng)銀行應(yīng)用數(shù)據(jù)庫對上述事務(wù)處理時,需要分別對儲戶甲的存儲表和儲戶乙的存儲表修改,即在儲戶甲的存儲表中減去一百元錢,在儲戶乙的存儲表中增加一百元錢,完成對事務(wù)的處理過程。具體地,就是將銀行應(yīng)用數(shù)據(jù)庫中儲戶甲的存儲表和儲戶乙的存儲表依次提取到內(nèi)存中,進(jìn)行相應(yīng)的修改后,再依次存儲到數(shù)據(jù)庫中。但是,在處理事務(wù)過程中,會出現(xiàn)以下情況如果在儲戶甲的存儲表中減去一百元錢后,對儲戶乙的存儲表增加一百元錢失敗時,則需要在儲戶甲的存儲表中增加一百元錢,使得數(shù)據(jù)庫中儲戶甲的存儲表回到修改前的狀態(tài),以保證銀行應(yīng)用數(shù)據(jù)庫中數(shù)據(jù)的一致性和完整性,防止其中的數(shù)據(jù)出錯。目前,數(shù)據(jù)庫對事務(wù)的處理如圖1所示,預(yù)先設(shè)定事務(wù),其具體步驟為步驟101、數(shù)據(jù)庫接收到提交的事務(wù)后,根據(jù)所設(shè)定的事務(wù)對數(shù)據(jù)庫中事務(wù)相關(guān)的數(shù)據(jù)進(jìn)行刪除、增加或/和修改;在該步驟中,由于數(shù)據(jù)庫都是在永久存儲器上設(shè)置的,比如硬盤,在處理事務(wù)過程中,需要從數(shù)據(jù)庫中提取事務(wù)相關(guān)數(shù)據(jù)到內(nèi)存中,然后對內(nèi)存中的事務(wù)相關(guān)數(shù)據(jù)進(jìn)行刪除、 增加或/和修改后,再存儲到數(shù)據(jù)庫中永久保存;步驟102、判斷是否完全完成數(shù)據(jù)庫對事務(wù)的處理,如果是,則結(jié)束本流程;如果否,則執(zhí)行步驟103;步驟103、數(shù)據(jù)庫進(jìn)行回退操作,放棄所有對該事務(wù)的處理,回到開始處理事務(wù)的狀態(tài),保證數(shù)據(jù)庫中數(shù)據(jù)的一致性和完整性。
此外,在數(shù)據(jù)庫處理事務(wù)過程中,還可以設(shè)置存儲點(diǎn)(save point),在設(shè)置的存儲點(diǎn)上對應(yīng)存儲數(shù)據(jù)庫的事務(wù)相關(guān)數(shù)據(jù)狀態(tài)。當(dāng)處理事務(wù)過程中,如果事務(wù)處理失敗,則數(shù)據(jù)庫回退到存儲點(diǎn)對應(yīng)的事務(wù)相關(guān)數(shù)據(jù)狀態(tài)上,而不需要回退到事務(wù)處理前的初始事務(wù)狀態(tài)。如果事務(wù)可以劃分為幾段處理,也就是可以劃分為幾段對數(shù)據(jù)庫進(jìn)行事務(wù)相關(guān)數(shù)據(jù)的修改、刪除或/和增加,則可以設(shè)置多個存儲點(diǎn),在事務(wù)處理過程中失敗時,根據(jù)需要數(shù)據(jù)庫回退到設(shè)定的其中一個存儲點(diǎn)對應(yīng)的事務(wù)相關(guān)數(shù)據(jù)狀態(tài),而不回退到事務(wù)處理前的數(shù)據(jù)初始狀態(tài)。但是,目前這種數(shù)據(jù)庫對事務(wù)處理的方法也存在著缺點(diǎn)對每個事務(wù)的處理,都需要經(jīng)過提交事務(wù)、內(nèi)存從數(shù)據(jù)庫提取事務(wù)相關(guān)數(shù)據(jù)、在內(nèi)存中修改、刪除或/和增加事務(wù)相關(guān)數(shù)據(jù)及將內(nèi)存中修改、刪除或/和增加的相關(guān)數(shù)據(jù)存儲到在永久存儲器中的數(shù)據(jù)庫中, 這個過程比較長,尤其對事務(wù)相關(guān)數(shù)據(jù)的數(shù)據(jù)量比較大的情況下。因此,數(shù)據(jù)庫完成事務(wù)處理后,響應(yīng)用戶的時間也會比較長,降低用戶的體驗度。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供一種數(shù)據(jù)庫處理事務(wù)的裝置,該裝置能夠在減少響應(yīng)時間的基礎(chǔ)上處理數(shù)據(jù)庫事務(wù),提高用戶的體驗度。本發(fā)明還提供一種數(shù)據(jù)庫處理事務(wù)的方法,該方法能夠在減小響應(yīng)時間的基礎(chǔ)上處理數(shù)據(jù)庫事務(wù),提高用戶的體驗度。根據(jù)上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的一種處理數(shù)據(jù)庫事務(wù)的裝置,包括同步事務(wù)接口、異步事務(wù)接口、處理器、設(shè)置有數(shù)據(jù)庫的永久存儲器及內(nèi)存,其中,同步事務(wù)接口,用于接收同步事務(wù),將接收到的同步事務(wù)提供給處理器處理;異步事務(wù)接口,用于接收異步事務(wù),將接收到的異步事務(wù)提供給處理器處理;處理器,用于從同步事務(wù)接口中接收到同步事務(wù)后,從數(shù)據(jù)庫中提取同步事務(wù)相關(guān)數(shù)據(jù)到內(nèi)存,在內(nèi)存中進(jìn)行同步事務(wù)相關(guān)數(shù)據(jù)的刪除、增加或/和修改,發(fā)送給數(shù)據(jù)庫存儲后,發(fā)送響應(yīng)同步事務(wù)消息;從異步事務(wù)接口中接收異步事務(wù),從數(shù)據(jù)庫中提取異步事務(wù)相關(guān)數(shù)據(jù)到內(nèi)存,在內(nèi)存中進(jìn)行異步事務(wù)相關(guān)數(shù)據(jù)的刪除、增加或/和修改后暫存,發(fā)送響應(yīng)異步事務(wù)消息;設(shè)置有數(shù)據(jù)庫的永久存儲器,用于存儲同步事務(wù)和異步事務(wù)相關(guān)數(shù)據(jù);內(nèi)存,用于在處理器的指示下將同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)從數(shù)據(jù)庫中提取出來,進(jìn)行同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)的刪除、增加或/和修改。當(dāng)同步事務(wù)或異步事務(wù)處理失敗時,所述處理器,還用于將內(nèi)存中同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)的狀態(tài)進(jìn)行回退,將回退后的同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)發(fā)送給數(shù)據(jù)庫存儲,發(fā)送響應(yīng)失敗事務(wù)消息。所述處理器,還用于設(shè)置存儲點(diǎn),在將內(nèi)存中同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)的狀態(tài)進(jìn)行回退時,回退到存儲點(diǎn)對應(yīng)的同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)的狀態(tài)或進(jìn)行同步事務(wù)或異步事務(wù)處理前相關(guān)數(shù)據(jù)的狀態(tài)。所述處理器在處理完同步事務(wù)時,向數(shù)據(jù)庫提交事務(wù)同步提交日志;所述處理器在處理完異步事務(wù)時,向數(shù)據(jù)庫提交事務(wù)異步提交日志;所述處理器在處理完事務(wù)失敗過程后,向數(shù)據(jù)庫提交事務(wù)回退日志。所述處理器還在數(shù)據(jù)庫后續(xù)處理同步事務(wù)過程時將內(nèi)存中已經(jīng)修改、刪除或/和增加的異步事務(wù)相關(guān)數(shù)據(jù)存儲到在永久存儲器中的數(shù)據(jù)庫中。—種數(shù)據(jù)庫處理事務(wù)的方法,該方法包括a、接收到事務(wù)后,確定是否為異步事務(wù),如果是,執(zhí)行步驟b,如果否,執(zhí)行步驟c ;b、從數(shù)據(jù)庫中提取異步事務(wù)相關(guān)數(shù)據(jù)到內(nèi)存,在內(nèi)存中進(jìn)行異步事務(wù)相關(guān)數(shù)據(jù)的刪除、增加或/和修改后暫存,發(fā)送響應(yīng)異步事務(wù)消息;C、從數(shù)據(jù)庫中提取同步事務(wù)相關(guān)數(shù)據(jù)到內(nèi)存,在內(nèi)存中進(jìn)行同步事務(wù)相關(guān)數(shù)據(jù)的刪除、增加或/和修改,發(fā)送給數(shù)據(jù)庫存儲后,發(fā)送響應(yīng)同步事務(wù)消息。在發(fā)送響應(yīng)異步事務(wù)消息或響應(yīng)同步事務(wù)消息之前,還包括確定異步事務(wù)或同步事務(wù)是否處理成功,如果是,則發(fā)送;否則,將內(nèi)存中同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)的狀態(tài)進(jìn)行回退,將回退后的同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)發(fā)送給數(shù)據(jù)庫存儲,發(fā)送響應(yīng)失敗事務(wù)消息。所述在將內(nèi)存中同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)的狀態(tài)進(jìn)行回退時,回退到設(shè)置的存儲點(diǎn)對應(yīng)的同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)的狀態(tài)或進(jìn)行同步事務(wù)或異步事務(wù)處理前相關(guān)數(shù)據(jù)的狀態(tài)。該方法還包括在處理完同步事務(wù)時,向數(shù)據(jù)庫提交事務(wù)同步提交日志;在處理完異步事務(wù)時,向數(shù)據(jù)庫提交事務(wù)異步提交日志;在處理完事務(wù)失敗過程后,向數(shù)據(jù)庫提交事務(wù)回退日志。該方法還包括當(dāng)處理器將內(nèi)存中修改、刪除或/和增加的該異步事務(wù)相關(guān)數(shù)據(jù)存儲到在永久存儲器中的數(shù)據(jù)庫中,在數(shù)據(jù)庫后續(xù)處理同步事務(wù)過程時進(jìn)行。從上述方案可以看出,本發(fā)明在數(shù)據(jù)庫處理事務(wù)的裝置中設(shè)置提交異步事務(wù)接口,用于接收所提交的異步事務(wù),當(dāng)接收到異步事務(wù)后,從數(shù)據(jù)庫提取該異步事務(wù)相關(guān)數(shù)據(jù)到內(nèi)存中進(jìn)行刪除、修改或/和增加后,直接確認(rèn)事務(wù)處理完畢,向用戶發(fā)送響應(yīng)消息。后續(xù)再將內(nèi)存中修改、刪除或/和增加的該異步事務(wù)相關(guān)數(shù)據(jù)存儲到在永久存儲器的數(shù)據(jù)庫中,比如在數(shù)據(jù)庫處理其他同步事務(wù)過程時一并存儲。由于本發(fā)明不需要將內(nèi)存中修改、刪除或/和增加的該異步事務(wù)相關(guān)數(shù)據(jù)存儲到在永久存儲器中的數(shù)據(jù)庫就響應(yīng)用戶,而在后續(xù)再處理,從而減少響應(yīng)時間的基礎(chǔ)上處理數(shù)據(jù)庫事務(wù),提高用戶的體驗度。
圖1為現(xiàn)有技術(shù)提供的數(shù)據(jù)庫對事務(wù)的處理流程圖;圖2為本發(fā)明提供的數(shù)據(jù)庫處理事務(wù)裝置的結(jié)構(gòu)示意圖;圖3為本發(fā)明提供的數(shù)據(jù)庫處理事務(wù)的方法流程圖;圖4為采用本發(fā)明提供的方法與現(xiàn)有技術(shù)提供的方法的響應(yīng)時間對比圖。
具體實施例方式為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉實施例,對本發(fā)明作進(jìn)一步詳細(xì)說明。
本發(fā)明為了減少數(shù)據(jù)庫處理事務(wù)的響應(yīng)時間,提高用戶體驗度。提出了兩種不同類型的事務(wù)異步事務(wù)和同步事務(wù)。其中,同步事務(wù)的處理與現(xiàn)有技術(shù)中處理事務(wù)的過程相同,而異步事務(wù)的處理過程為當(dāng)接收到異步事務(wù)后,從數(shù)據(jù)庫提取該異步事務(wù)相關(guān)數(shù)據(jù)到內(nèi)存中進(jìn)行刪除、修改或/和增加后,直接確認(rèn)事務(wù)處理完畢,向用戶發(fā)送響應(yīng)消息。后續(xù)再將內(nèi)存中修改、刪除或/和增加的該異步事務(wù)相關(guān)數(shù)據(jù)存儲到在永久存儲器中的數(shù)據(jù)庫中,比如在數(shù)據(jù)庫處理同步事務(wù)過程時一并存儲。這樣,就可以減少數(shù)據(jù)庫處理事務(wù)的響應(yīng)時間。因此,本發(fā)明為了能夠處理異步事務(wù),在數(shù)據(jù)庫處理事務(wù)的裝置中設(shè)置提交異步事務(wù)接口,用于接收所提交的異步事務(wù)。圖2為本發(fā)明提供的數(shù)據(jù)庫處理事務(wù)裝置的結(jié)構(gòu)示意圖,包括同步事務(wù)接口、異步事務(wù)接口、處理器、設(shè)置有數(shù)據(jù)庫的永久存儲器及內(nèi)存,其中,同步事務(wù)接口,用于接收同步事務(wù),將接收到的同步事務(wù)提供給處理器處理;異步事務(wù)接口,用于接收異步事務(wù),將接收到的異步事務(wù)提供給處理器處理;處理器,用于從同步事務(wù)接口中接收到同步事務(wù)后,從數(shù)據(jù)庫中提取同步事務(wù)相關(guān)數(shù)據(jù)到內(nèi)存,在內(nèi)存中進(jìn)行同步事務(wù)相關(guān)數(shù)據(jù)的刪除、增加或/和修改,發(fā)送給數(shù)據(jù)庫存儲后,發(fā)送響應(yīng)同步事務(wù)消息;從異步事務(wù)接口中接收異步事務(wù),從數(shù)據(jù)庫中提取異步事務(wù)相關(guān)數(shù)據(jù)到內(nèi)存,在內(nèi)存中進(jìn)行異步事務(wù)相關(guān)數(shù)據(jù)的刪除、增加或/和修改后暫存,發(fā)送響應(yīng)異步事務(wù)消息;設(shè)置有數(shù)據(jù)庫的永久存儲器,用于存儲同步事務(wù)和異步事務(wù)相關(guān)的數(shù)據(jù);內(nèi)存,用于在處理器的指示下將同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)從數(shù)據(jù)庫中提取出來,進(jìn)行同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)的刪除、增加或/和修改。在該實施例中,當(dāng)同步事務(wù)或異步事務(wù)處理失敗時,所述處理器,還用于將內(nèi)存中同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)的狀態(tài)進(jìn)行回退,取消本過程對同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)的刪除、增加或/和修改后,將回退后的同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)發(fā)送給數(shù)據(jù)庫存儲,發(fā)送響應(yīng)失敗事務(wù)消息。在該實施例中,同步事務(wù)接口和異步事務(wù)接口可以為數(shù)據(jù)庫處理事務(wù)裝置的硬件接口,也可以為邏輯接口,可以根據(jù)事務(wù)攜帶的同步標(biāo)識或異步標(biāo)識識別出是同步事務(wù)還是異步事務(wù)。圖3為本發(fā)明提供的數(shù)據(jù)庫處理事務(wù)的方法流程圖,設(shè)置同步事務(wù)和異步事務(wù), 其具體步驟為步驟301、接收到事務(wù)后,確定是否為異步事務(wù),如果是,執(zhí)行步驟302,如果否,執(zhí)行步驟305 ;在該步驟中,根據(jù)事務(wù)攜帶的同步標(biāo)識或異步標(biāo)識來確定是否為同步事務(wù)或異步事務(wù);步驟302、從數(shù)據(jù)庫中提取異步事務(wù)相關(guān)數(shù)據(jù)到內(nèi)存,在內(nèi)存中進(jìn)行異步事務(wù)相關(guān)數(shù)據(jù)的刪除、增加或/和修改后暫存;步驟303、確定異步事務(wù)是否處理成功,如果是,則執(zhí)行步驟304 ;否則,則執(zhí)行步驟 308 ;步驟304、向用戶發(fā)送響應(yīng)異步事務(wù)消息;
步驟305、從數(shù)據(jù)庫中提取同步事務(wù)相關(guān)數(shù)據(jù)到內(nèi)存,在內(nèi)存中進(jìn)行同步事務(wù)相關(guān)數(shù)據(jù)的刪除、增加或/和修改;步驟306、確定同步事務(wù)是否處理成功,如果是,則執(zhí)行步驟307;否則,則執(zhí)行步驟 308 ;步驟307、首先將內(nèi)存中進(jìn)行刪除、增加或/和修改的異步事務(wù)相關(guān)數(shù)據(jù)發(fā)送給數(shù)據(jù)庫存儲后,再將內(nèi)存中進(jìn)行刪除、增加或/和修改的同步事務(wù)相關(guān)數(shù)據(jù)發(fā)送給數(shù)據(jù)庫存儲后,向用戶發(fā)送響應(yīng)同步事務(wù)消息;在本步驟中,首先處理內(nèi)存中異步事務(wù)相關(guān)數(shù)據(jù),然后再處理內(nèi)存中的同步事務(wù)相關(guān)數(shù)據(jù),也就是說,在內(nèi)存中進(jìn)行刪除、增加或/和修改的異步事務(wù)相關(guān)數(shù)據(jù)在后續(xù)的同步事務(wù)處理過程中會首先被處理,存入到數(shù)據(jù)庫中;步驟308、將內(nèi)存中同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)的狀態(tài)進(jìn)行回退,取消本過程對同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)的刪除、增加或/和修改后,將回退后的同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)發(fā)送給數(shù)據(jù)庫存儲,發(fā)送響應(yīng)失敗事務(wù)消息。在該方法中,整個過程都是由數(shù)據(jù)庫處理事務(wù)裝置的處理器控制進(jìn)行的。在上述的裝置或方法中,處理器,還用于設(shè)置存儲點(diǎn),在將內(nèi)存中同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)的狀態(tài)進(jìn)行回退時,回退到存儲點(diǎn)對應(yīng)的同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)的狀態(tài)。在上述的裝置或方法中,處理器在處理完同步事務(wù)時,還可以向數(shù)據(jù)庫提交事務(wù)同步提交日志;在處理完異步事務(wù)時,還可以向數(shù)據(jù)庫提交事務(wù)異步提交日志;在處理完事務(wù)失敗過程后,還可以向數(shù)據(jù)庫提交事務(wù)回退日志;以便后續(xù)數(shù)據(jù)庫在驗證事務(wù)相關(guān)數(shù)據(jù)一致時使用。在上述的裝置或方法中,當(dāng)處理器將內(nèi)存中修改、刪除或/和增加的該異步事務(wù)相關(guān)數(shù)據(jù)存儲到在永久存儲器中的數(shù)據(jù)庫中,可以在數(shù)據(jù)庫后續(xù)處理同步事務(wù)過程時進(jìn)行,即將該異步事務(wù)相關(guān)數(shù)據(jù)排進(jìn)同步事務(wù)處理隊列中,當(dāng)數(shù)據(jù)庫存儲同步事務(wù)相關(guān)數(shù)據(jù)時,首先將該異步事務(wù)相關(guān)數(shù)據(jù)存儲后,再存儲隊列中其他同步事務(wù)相關(guān)數(shù)據(jù)。當(dāng)用戶需要提高響應(yīng)處理事務(wù)速度時,就可以采用異步事務(wù),通過異步事務(wù)的處理過程來完成,由于省去了將在內(nèi)存中刪除、修改或/和增加的異步事務(wù)相關(guān)數(shù)據(jù)存儲到數(shù)據(jù)庫的時間,所以提高了響應(yīng)用戶速度。當(dāng)用戶希望將在內(nèi)存中刪除、修改或/和增加的異步事務(wù)相關(guān)數(shù)據(jù)存儲到數(shù)據(jù)庫的時候,可以再調(diào)用同步事務(wù)處理過程,即先將在內(nèi)存中刪除、修改或/和增加的異步事務(wù)相關(guān)數(shù)據(jù)存儲到數(shù)據(jù)庫中后,再將同步事務(wù)隊列中其他同步事務(wù)相關(guān)數(shù)據(jù)存儲到數(shù)據(jù)庫中,最后提交事務(wù)同步日志給數(shù)據(jù)庫。這樣,就可以避免只進(jìn)行單一異步事務(wù)過程而導(dǎo)致的異步事務(wù)相關(guān)數(shù)據(jù)在數(shù)據(jù)庫和內(nèi)存中的一致性,及內(nèi)存受限的缺點(diǎn),彌補(bǔ)了只處理異步事務(wù)過程的不足。圖4為采用本發(fā)明提供的方法與現(xiàn)有技術(shù)提供的方法的響應(yīng)時間對比圖,縱坐標(biāo)為時間軸,可以看出,采用本發(fā)明提供的方法,比現(xiàn)有技術(shù)提供的方法,響應(yīng)時間要快速的多。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
權(quán)利要求
1.一種處理數(shù)據(jù)庫事務(wù)的裝置,其特征在于,包括同步事務(wù)接口、異步事務(wù)接口、處理器、設(shè)置有數(shù)據(jù)庫的永久存儲器及內(nèi)存,其中,同步事務(wù)接口,用于接收同步事務(wù),將接收到的同步事務(wù)提供給處理器處理;異步事務(wù)接口,用于接收異步事務(wù),將接收到的異步事務(wù)提供給處理器處理;處理器,用于從同步事務(wù)接口中接收到同步事務(wù)后,從數(shù)據(jù)庫中提取同步事務(wù)相關(guān)數(shù)據(jù)到內(nèi)存,在內(nèi)存中進(jìn)行同步事務(wù)相關(guān)數(shù)據(jù)的刪除、增加或/和修改,發(fā)送給數(shù)據(jù)庫存儲后,發(fā)送響應(yīng)同步事務(wù)消息;從異步事務(wù)接口中接收異步事務(wù),從數(shù)據(jù)庫中提取異步事務(wù)相關(guān)數(shù)據(jù)到內(nèi)存,在內(nèi)存中進(jìn)行異步事務(wù)相關(guān)數(shù)據(jù)的刪除、增加或/和修改后暫存,發(fā)送響應(yīng)異步事務(wù)消息;設(shè)置有數(shù)據(jù)庫的永久存儲器,用于存儲同步事務(wù)和異步事務(wù)相關(guān)數(shù)據(jù);內(nèi)存,用于在處理器的指示下將同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)從數(shù)據(jù)庫中提取出來, 進(jìn)行同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)的刪除、增加或/和修改。
2.如權(quán)利要求1所述的裝置,其特征在于,當(dāng)同步事務(wù)或異步事務(wù)處理失敗時,所述處理器,還用于將內(nèi)存中同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)的狀態(tài)進(jìn)行回退,將回退后的同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)發(fā)送給數(shù)據(jù)庫存儲,發(fā)送響應(yīng)失敗事務(wù)消息。
3.如權(quán)利要求2所述的裝置,其特征在于,所述處理器,還用于設(shè)置存儲點(diǎn),在將內(nèi)存中同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)的狀態(tài)進(jìn)行回退時,回退到存儲點(diǎn)對應(yīng)的同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)的狀態(tài)或進(jìn)行同步事務(wù)或異步事務(wù)處理前相關(guān)數(shù)據(jù)的狀態(tài)。
4.如權(quán)利要求2所述的裝置,其特征在于,所述處理器在處理完同步事務(wù)時,向數(shù)據(jù)庫提交事務(wù)同步提交日志;所述處理器在處理完異步事務(wù)時,向數(shù)據(jù)庫提交事務(wù)異步提交日志;所述處理器在處理完事務(wù)失敗過程后,向數(shù)據(jù)庫提交事務(wù)回退日志。
5.如權(quán)利要求1 4任一所述的裝置,其特征在于,所述處理器還在數(shù)據(jù)庫后續(xù)處理同步事務(wù)過程時將內(nèi)存中已經(jīng)修改、刪除或/和增加的異步事務(wù)相關(guān)數(shù)據(jù)存儲到在永久存儲器中的數(shù)據(jù)庫中。
6.一種數(shù)據(jù)庫處理事務(wù)的方法,其特征在于,該方法包括a、接收到事務(wù)后,確定是否為異步事務(wù),如果是,執(zhí)行步驟b,如果否,執(zhí)行步驟c;b、從數(shù)據(jù)庫中提取異步事務(wù)相關(guān)數(shù)據(jù)到內(nèi)存,在內(nèi)存中進(jìn)行異步事務(wù)相關(guān)數(shù)據(jù)的刪除、增加或/和修改后暫存,發(fā)送響應(yīng)異步事務(wù)消息;C、從數(shù)據(jù)庫中提取同步事務(wù)相關(guān)數(shù)據(jù)到內(nèi)存,在內(nèi)存中進(jìn)行同步事務(wù)相關(guān)數(shù)據(jù)的刪除、增加或/和修改,發(fā)送給數(shù)據(jù)庫存儲后,發(fā)送響應(yīng)同步事務(wù)消息。
7.如權(quán)利要求6所述的方法,其特征在于,在發(fā)送響應(yīng)異步事務(wù)消息或響應(yīng)同步事務(wù)消息之前,還包括確定異步事務(wù)或同步事務(wù)是否處理成功,如果是,則發(fā)送;否則,將內(nèi)存中同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)的狀態(tài)進(jìn)行回退,將回退后的同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)發(fā)送給數(shù)據(jù)庫存儲,發(fā)送響應(yīng)失敗事務(wù)消息。
8.如權(quán)利要求7所述的方法,其特征在于,所述在將內(nèi)存中同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)的狀態(tài)進(jìn)行回退時,回退到設(shè)置的存儲點(diǎn)對應(yīng)的同步事務(wù)或異步事務(wù)相關(guān)數(shù)據(jù)的狀態(tài)或進(jìn)行同步事務(wù)或異步事務(wù)處理前相關(guān)數(shù)據(jù)的狀態(tài)。
9.如權(quán)利要求7所述的方法,其特征在于,該方法還包括在處理完同步事務(wù)時,向數(shù)據(jù)庫提交事務(wù)同步提交日志;在處理完異步事務(wù)時,向數(shù)據(jù)庫提交事務(wù)異步提交日志;在處理完事務(wù)失敗過程后,向數(shù)據(jù)庫提交事務(wù)回退日志。
10.如權(quán)利要求6 9任一所述的方法,其特征在于,該方法還包括 當(dāng)處理器將內(nèi)存中修改、刪除或/和增加的該異步事務(wù)相關(guān)數(shù)據(jù)存儲到在永久存儲器中的數(shù)據(jù)庫中,在數(shù)據(jù)庫后續(xù)處理同步事務(wù)過程時進(jìn)行。
全文摘要
本發(fā)明提供了一種數(shù)據(jù)庫處理事務(wù)的裝置及方法,在數(shù)據(jù)庫處理事務(wù)的裝置中設(shè)置提交異步事務(wù)接口,用于接收所提交的異步事務(wù),當(dāng)接收到異步事務(wù)后,從數(shù)據(jù)庫提取該異步事務(wù)相關(guān)數(shù)據(jù)到內(nèi)存中進(jìn)行刪除、修改或/和增加后,直接確認(rèn)事務(wù)處理完畢,向用戶發(fā)送響應(yīng)消息。后續(xù)再將內(nèi)存中修改、刪除或/和增加的該異步事務(wù)相關(guān)數(shù)據(jù)存儲到在永久存儲器的數(shù)據(jù)庫中,比如在數(shù)據(jù)庫處理其他同步事務(wù)過程時一并存儲。由于本發(fā)明不需要將內(nèi)存中修改、刪除或/和增加的該異步事務(wù)相關(guān)數(shù)據(jù)存儲到在永久存儲器中的數(shù)據(jù)庫就響應(yīng)用戶,而在后續(xù)再處理,從而減少響應(yīng)時間的基礎(chǔ)上處理數(shù)據(jù)庫事務(wù),提高用戶的體驗度。
文檔編號G06F17/30GK102279855SQ20101020091
公開日2011年12月14日 申請日期2010年6月10日 優(yōu)先權(quán)日2010年6月10日
發(fā)明者洪錫璡, 紀(jì)晨, 薛竹飆, 譚姝, 金映錫, 陳喜圭, 顧逶迤 申請人:三星電子(中國)研發(fā)中心, 三星電子株式會社