專利名稱:圖形數(shù)據(jù)庫聯(lián)機(jī)事務(wù)中取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本申請涉及數(shù)據(jù)處理領(lǐng)域,特別是涉及一種圖形數(shù)據(jù)庫聯(lián)機(jī)事務(wù)中取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系的方法及系統(tǒng)。
背景技術(shù):
圖形數(shù)據(jù)庫是利用計(jì)算機(jī)將點(diǎn)、線、畫霹圖形基本元素按一定數(shù)據(jù)結(jié)同灶行存儲(chǔ)的數(shù)據(jù)集合,將地圖與其它類型的平面圖中的圖形描述為點(diǎn)、線、面等基本元素,并將這些圖形元素按一定數(shù)據(jù)結(jié)構(gòu)(通常為拓?fù)鋽?shù)據(jù)結(jié)構(gòu))建立起來的數(shù)據(jù)集合。通常在數(shù)據(jù)庫系統(tǒng)中,事務(wù)是工作的離散單位;例如,一個(gè)數(shù)據(jù)庫事務(wù)可以是修改一個(gè)用戶的賬戶平衡或庫存項(xiàng)的寫操作。事務(wù)的操作對象是節(jié)點(diǎn)數(shù)據(jù);在圖形數(shù)據(jù)庫中,數(shù)據(jù)的存儲(chǔ)邏輯單元是節(jié)點(diǎn),節(jié)點(diǎn)與節(jié)點(diǎn)之間通過關(guān)系等屬性相互連接起來。在圖形數(shù)據(jù)庫中,當(dāng)事務(wù)的操作運(yùn)行過程中,出于操作需要,會(huì)取消部分節(jié)點(diǎn)之間的數(shù)據(jù)關(guān)系;發(fā)明人經(jīng)過研究發(fā)現(xiàn),對于圖形數(shù)據(jù)庫領(lǐng)域中,現(xiàn)有技術(shù)還沒有存在一種有效的取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系的方法對節(jié)點(diǎn)之間的邏輯關(guān)系進(jìn)行處理。
發(fā)明內(nèi)容
為解決上述技術(shù)問題,本申請實(shí)施例提供一種圖形數(shù)據(jù)庫聯(lián)機(jī)事務(wù)中取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系的方法及系統(tǒng),能夠有效的對圖形數(shù)據(jù)庫中事務(wù)處理過程中對需要取消的節(jié)點(diǎn)數(shù)據(jù)關(guān)系進(jìn)行取消。技術(shù)方案如下—種圖形數(shù)據(jù)庫聯(lián)機(jī)事務(wù)中取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系的方法,包括接收客戶端發(fā)送的事務(wù)取消操作指令,所述操作指令包括事務(wù)編號(hào)及待取消的節(jié)點(diǎn)數(shù)據(jù)關(guān)系;依據(jù)所述事務(wù)編號(hào)查找與其對應(yīng)的事務(wù);當(dāng)所述事務(wù)有效且所述事務(wù)中的操作數(shù)據(jù)未被其它事務(wù)鎖定時(shí),打開事務(wù)處理標(biāo)記,對所述事務(wù)中的待取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系進(jìn)行取消。上述的方法,優(yōu)選的,還包括當(dāng)所述事務(wù)無效時(shí),結(jié)束對所述事務(wù)節(jié)點(diǎn)數(shù)據(jù)關(guān)系的取消操作。上述的方法,優(yōu)選的,還包括當(dāng)所述事務(wù)中的操作數(shù)據(jù)被其它事務(wù)鎖定時(shí),將所述事務(wù)節(jié)點(diǎn)數(shù)據(jù)關(guān)系的取消操作處于等待狀態(tài),并判斷所述事務(wù)是否超時(shí),當(dāng)所述事務(wù)超時(shí)時(shí),結(jié)束對所述事務(wù)節(jié)點(diǎn)數(shù)據(jù)關(guān)系的取消操作,否則,重新判斷所述事務(wù)是否有效。上述的方法,優(yōu)選的,對所述事務(wù)的待取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系進(jìn)行取消的過程具體為判斷所述節(jié)點(diǎn)數(shù)據(jù)關(guān)系的關(guān)系記錄是否存在,當(dāng)所述關(guān)系記錄不存在時(shí),更新事務(wù)的時(shí)間戳;否則,判斷所述關(guān)系記錄是否為臟數(shù)據(jù);當(dāng)所述關(guān)系記錄為臟數(shù)據(jù)時(shí),刪除所述關(guān)系記錄并更新事務(wù)的時(shí)間戳;當(dāng)所述關(guān)系記錄不是臟數(shù)據(jù)時(shí),標(biāo)記刪除所述關(guān)系記錄并更新事務(wù)的時(shí)間戳。上述的方法,優(yōu)選的,還包括當(dāng)事務(wù)提交時(shí),對于所述取消的節(jié)點(diǎn)數(shù)據(jù)關(guān)系的處理過程;具體為接收客戶端發(fā)送的事務(wù)編號(hào);查找所述事務(wù)編號(hào)所對應(yīng)的事務(wù);當(dāng)所述事務(wù)有效時(shí),標(biāo)記所述事務(wù)的提交狀態(tài);解除所述事務(wù)的關(guān)系記錄的鎖定;刪除所述事務(wù)的關(guān)系記錄,完成事務(wù)的提交。上述的方法,優(yōu)選的,還包括當(dāng)事務(wù)回滾時(shí),對于所述取消的節(jié)點(diǎn)數(shù)據(jù)關(guān)系的處理過程;具體為接收客戶端發(fā)送的事務(wù)編號(hào);查找所述事務(wù)編號(hào)所對應(yīng)的事務(wù);當(dāng)所述事務(wù)有效時(shí),標(biāo)記所述事務(wù)的回滾狀態(tài);解除所述事務(wù)的關(guān)系記錄的鎖定;刪除所述事務(wù)記錄,完成事務(wù)的提交。一種圖形數(shù)據(jù)庫聯(lián)機(jī)事務(wù)中取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系的系統(tǒng),包括接收單元,用于接收客戶端發(fā)送的事務(wù)取消操作指令,所述操作指令包括事務(wù)編號(hào)及待取消的節(jié)點(diǎn)數(shù)據(jù)關(guān)系;查找單元,用于依據(jù)所述接收單元接收的事務(wù)編號(hào),查找與所述事務(wù)編號(hào)相對應(yīng)的事務(wù);取消單元,用于當(dāng)所述查找單元查找的事務(wù)有效且所述事務(wù)中的操作數(shù)據(jù)未被其它事務(wù)鎖定時(shí),打開事務(wù)處理標(biāo)記,對所述事務(wù)的待取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系進(jìn)行取消。上述的系統(tǒng),優(yōu)選的,所述取消單元包括第一判斷子單元和第二判斷子單元;所述第一判斷子單元用于判斷所述查找單元查找的事務(wù)是否失效;所述第二判斷子單元用于判斷所述查找單元查找的事務(wù)中的操作數(shù)據(jù)是否被其它事務(wù)鎖定。上述的系統(tǒng),優(yōu)選的,還包括第一處理單元;所述第一處理單元用于當(dāng)事務(wù)提交時(shí),對所述取消的節(jié)點(diǎn)的數(shù)據(jù)關(guān)系進(jìn)行處理。上述的系統(tǒng),優(yōu)選的,還包括第二處理單元;所述第二處理單元用于當(dāng)事務(wù)回滾時(shí),對所述取消的節(jié)點(diǎn)的數(shù)據(jù)關(guān)系進(jìn)行處理。由以上本申請實(shí)施例提供的技術(shù)方案可見,本發(fā)明提供的圖形數(shù)據(jù)庫聯(lián)機(jī)事務(wù)中取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系的方法及系統(tǒng),在接收到客戶端發(fā)送的事務(wù)取消操作指令后,依據(jù)所述操作指令查找相應(yīng)事務(wù),在所述事務(wù)有效且事務(wù)中的操作數(shù)據(jù)未被其它事務(wù)鎖定時(shí),依照客戶端的操作指令,對所述事務(wù)中的待取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系進(jìn)行取消。本發(fā)明提供的取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系的方法及系統(tǒng),在事務(wù)有效且事務(wù)中的操作數(shù)據(jù)未被其它事務(wù)鎖定的前提下,
5可以對事務(wù)操作過程中各個(gè)階段的待取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系進(jìn)行取消及相應(yīng)的其它操作,填補(bǔ)了現(xiàn)有技術(shù)中,暫時(shí)沒有相關(guān)有效的技術(shù)對圖形數(shù)據(jù)庫聯(lián)機(jī)事務(wù)中取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系的空缺。
為了更清楚地說明本申請實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請中記載的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下, 還可以根據(jù)這些附圖獲得其他的附圖。圖1為本申請實(shí)施例提供的一種圖形數(shù)據(jù)庫聯(lián)機(jī)事務(wù)中取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系的方法流程圖;圖2為本申請實(shí)施例提供的聯(lián)機(jī)事務(wù)處理的層次結(jié)構(gòu)圖;圖3為本申請實(shí)施例提供的一種圖形數(shù)據(jù)庫聯(lián)機(jī)事務(wù)中取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系的一詳細(xì)方法流程圖;圖4為本申請實(shí)施例提供的一種圖形數(shù)據(jù)庫聯(lián)機(jī)事務(wù)中取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系后,在事務(wù)提交過程中對取消的節(jié)點(diǎn)數(shù)據(jù)關(guān)系的處理流程圖;圖5為本申請實(shí)施例提供的一種圖形數(shù)據(jù)庫聯(lián)機(jī)事務(wù)中取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系后,在事務(wù)回滾過程中對取消的節(jié)點(diǎn)數(shù)據(jù)關(guān)系的處理流程圖;圖6為本申請實(shí)施例提供的一種圖形數(shù)據(jù)庫聯(lián)機(jī)事務(wù)中取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系的系統(tǒng)結(jié)構(gòu)示意圖;圖7為本申請實(shí)施例提供的一種圖形數(shù)據(jù)庫聯(lián)機(jī)事務(wù)中取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系的一詳細(xì)結(jié)構(gòu)示意圖;圖8為本申請實(shí)施例提供的一種圖形數(shù)據(jù)庫聯(lián)機(jī)事務(wù)中取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系的又一詳細(xì)結(jié)構(gòu)示意圖;圖9為本申請實(shí)施例提供的一種圖形數(shù)據(jù)庫聯(lián)機(jī)事務(wù)中取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系的再一詳細(xì)結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了使本技術(shù)領(lǐng)域的人員更好地理解本申請方案。下面將結(jié)合本申請實(shí)施例中的附圖,對本申請實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾堉械膶?shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請保護(hù)的范圍。本申請實(shí)施例提供的圖形數(shù)據(jù)庫聯(lián)機(jī)事務(wù)恢復(fù)的方法流程圖,包括步驟SlOl 接收客戶端發(fā)送的事務(wù)取消操作指令,所述操作指令包括事務(wù)編號(hào)及待取消的節(jié)點(diǎn)數(shù)據(jù)關(guān)系;步驟S102 依據(jù)所述事務(wù)編號(hào)查找與其對應(yīng)的事務(wù);步驟S103 當(dāng)所述事務(wù)有效且所述事務(wù)中的操作數(shù)據(jù)未被其它事務(wù)鎖定時(shí),打開事務(wù)處理標(biāo)記,對所述事務(wù)中的待取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系進(jìn)行取消。為了更加清楚的對上述方法進(jìn)行描述,本申請實(shí)施例提供了聯(lián)機(jī)事務(wù)層次處理的結(jié)構(gòu)圖如圖2所示,本申請實(shí)施例提供的聯(lián)機(jī)事務(wù)處理自上而下分為三層最上層為暴露給外部調(diào)用程序的API ;中間層為事務(wù)邏輯控制層,按操作類別分為同步區(qū)與非同步區(qū),同步區(qū)意味著在同一時(shí)間只能有一個(gè)操作進(jìn)行,其他操作在進(jìn)入同步區(qū)之間均處理等待狀態(tài),該機(jī)制利用 Java語言的線程同步鎖定特性實(shí)現(xiàn)。非同步區(qū)的操作則不受限制,在任何時(shí)間均可以進(jìn)行;最下層為存儲(chǔ)數(shù)據(jù)的DataSet操作抽象層,在DataSet中,保存有聯(lián)機(jī)事務(wù)自身的狀態(tài)信息,以及數(shù)據(jù)的事務(wù)狀態(tài)屬性信息。在圖形數(shù)據(jù)庫中,,聯(lián)機(jī)事務(wù)的狀態(tài)數(shù)據(jù)存儲(chǔ)在名稱為graphiC_db_tX_def的 DataSet中,該Datakt的數(shù)據(jù)結(jié)構(gòu)如表1所示
列名稱數(shù)據(jù)類型說明tx noNumber事務(wù)ID,全局唯一的IDis commitNumber該列的值為1或-ι,用于標(biāo)識(shí)事務(wù)是否已提交,當(dāng)值為-1時(shí)表示未提交,當(dāng)值為1 時(shí)表示已提交。is—rollbackNumber該列的值為1或-1,用于標(biāo)識(shí)事務(wù)是否已回滾,當(dāng)值為-1時(shí)表示未回滾,當(dāng)值為1 時(shí)表示已回滾。is—timeoutNumber該列的值為1或-1,用于標(biāo)識(shí)事務(wù)是否已過期,當(dāng)值為-1時(shí)表示尚未過期,當(dāng)值為 1時(shí)表示已過期。start—timeNumber用于記錄該事務(wù)最后一次進(jìn)行操作的時(shí)間,值為1970 年1月1日0時(shí)0分0秒到當(dāng)前時(shí)間的累計(jì)毫秒數(shù)。associate—nodeString該事務(wù)相關(guān)聯(lián)的Node, 當(dāng)開啟事務(wù)后,在事務(wù)中對任何Node進(jìn)行增、刪、改操作后,需將該Node的名稱記錄在當(dāng)前列表中,多個(gè)Node的名稱之間以逗號(hào)進(jìn)行分隔。processingNumber該列的值為1或-1,用于標(biāo)識(shí)該事務(wù)是否有增、刪、 改的操作正在進(jìn)行處理中,當(dāng)值為-1時(shí)表示否,當(dāng)值為1 時(shí)表示正在處理中。在同一事務(wù)中,同一時(shí)間只允許處理一個(gè)操作。表 1在圖形數(shù)據(jù)庫中每一個(gè)Node均有一個(gè)相對應(yīng)的同名的DatMet,數(shù)據(jù)之間的 Relation ff ;|、1 # ^ ^ ^ ^ graphic_db_relation_record_def 白勺 DataSet 巾。3 @ DataSet中均缺省內(nèi)置如下兩個(gè)列,如表2所示
權(quán)利要求
1.一種圖形數(shù)據(jù)庫聯(lián)機(jī)事務(wù)中取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系的方法,其特征在于,包括接收客戶端發(fā)送的事務(wù)取消操作指令,所述操作指令包括事務(wù)編號(hào)及待取消的節(jié)點(diǎn)數(shù)據(jù)關(guān)系;依據(jù)所述事務(wù)編號(hào)查找與其對應(yīng)的事務(wù);當(dāng)所述事務(wù)有效且所述事務(wù)中的操作數(shù)據(jù)未被其它事務(wù)鎖定時(shí),打開事務(wù)處理標(biāo)記, 對所述事務(wù)中的待取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系進(jìn)行取消。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括當(dāng)所述事務(wù)無效時(shí),結(jié)束對所述事務(wù)節(jié)點(diǎn)數(shù)據(jù)關(guān)系的取消操作。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括當(dāng)所述事務(wù)中的操作數(shù)據(jù)被其它事務(wù)鎖定時(shí),將所述事務(wù)節(jié)點(diǎn)數(shù)據(jù)關(guān)系的取消操作處于等待狀態(tài),并判斷所述事務(wù)是否超時(shí),當(dāng)所述事務(wù)超時(shí)時(shí),結(jié)束對所述事務(wù)節(jié)點(diǎn)數(shù)據(jù)關(guān)系的取消操作,否則,重新判斷所述事務(wù)是否有效。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,對所述事務(wù)的待取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系進(jìn)行取消的過程具體為判斷所述節(jié)點(diǎn)數(shù)據(jù)關(guān)系的關(guān)系記錄是否存在,當(dāng)所述關(guān)系記錄不存在時(shí),更新事務(wù)的時(shí)間戳;否則,判斷所述關(guān)系記錄是否為臟數(shù)據(jù);當(dāng)所述關(guān)系記錄為臟數(shù)據(jù)時(shí),刪除所述關(guān)系記錄并更新事務(wù)的時(shí)間戳;當(dāng)所述關(guān)系記錄不是臟數(shù)據(jù)時(shí),標(biāo)記刪除所述關(guān)系記錄并更新事務(wù)的時(shí)間戳。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括當(dāng)事務(wù)提交時(shí),對于所述取消的節(jié)點(diǎn)數(shù)據(jù)關(guān)系的處理過程;具體為接收客戶端發(fā)送的事務(wù)編號(hào);查找所述事務(wù)編號(hào)所對應(yīng)的事務(wù);當(dāng)所述事務(wù)有效時(shí),標(biāo)記所述事務(wù)的提交狀態(tài);解除所述事務(wù)的關(guān)系記錄的鎖定;刪除所述事務(wù)的關(guān)系記錄,完成事務(wù)的提交。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括當(dāng)事務(wù)回滾時(shí),對于所述取消的節(jié)點(diǎn)數(shù)據(jù)關(guān)系的處理過程;具體為接收客戶端發(fā)送的事務(wù)編號(hào); 查找所述事務(wù)編號(hào)所對應(yīng)的事務(wù); 當(dāng)所述事務(wù)有效時(shí),標(biāo)記所述事務(wù)的回滾狀態(tài); 解除所述事務(wù)的關(guān)系記錄的鎖定; 刪除所述事務(wù)記錄,完成事務(wù)的提交。
7.一種圖形數(shù)據(jù)庫聯(lián)機(jī)事務(wù)中取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系的系統(tǒng),其特征在于,包括接收單元,用于接收客戶端發(fā)送的事務(wù)取消操作指令,所述操作指令包括事務(wù)編號(hào)及待取消的節(jié)點(diǎn)數(shù)據(jù)關(guān)系;查找單元,用于依據(jù)所述接收單元接收的事務(wù)編號(hào),查找與所述事務(wù)編號(hào)相對應(yīng)的事務(wù);取消單元,用于當(dāng)所述查找單元查找的事務(wù)有效且所述事務(wù)中的操作數(shù)據(jù)未被其它事務(wù)鎖定時(shí),打開事務(wù)處理標(biāo)記,對所述事務(wù)的待取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系進(jìn)行取消。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述取消單元包括 第一判斷子單元和第二判斷子單元;所述第一判斷子單元用于判斷所述查找單元查找的事務(wù)是否失效; 所述第二判斷子單元 用于判斷所述查找單元查找的事務(wù)中的操作數(shù)據(jù)是否被其它事務(wù)鎖定。
9.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,還包括第一處理單元;所述第一處理單元用于當(dāng)事務(wù)提交時(shí),對所述取消的節(jié)點(diǎn)的數(shù)據(jù)關(guān)系進(jìn)行處理。
10.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,還包括第二處理單元;所述第二處理單元用于當(dāng)事務(wù)回滾時(shí),對所述取消的節(jié)點(diǎn)的數(shù)據(jù)關(guān)系進(jìn)行處理。
全文摘要
本申請公開了一種圖形數(shù)據(jù)庫聯(lián)機(jī)事務(wù)中取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系的方法,包括接收客戶端發(fā)送的事務(wù)取消操作指令,所述操作指令包括事務(wù)編號(hào)及待取消的節(jié)點(diǎn)數(shù)據(jù)關(guān)系;依據(jù)所述事務(wù)編號(hào)查找與其對應(yīng)的事務(wù);當(dāng)所述事務(wù)有效且所述事務(wù)中的操作數(shù)據(jù)未被其它事務(wù)鎖定時(shí),打開事務(wù)處理標(biāo)記,對所述事務(wù)中的待取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系進(jìn)行取消。本申請實(shí)施例提供的取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系的方法及系統(tǒng),在事務(wù)有效且事務(wù)中的操作數(shù)據(jù)未被其它事務(wù)鎖定的前提下,可以對事務(wù)操作過程中各個(gè)階段的待取消節(jié)點(diǎn)數(shù)據(jù)關(guān)系進(jìn)行取消及相應(yīng)的其它操作。
文檔編號(hào)G06F17/30GK102156718SQ20111007446
公開日2011年8月17日 申請日期2011年3月25日 優(yōu)先權(quán)日2011年3月25日
發(fā)明者于洪方, 井衛(wèi)軍, 劉健, 姚福源, 蔣建平, 陳升 申請人:北京世紀(jì)互聯(lián)工程技術(shù)服務(wù)有限公司, 北京云快線軟件服務(wù)有限公司