列式數(shù)據(jù)庫(kù)處理的方法和處理設(shè)備的制作方法
【專利摘要】本發(fā)明實(shí)施例提供一種列式數(shù)據(jù)庫(kù)處理方法,列式數(shù)據(jù)庫(kù)包含了標(biāo)記列和一個(gè)以上的數(shù)據(jù)列,其中,數(shù)據(jù)列按照列存儲(chǔ)的方式存儲(chǔ)具體數(shù)據(jù),標(biāo)記列的每行標(biāo)記位的值用于表示了與標(biāo)記位處于同一行數(shù)據(jù)的有效性,方法包括:接收應(yīng)用程序發(fā)送的查詢請(qǐng)求,查詢請(qǐng)求包含了查詢條件;根據(jù)標(biāo)記列和查詢條件,在一個(gè)以上的數(shù)據(jù)列上進(jìn)行查詢,獲得同時(shí)滿足查詢條件和標(biāo)記列的標(biāo)記位是有效的查詢結(jié)果;向應(yīng)用程序發(fā)送查詢結(jié)果。這樣由于列式數(shù)據(jù)庫(kù)是按照列式存儲(chǔ)的,因此查詢效率將會(huì)顯著提升。
【專利說(shuō)明】列式數(shù)據(jù)庫(kù)處理的方法和處理設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實(shí)施例涉及數(shù)據(jù)庫(kù)技術(shù),尤其涉及一種列式數(shù)據(jù)庫(kù)處理的方法和處理設(shè)備。
【背景技術(shù)】
[0002]列式數(shù)據(jù)庫(kù)是以列相關(guān)存儲(chǔ)架構(gòu)進(jìn)行數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù),每個(gè)列的數(shù)據(jù)獨(dú)立緊密存放,一行數(shù)據(jù)的不同列分別存放在不同的數(shù)據(jù)區(qū)。
[0003]列式數(shù)據(jù)庫(kù)的存儲(chǔ)分為兩個(gè)區(qū)域:行區(qū)和列區(qū)。其中,列區(qū)存儲(chǔ)原始數(shù)據(jù);行區(qū)存儲(chǔ)由數(shù)據(jù)操縱語(yǔ)言(Data Manipulation Language, DML)事務(wù)操作產(chǎn)生的新數(shù)據(jù)。雖然數(shù)據(jù)按列組織,但在實(shí)際要求數(shù)據(jù)是行一致的,因此在做數(shù)據(jù)修改時(shí),涉及到不同列的修改,在這個(gè)過(guò)程中仍然需要在行區(qū)保證事務(wù)的ACID屬性。
[0004]例如,列式數(shù)據(jù)庫(kù)接收一個(gè)更新操作請(qǐng)求,其SQL語(yǔ)句如下:UPDATE TABLEl SETF2=10 WHERE F3〈20,則列式數(shù)據(jù)庫(kù)將執(zhí)行如下操作:
[0005]1、掃描TABLE1,記錄滿足F3〈20條件所在的行號(hào)。
[0006]2、對(duì)該行號(hào)進(jìn)行加排他鎖,使之不能被其他session修改。
[0007]3、將此行號(hào)的所有字段讀取出來(lái),并將F2的值改為10,然后拼成行記錄格式。
[0008]4、將該行記錄格式保存到行存區(qū),本次數(shù)據(jù)更新完成,釋放該行號(hào)的排他鎖。
[0009]由于列式數(shù)據(jù)庫(kù)中,一些數(shù)據(jù)是存儲(chǔ)在行區(qū)上的,因此當(dāng)列式數(shù)據(jù)庫(kù)接收到查詢請(qǐng)求時(shí),需要判斷session的需要逐條判斷此記錄是否提交,例如:SELECT F2 FROM TABLElWHERE F3〈20的步驟為:
[0010]1、掃描TABLEl列區(qū),記錄滿足F3〈20條件的所在的行號(hào)。
[0011]2、判斷上述記錄的行號(hào)是否已被修改,如果記錄的行號(hào)沒(méi)有被修改,則在列區(qū)讀取F2的值,如果該記錄的行號(hào)已經(jīng)被修改,則需要到行區(qū)讀取已經(jīng)被修改的新記錄;
[0012]3、在行區(qū)判斷最新版本是否是本session修改的,是則返回最新版本,不是則返回上個(gè)已提交版本。
[0013]4、列區(qū)掃描完成之后,掃描行區(qū)部分新增數(shù)據(jù),確定是否有滿足F3〈20條件,如果有,則輸出F2的值。
[0014]從上述論述可知,目前的現(xiàn)有技術(shù)的列式數(shù)據(jù)庫(kù)的事務(wù)處理必須同時(shí)涉及到行區(qū)和列區(qū),當(dāng)在列式數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)查詢時(shí),由于列式數(shù)據(jù)庫(kù)有行區(qū)的存在,需要逐行掃描行區(qū)的數(shù)據(jù),這樣會(huì)導(dǎo)致列式數(shù)據(jù)庫(kù)的查詢效率降低,特別是大數(shù)據(jù)庫(kù)容量情況,查詢效率將下降的非常多。
【發(fā)明內(nèi)容】
[0015]本發(fā)明實(shí)施例提供一種列式數(shù)據(jù)庫(kù)處理的方法和處理設(shè)備,解決了上述現(xiàn)有技術(shù)中,列式數(shù)據(jù)庫(kù)的事務(wù)處理必須涉及到行區(qū)的技術(shù)問(wèn)題。
[0016]第一個(gè)方面,本發(fā)明提供了一種處理設(shè)備,包括:[0017]接口模塊,用于接收應(yīng)用程序發(fā)送的查詢請(qǐng)求,所述查詢請(qǐng)求包含了對(duì)列式數(shù)據(jù)庫(kù)的查詢條件,并將所述查詢請(qǐng)求發(fā)送給查詢模塊,其中所述數(shù)據(jù)列按照列存儲(chǔ)的方式存儲(chǔ)具體數(shù)據(jù),所述列式數(shù)據(jù)庫(kù)包含了標(biāo)記列和一個(gè)以上的數(shù)據(jù)列,其中,標(biāo)記列的每行標(biāo)記位的值用于表示與所述標(biāo)記位處于同一行數(shù)據(jù)的有效性;
[0018]查詢模塊,用于根據(jù)所述標(biāo)記列和所述查詢條件,在所述一個(gè)以上的數(shù)據(jù)列上進(jìn)行查詢,獲得同時(shí)滿足所述查詢條件和所述標(biāo)記列的標(biāo)記位是有效的查詢結(jié)果;并將所述查詢結(jié)果發(fā)送給所述接口模塊;
[0019]所述接口模塊,還用于接收所述查詢模塊發(fā)送的查詢結(jié)果,向所述應(yīng)用程序發(fā)送所述查詢結(jié)果。
[0020]在第一個(gè)方面的第一種可能的實(shí)現(xiàn)方式中,查詢模塊包括第一生成單元,第二生成單元和獲取單元,其中,第一生成單元,用于根據(jù)查詢條件,掃描查詢條件所涉及到的數(shù)據(jù)列,并生成一個(gè)以上的條件位圖,其中,涉及到的數(shù)據(jù)列中滿足的查詢條件的在條件位圖相應(yīng)行的值是有效的,涉及到的數(shù)據(jù)列中不滿足的查詢條件的在條件位圖相應(yīng)行的值是無(wú)效的;第二生成單元,用于根據(jù)標(biāo)記列和一個(gè)以上的條件位圖,生成查詢位圖,其中,當(dāng)復(fù)制的標(biāo)記列和條件位圖的同一行的值均為有效值時(shí),查詢位圖同一行的值是有效的,當(dāng)標(biāo)記列和條件位圖的同一行的值不全是有效值時(shí),查詢位圖同一行的值是無(wú)效的;獲取單元,用于根據(jù)查詢位圖,獲得滿足查詢條件的和標(biāo)記列的標(biāo)記位是有效的查詢結(jié)果。
[0021]結(jié)合在第一個(gè)方面的第一種可能的實(shí)現(xiàn)方式中,第二種可能實(shí)現(xiàn)方式為:查詢模塊還包括確定單元,其中,確定單元,用于確定存在事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改,事務(wù)為查詢請(qǐng)求所在的事務(wù),在臨時(shí)存儲(chǔ)區(qū)域中存儲(chǔ)標(biāo)記列,將存儲(chǔ)的標(biāo)記列作為查詢請(qǐng)求的私有標(biāo)記列,并根據(jù)事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改,更新私有標(biāo)記列,使得更新后的私有標(biāo)記列的被修改的標(biāo)記位的值表示了事務(wù)中當(dāng)前標(biāo)記位對(duì)應(yīng)的數(shù)據(jù)的有效性;第二生成單元,具體用于根據(jù)更新后的私有標(biāo)記列和一個(gè)以上的條件位圖,生成查詢位圖,其中,當(dāng)更新后的私有標(biāo)記列和條件位圖的同一行的值均為有效值時(shí),查詢位圖同一行的值是有效的,當(dāng)更新后的私有標(biāo)記列和條件位圖的同一行的值不全是有效值時(shí),查詢位圖同一行的值是無(wú)效的;獲取單元,具體用于根據(jù)查詢位圖,獲得滿足查詢條件和更新后的私有標(biāo)記列的標(biāo)記位是有效的的查詢結(jié)果。
[0022]結(jié)合在第一個(gè)方面的第一種可能的實(shí)現(xiàn)方式中,第三種可能的實(shí)現(xiàn)方式為:確定單元,還用于確定不存在事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改時(shí),事務(wù)為查詢請(qǐng)求所在的事務(wù),當(dāng)臨時(shí)存儲(chǔ)區(qū)域中未存儲(chǔ)共享標(biāo)記列或者當(dāng)臨時(shí)存儲(chǔ)區(qū)域中已存儲(chǔ)的共享標(biāo)記列的版本號(hào)與表頭中的標(biāo)記列的版本號(hào)不相同時(shí),將數(shù)據(jù)存儲(chǔ)區(qū)域中的標(biāo)記列版本號(hào)和標(biāo)記列存儲(chǔ)在臨時(shí)存儲(chǔ)區(qū)域中,將存儲(chǔ)的標(biāo)記列作為另一個(gè)共享標(biāo)記列,并設(shè)置另一個(gè)共享標(biāo)記列的版本號(hào)與查詢請(qǐng)求的對(duì)應(yīng)關(guān)系,如果已存儲(chǔ)的共享標(biāo)記列的版本號(hào)與表頭中的標(biāo)記列的版本號(hào)相同,設(shè)置已存儲(chǔ)的共享標(biāo)記列的版本號(hào)與查詢請(qǐng)求的對(duì)應(yīng)關(guān)系;第二生成單元,具體用于根據(jù)共享標(biāo)記列的版本號(hào)與查詢請(qǐng)求的對(duì)應(yīng)關(guān)系,在臨時(shí)存儲(chǔ)區(qū)域中確定查詢請(qǐng)求對(duì)應(yīng)的共享標(biāo)記列,根據(jù)查詢請(qǐng)求對(duì)應(yīng)的共享標(biāo)記列和一個(gè)以上的條件位圖,生成查詢位圖,其中,當(dāng)查詢請(qǐng)求對(duì)應(yīng)的共享的標(biāo)記列和條件位圖的同一行的值均為有效值時(shí),查詢位圖同一行的值是有效的,當(dāng)查詢請(qǐng)求對(duì)應(yīng)的標(biāo)記列和條件位圖的同一行的值不全是有效值時(shí),查詢位圖同一行的值是無(wú)效的;獲取單元,具體用于根據(jù)查詢位圖,獲得滿足查詢條件和查詢請(qǐng)求對(duì)應(yīng)的標(biāo)記列的標(biāo)記位是有效的的查詢結(jié)果。
[0023]第二個(gè)方面,本發(fā)明還提供了另一種處理設(shè)備,包括接口模塊,修改模塊,記錄模塊和提交模塊,其中,接口模塊,用于在一個(gè)事務(wù)中,接收應(yīng)用程序發(fā)送的修改請(qǐng)求,修改請(qǐng)求包含了對(duì)列式數(shù)據(jù)庫(kù)的修改條件,并將修改請(qǐng)求發(fā)送給修改模塊,其中數(shù)據(jù)列按照列存儲(chǔ)的方式存儲(chǔ)具體數(shù)據(jù),列式數(shù)據(jù)庫(kù)包含了標(biāo)記列和一個(gè)以上的數(shù)據(jù)列,其中,標(biāo)記列的每行標(biāo)記位的值用于表示與標(biāo)記位處于同一行數(shù)據(jù)的有效性;修改模塊,用于根據(jù)修改條件,對(duì)標(biāo)記列和一個(gè)以上的數(shù)據(jù)列進(jìn)行修改處理;記錄模塊,用于記錄事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改;提交模塊,用于提交事務(wù)時(shí),按照記錄的事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改,對(duì)標(biāo)記列進(jìn)行相應(yīng)修改,使得修改后的標(biāo)記列每行標(biāo)記位的值表示了在修改處理后與標(biāo)記位處于同一行的數(shù)據(jù)的有效性。
[0024]第三個(gè)方面,本發(fā)明還提供了一種列式數(shù)據(jù)庫(kù)處理方法,列式數(shù)據(jù)庫(kù)包含了標(biāo)記列和一個(gè)以上的數(shù)據(jù)列,其中,數(shù)據(jù)列按照列存儲(chǔ)的方式存儲(chǔ)具體數(shù)據(jù),標(biāo)記列的每行標(biāo)記位的值用于表示了與標(biāo)記位處于同一行數(shù)據(jù)的有效性,方法包括:接收應(yīng)用程序發(fā)送的查詢請(qǐng)求,查詢請(qǐng)求包含了查詢條件;根據(jù)標(biāo)記列和查詢條件,在一個(gè)以上的數(shù)據(jù)列上進(jìn)行查詢,獲得同時(shí)滿足查詢條件和標(biāo)記列的標(biāo)記位是有效的查詢結(jié)果;向應(yīng)用程序發(fā)送查詢結(jié)果。
[0025]在第三方面的第一種可能的實(shí)現(xiàn)方式中,根據(jù)標(biāo)記列和查詢條件,在一個(gè)以上的數(shù)據(jù)列上進(jìn)行查詢,獲得同時(shí)滿足查詢條件和標(biāo)記列的標(biāo)記位是有效的查詢結(jié)果,具體包括:根據(jù)查詢條件,掃描查詢條件所涉及到的數(shù)據(jù)列,并生成一個(gè)以上的條件位圖,其中,涉及到的數(shù)據(jù)列中滿足的查詢條件的在條件位圖相應(yīng)行的值是有效的,涉及到的數(shù)據(jù)列中不滿足的查詢條件的在條件位圖相應(yīng)行的值是無(wú)效的;根據(jù)標(biāo)記列和一個(gè)以上的條件位圖,生成查詢位圖,其中,當(dāng)標(biāo)記列和條件位圖的同一行的值均為有效值時(shí),查詢位圖同一行的值是有效的,當(dāng)標(biāo)記列和條件位圖的同一行的值不全是有效值時(shí),查詢位圖同一行的值是無(wú)效的;根據(jù)查詢位圖,獲得滿足查詢條件和標(biāo)記列的標(biāo)記位是有效的查詢結(jié)果。
[0026]結(jié)合第三方面的第一種可能的實(shí)現(xiàn)方式中,第二種可能的實(shí)現(xiàn)方式,在根據(jù)查詢條件,掃描查詢條件所涉及到的數(shù)據(jù)列之前,還包括:確定存在事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改,事務(wù)為查詢請(qǐng)求所在的事務(wù),在臨時(shí)存儲(chǔ)區(qū)域中存儲(chǔ)標(biāo)記列,將存儲(chǔ)的標(biāo)記列作為查詢請(qǐng)求的私有標(biāo)記列,并根據(jù)事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改,更新私有標(biāo)記列,使得更新后的私有標(biāo)記列的被修改的標(biāo)記位的值表示了事務(wù)中當(dāng)前標(biāo)記位對(duì)應(yīng)的數(shù)據(jù)的有效性;根據(jù)標(biāo)記列和一個(gè)以上的條件位圖,生成查詢位圖,其中,當(dāng)標(biāo)記列和條件位圖的同一行的值均為有效值時(shí),查詢位圖同一行的值是有效的,當(dāng)標(biāo)記列和條件位圖的同一行的值不全是有效值時(shí),查詢位圖同一行的值是無(wú)效的;根據(jù)查詢位圖,獲得滿足查詢條件和標(biāo)記列的標(biāo)記位是有效的的查詢結(jié)果,具體為:根據(jù)更新后的私有標(biāo)記列和一個(gè)以上的條件位圖,生成查詢位圖,其中,當(dāng)更新后的私有標(biāo)記列和條件位圖的同一行的值均為有效值時(shí),查詢位圖同一行的值是有效的,當(dāng)更新后的私有標(biāo)記列和條件位圖的同一行的值不全是有效值時(shí),查詢位圖同一行的值是無(wú)效的;根據(jù)查詢位圖,獲得滿足查詢條件和更新后的私有標(biāo)記列的標(biāo)記位是有效的的查詢結(jié)果。
[0027]結(jié)合第三方面的第一種可能的實(shí)現(xiàn)方式中,第三種可能的實(shí)現(xiàn)方式為,在根據(jù)查詢條件,掃描查詢條件所涉及到的數(shù)據(jù)列之前,還包括:確定不存在事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改時(shí),事務(wù)為查詢請(qǐng)求所在的事務(wù),當(dāng)臨時(shí)存儲(chǔ)區(qū)域中未存儲(chǔ)共享標(biāo)記列或者當(dāng)臨時(shí)存儲(chǔ)區(qū)域中已存儲(chǔ)的共享標(biāo)記列的版本號(hào)與表頭中的標(biāo)記列的版本號(hào)不相同時(shí),將數(shù)據(jù)存儲(chǔ)區(qū)域中的標(biāo)記列版本號(hào)和標(biāo)記列存儲(chǔ)在臨時(shí)存儲(chǔ)區(qū)域中,將存儲(chǔ)的標(biāo)記列作為另一個(gè)共享標(biāo)記列,并設(shè)置另一個(gè)共享標(biāo)記列的版本號(hào)與查詢請(qǐng)求的對(duì)應(yīng)關(guān)系,如果已存儲(chǔ)的共享標(biāo)記列的版本號(hào)與表頭中的標(biāo)記列的版本號(hào)相同,設(shè)置已存儲(chǔ)的共享標(biāo)記列的版本號(hào)與查詢請(qǐng)求的對(duì)應(yīng)關(guān)系;
[0028]根據(jù)標(biāo)記列和一個(gè)以上的條件位圖,生成查詢位圖,其中,當(dāng)標(biāo)記列和條件位圖的同一行的值均為有效值時(shí),查詢位圖同一行的值是有效的,當(dāng)標(biāo)記列和條件位圖的同一行的值不全是有效值時(shí),查詢位圖同一行的值是無(wú)效的;根據(jù)查詢位圖,獲得滿足查詢條件和標(biāo)記列的標(biāo)記位是有效的的查詢結(jié)果,具體為:根據(jù)共享標(biāo)記列的版本號(hào)與查詢請(qǐng)求的對(duì)應(yīng)關(guān)系,在臨時(shí)存儲(chǔ)區(qū)域中確定查詢請(qǐng)求對(duì)應(yīng)的共享標(biāo)記列,根據(jù)查詢請(qǐng)求對(duì)應(yīng)的共享標(biāo)記列和一個(gè)以上的條件位圖,生成查詢位圖,其中,當(dāng)查詢請(qǐng)求對(duì)應(yīng)的共享的標(biāo)記列和條件位圖的同一行的值均為有效值時(shí),查詢位圖同一行的值是有效的,當(dāng)查詢請(qǐng)求對(duì)應(yīng)的標(biāo)記列和條件位圖的同一行的值不全是有效值時(shí),查詢位圖同一行的值是無(wú)效的;根據(jù)查詢位圖,獲得滿足查詢條件和查詢請(qǐng)求對(duì)應(yīng)的標(biāo)記列的標(biāo)記位是有效的的查詢結(jié)果。
[0029]第四個(gè)方面,一種列式數(shù)據(jù)庫(kù)處理方法,列式數(shù)據(jù)庫(kù)包含了標(biāo)記列和一個(gè)以上的數(shù)據(jù)列,其中,數(shù)據(jù)列按照列存儲(chǔ)的方式存儲(chǔ)具體數(shù)據(jù),標(biāo)記列的每行標(biāo)記位的值用于表示了與標(biāo)記位處于同一行數(shù)據(jù)的有效性,方法包括:在一個(gè)事務(wù)中,接收應(yīng)用程序發(fā)送的修改請(qǐng)求,修改請(qǐng)求包含了修改條件;根據(jù)修改條件,對(duì)標(biāo)記列和一個(gè)以上的數(shù)據(jù)列進(jìn)行修改處理,記錄事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改;提交事務(wù)時(shí),按照記錄的事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改,對(duì)標(biāo)記列進(jìn)行相應(yīng)修改,使得修改后的標(biāo)記列每行標(biāo)記位的值表示了在修改處理后與標(biāo)記位處于同一行的數(shù)據(jù)的有效性。
[0030]第五個(gè)方面,本發(fā)明還提供了一種處理設(shè)備,包括收發(fā)器和處理器,其中,收發(fā)器用于接收應(yīng)用程序發(fā)送的查詢請(qǐng)求,查詢請(qǐng)求包含了查詢條件,并將查詢請(qǐng)求發(fā)送給處理器,以及接收處理器發(fā)送的查詢結(jié)果,其中列式數(shù)據(jù)庫(kù)包含了標(biāo)記列和一個(gè)以上的數(shù)據(jù)列,其中,數(shù)據(jù)列按照列存儲(chǔ)的方式存儲(chǔ)具體數(shù)據(jù),標(biāo)記列的每行標(biāo)記位的值用于表示了與標(biāo)記位處于同一行數(shù)據(jù)的有效性;處理器,用于接收收發(fā)器發(fā)送的查詢請(qǐng)求,根據(jù)標(biāo)記列和查詢條件,在一個(gè)以上的數(shù)據(jù)列上進(jìn)行查詢,獲得同時(shí)滿足查詢條件和標(biāo)記列的標(biāo)記位是有效的查詢結(jié)果,并將查詢結(jié)果發(fā)送給收發(fā)器。
[0031]在第五方面的第一種可能的實(shí)現(xiàn)方式中,處理器,具體用于根據(jù)標(biāo)記列和查詢條件,在一個(gè)以上的數(shù)據(jù)列上進(jìn)行查詢,獲得同時(shí)滿足查詢條件和標(biāo)記列的標(biāo)記位是有效的查詢結(jié)果,具體包括:根據(jù)查詢條件,掃描查詢條件所涉及到的數(shù)據(jù)列,并生成一個(gè)以上的條件位圖,其中,涉及到的數(shù)據(jù)列中滿足的查詢條件的在條件位圖相應(yīng)行的值是有效的,涉及到的數(shù)據(jù)列中不滿足的查詢條件的在條件位圖相應(yīng)行的值是無(wú)效的;根據(jù)標(biāo)記列和一個(gè)以上的條件位圖,生成查詢位圖,其中,當(dāng)標(biāo)記列和條件位圖的同一行的值均為有效值時(shí),查詢位圖同一行的值是有效的,當(dāng)標(biāo)記列和條件位圖的同一行的值不全是有效值時(shí),查詢位圖同一行的值是無(wú)效的;根據(jù)查詢位圖,獲得滿足查詢條件和標(biāo)記列的標(biāo)記位是有效的查詢結(jié)果。
[0032]結(jié)合第五方面的第一種可能的實(shí)現(xiàn)方式中,第二種可能的實(shí)現(xiàn)方式,處理器,還用于在根據(jù)查詢條件,掃描查詢條件所涉及到的數(shù)據(jù)列之前,確定存在事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改,事務(wù)為查詢請(qǐng)求所在的事務(wù),在臨時(shí)存儲(chǔ)區(qū)域中存儲(chǔ)標(biāo)記列,將存儲(chǔ)的標(biāo)記列作為查詢請(qǐng)求的私有標(biāo)記列,并根據(jù)事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改,更新私有標(biāo)記列,使得更新后的私有標(biāo)記列的被修改的標(biāo)記位的值表示了事務(wù)中當(dāng)前標(biāo)記位對(duì)應(yīng)的數(shù)據(jù)的有效性;處理器進(jìn)一步用于根據(jù)更新后的私有標(biāo)記列和一個(gè)以上的條件位圖,生成查詢位圖,其中,當(dāng)更新后的私有標(biāo)記列和條件位圖的同一行的值均為有效值時(shí),查詢位圖同一行的值是有效的,當(dāng)更新后的私有標(biāo)記列和條件位圖的同一行的值不全是有效值時(shí),查詢位圖同一行的值是無(wú)效的;根據(jù)查詢位圖,獲得滿足查詢條件和更新后的私有標(biāo)記列的標(biāo)記位是有效的的查詢結(jié)果。
[0033]結(jié)合第五方面的第一種可能的實(shí)現(xiàn)方式中,第三種可能的實(shí)現(xiàn)方式為,處理器,還用于在根據(jù)查詢條件,掃描查詢條件所涉及到的數(shù)據(jù)列之前,還包括:確定不存在事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改時(shí),事務(wù)為查詢請(qǐng)求所在的事務(wù),當(dāng)臨時(shí)存儲(chǔ)區(qū)域中未存儲(chǔ)共享標(biāo)記列或者當(dāng)臨時(shí)存儲(chǔ)區(qū)域中已存儲(chǔ)的共享標(biāo)記列的版本號(hào)與表頭中的標(biāo)記列的版本號(hào)不相同時(shí),將數(shù)據(jù)存儲(chǔ)區(qū)域中的標(biāo)記列版本號(hào)和標(biāo)記列存儲(chǔ)在臨時(shí)存儲(chǔ)區(qū)域中,將存儲(chǔ)的標(biāo)記列作為另一個(gè)共享標(biāo)記列,并設(shè)置另一個(gè)共享標(biāo)記列的版本號(hào)與查詢請(qǐng)求的對(duì)應(yīng)關(guān)系,如果已存儲(chǔ)的共享標(biāo)記列的版本號(hào)與表頭中的標(biāo)記列的版本號(hào)相同,設(shè)置已存儲(chǔ)的共享標(biāo)記列的版本號(hào)與查詢請(qǐng)求的對(duì)應(yīng)關(guān)系;處理器進(jìn)一步用于根據(jù)共享標(biāo)記列的版本號(hào)與查詢請(qǐng)求的對(duì)應(yīng)關(guān)系,在臨時(shí)存儲(chǔ)區(qū)域中確定查詢請(qǐng)求對(duì)應(yīng)的共享標(biāo)記列,根據(jù)查詢請(qǐng)求對(duì)應(yīng)的共享標(biāo)記列和一個(gè)以上的條件位圖,生成查詢位圖,其中,當(dāng)查詢請(qǐng)求對(duì)應(yīng)的共享的標(biāo)記列和條件位圖的同一行的值均為有效值時(shí),查詢位圖同一行的值是有效的,當(dāng)查詢請(qǐng)求對(duì)應(yīng)的標(biāo)記列和條件位圖的同一行的值不全是有效值時(shí),查詢位圖同一行的值是無(wú)效的;根據(jù)查詢位圖,獲得滿足查詢條件和查詢請(qǐng)求對(duì)應(yīng)的標(biāo)記列的標(biāo)記位是有效的的查詢結(jié)果。
[0034]第六個(gè)方面,一種處理設(shè)備,包括收發(fā)器和處理器,其中,收發(fā)器用于在一個(gè)事務(wù)中,接收應(yīng)用程序發(fā)送的修改請(qǐng)求,修改請(qǐng)求包含了修改條件,并將修改請(qǐng)求發(fā)送給處理器,以及接收處理器發(fā)送的修改結(jié)果,其中列式數(shù)據(jù)庫(kù)包含了標(biāo)記列和一個(gè)以上的數(shù)據(jù)列,其中,數(shù)據(jù)列按照列存儲(chǔ)的方式存儲(chǔ)具體數(shù)據(jù),標(biāo)記列的每行標(biāo)記位的值用于表示了與標(biāo)記位處于同一行數(shù)據(jù)的有效性;處理器,用于接收收發(fā)器發(fā)送的修改請(qǐng)求,根據(jù)修改條件,對(duì)標(biāo)記列和一個(gè)以上的數(shù)據(jù)列進(jìn)行修改處理,記錄事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改;提交事務(wù)時(shí),按照記錄的事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改,對(duì)標(biāo)記列進(jìn)行相應(yīng)修改,使得修改后的標(biāo)記列每行標(biāo)記位的值表示了在修改處理后與標(biāo)記位處于同一行的數(shù)據(jù)的有效性。
[0035]在本發(fā)明實(shí)施例中,在列式數(shù)據(jù)庫(kù)中增加一列專門用于表示數(shù)據(jù)列各行數(shù)值的有效性的標(biāo)記列,這樣就可以通過(guò)標(biāo)記列,可以實(shí)現(xiàn)所有的數(shù)據(jù)都被存儲(chǔ)在列區(qū),而無(wú)需一個(gè)專門的的行區(qū)存儲(chǔ)數(shù)據(jù)修改時(shí)的數(shù)據(jù),這樣進(jìn)行數(shù)據(jù)查詢時(shí),就可以完全在列區(qū)進(jìn)行數(shù)據(jù)查詢,而無(wú)需到行區(qū)中進(jìn)行查詢了,提高了數(shù)據(jù)查詢的效率,特別在大數(shù)據(jù)的應(yīng)用,查詢效率有顯著的提升。
【專利附圖】
【附圖說(shuō)明】
[0036]為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例。
[0037]圖1是根據(jù)本發(fā)明實(shí)施例的一個(gè)網(wǎng)絡(luò)環(huán)境示意圖;
[0038]圖2是根據(jù)本發(fā)明實(shí)施例的另一個(gè)網(wǎng)絡(luò)環(huán)境示意圖;
[0039]圖3是根據(jù)本發(fā)明實(shí)施例的另一個(gè)處理設(shè)備的示意性框圖;
[0040]圖4是根據(jù)本發(fā)明實(shí)施例的一個(gè)處理設(shè)備的示意性框圖;
[0041]圖5是根據(jù)本發(fā)明實(shí)施例的另一個(gè)處理設(shè)備的示意性框圖;
[0042]圖6是根據(jù)本發(fā)明實(shí)施例的另一個(gè)處理設(shè)備的結(jié)構(gòu)示意性框圖;
[0043]圖7是根據(jù)本發(fā)明實(shí)施例的又一個(gè)處理設(shè)備的結(jié)構(gòu)示意性框圖;
[0044]圖8是根據(jù)本發(fā)明實(shí)施例的一種列式數(shù)據(jù)庫(kù)處理方法的流程圖;
[0045]圖9是根據(jù)本發(fā)明實(shí)施例的另一種列式數(shù)據(jù)庫(kù)處理方法的流程圖;
[0046]圖10是根據(jù)本發(fā)明實(shí)施例的列式數(shù)據(jù)庫(kù)查詢方法的流程圖;
[0047]圖11是根據(jù)本發(fā)明實(shí)施例的條件位圖與標(biāo)記列與運(yùn)算示意圖;
[0048]圖12是根據(jù)本發(fā)明實(shí)施例的列式數(shù)據(jù)庫(kù)插入方法的流程圖;
[0049]圖13是根據(jù)本發(fā)明實(shí)施例的列式數(shù)據(jù)庫(kù)更新方法的流程圖;
[0050]圖14是根據(jù)本發(fā)明實(shí)施例的列式數(shù)據(jù)庫(kù)刪除方法的流程圖。
【具體實(shí)施方式】
[0051]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0052]首先介紹本發(fā)明實(shí)施例所提出的列式存儲(chǔ)的架構(gòu),列式數(shù)據(jù)庫(kù)中將數(shù)據(jù)和表頭分開(kāi)存儲(chǔ),表頭中包括了各個(gè)列的屬性和當(dāng)前記錄數(shù),屬性可以包括該列的名稱,該列數(shù)值的字段類型和該列的起始地址等,如表1為一個(gè)表頭,該表頭的列名、字段屬性和該列的起始地址,其中列名如行號(hào),標(biāo)記,F(xiàn)2和F3,各個(gè)列的數(shù)值字段屬性為整型、字符型和長(zhǎng)整型等,該列的起始地址,用于當(dāng)進(jìn)行數(shù)據(jù)掃描時(shí),如:查詢,更新和刪除等,從該起始地址進(jìn)行掃描讀取數(shù)據(jù),掃描至當(dāng)前記錄數(shù)為止。另外,在標(biāo)記列中還記錄當(dāng)前標(biāo)記列的版本號(hào),當(dāng)標(biāo)記列每次更新一次,標(biāo)記列的版本號(hào)都會(huì)更新一次,通常的標(biāo)記列的版本號(hào)可以是連續(xù)遞增的數(shù)字或字母加連續(xù)遞增的數(shù)字,例如:當(dāng)前標(biāo)記列的版本是vl,當(dāng)標(biāo)記列被更新一次后,該標(biāo)記列的版本號(hào)將被更新為v2。當(dāng)前記錄數(shù)記錄當(dāng)前表有多少行數(shù)的值,例如當(dāng)前如表1所示,有4行數(shù)據(jù),那么此時(shí)當(dāng)前記錄數(shù)即為4。
【權(quán)利要求】
1.一種處理設(shè)備,其特征在于,包括: 接口模塊,用于接收應(yīng)用程序發(fā)送的查詢請(qǐng)求,所述查詢請(qǐng)求包含了對(duì)列式數(shù)據(jù)庫(kù)的查詢條件,并將所述查詢請(qǐng)求發(fā)送給查詢模塊,其中所述數(shù)據(jù)列按照列存儲(chǔ)的方式存儲(chǔ)具體數(shù)據(jù),所述列式數(shù)據(jù)庫(kù)包含了標(biāo)記列和一個(gè)以上的數(shù)據(jù)列,其中,標(biāo)記列的每行標(biāo)記位的值用于表示與所述標(biāo)記位處于同一行數(shù)據(jù)的有效性; 查詢模塊,用于根據(jù)所述標(biāo)記列和所述查詢條件,在所述一個(gè)以上的數(shù)據(jù)列上進(jìn)行查詢,獲得同時(shí)滿足所述查詢條件和所述標(biāo)記列的標(biāo)記位是有效的查詢結(jié)果;并將所述查詢結(jié)果發(fā)送給所述接口模塊; 所述接口模塊,還用于接收所述查詢模塊發(fā)送的查詢結(jié)果,向所述應(yīng)用程序發(fā)送所述查詢結(jié)果。
2.如權(quán)利要求1所述的處理設(shè)備,其特征在于,所述查詢模塊包括第一生成單元,第二生成單元和獲取單元,其中, 所述第一生成單元,用于根據(jù)所述查詢條件,掃描所述查詢條件所涉及到的數(shù)據(jù)列,并生成一個(gè)以上的條件位圖,其中,所述涉及到的數(shù)據(jù)列中滿足的查詢條件的在所述條件位圖相應(yīng)行的值是有效的,所述涉及到的數(shù)據(jù)列中不滿足的查詢條件的在所述條件位圖相應(yīng)行的值是無(wú)效的; 所述第二生成單元,用于根據(jù)所述標(biāo)記列和所述一個(gè)以上的條件位圖,生成查詢位圖,其中,當(dāng)所述復(fù)制的標(biāo)記列和所述條件位圖的同一行的值均為有效值時(shí),所述查詢位圖同一行的值是有效的,當(dāng)所述標(biāo)記列和所述條件位圖的同一行的值不全是有效值時(shí),所述查詢位圖同一行的值是無(wú)效的; 所述獲取單元,用于根據(jù)所述查詢位圖,獲得滿足所述查詢條件的和所述標(biāo)記列的標(biāo)記位是有效的查詢結(jié)果。`
3.如權(quán)利要求2所述的處理設(shè)備,其特征在于,所述第二生成單元,具體用于當(dāng)所述標(biāo)記列為位圖,將所述標(biāo)記列和所述一個(gè)以上的條件位圖進(jìn)行相與運(yùn)算,生成查詢位圖,其中,所述標(biāo)記列的標(biāo)記位的值,條件位圖的每行的值,以及查詢位圖每行的值為O或I。
4.如權(quán)利要求2所述的處理設(shè)備,其特征在于,所述查詢模塊還包括確定單元,其中, 所述確定單元,用于確定存在事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改,所述事務(wù)為所述查詢請(qǐng)求所在的事務(wù),在臨時(shí)存儲(chǔ)區(qū)域中存儲(chǔ)所述標(biāo)記列,將所述存儲(chǔ)的標(biāo)記列作為所述查詢請(qǐng)求的私有標(biāo)記列,并根據(jù)所述事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改,更新所述私有標(biāo)記列,使得所述更新后的私有標(biāo)記列的被修改的標(biāo)記位的值表示了所述事務(wù)中當(dāng)前所述標(biāo)記位對(duì)應(yīng)的數(shù)據(jù)的有效性; 所述第二生成單元,具體用于根據(jù)所述更新后的私有標(biāo)記列和所述一個(gè)以上的條件位圖,生成查詢位圖,其中,當(dāng)所述更新后的私有標(biāo)記列和所述條件位圖的同一行的值均為有效值時(shí),所述查詢位圖同一行的值是有效的,當(dāng)所述更新后的私有標(biāo)記列和所述條件位圖的同一行的值不全是有效值時(shí),所述查詢位圖同一行的值是無(wú)效的; 所述獲取單元,具體用于根據(jù)所述查詢位圖,獲得滿足所述查詢條件和所述更新后的私有標(biāo)記列的標(biāo)記位是有效的的查詢結(jié)果。
5.如權(quán)利要求2所述的處理設(shè)備,其特征在于,所述查詢模塊還包括確定單元,其中,所述確定單元,還用于確定不存在事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改時(shí),所述事務(wù)為所述查詢請(qǐng)求所在的事務(wù),當(dāng)臨時(shí)存儲(chǔ)區(qū)域中未存儲(chǔ)共享標(biāo)記列或者當(dāng)臨時(shí)存儲(chǔ)區(qū)域中已存儲(chǔ)的共享標(biāo)記列的版本號(hào)與表頭中的標(biāo)記列的版本號(hào)不相同時(shí),將數(shù)據(jù)存儲(chǔ)區(qū)域中的標(biāo)記列版本號(hào)和標(biāo)記列存儲(chǔ)在臨時(shí)存儲(chǔ)區(qū)域中,將所述存儲(chǔ)在臨時(shí)存儲(chǔ)區(qū)域中的標(biāo)記列作為另一個(gè)共享標(biāo)記列,并設(shè)置所述另一個(gè)共享標(biāo)記列的版本號(hào)與所述查詢請(qǐng)求的對(duì)應(yīng)關(guān)系,如果所述已存儲(chǔ)的共享標(biāo)記列的版本號(hào)與表頭中的標(biāo)記列的版本號(hào)相同,設(shè)置所述已存儲(chǔ)的共享標(biāo)記列的版本號(hào)與所述查詢請(qǐng)求的對(duì)應(yīng)關(guān)系; 所述第二生成單元,具體用于根據(jù)共享標(biāo)記列的版本號(hào)與所述查詢請(qǐng)求的對(duì)應(yīng)關(guān)系,在臨時(shí)存儲(chǔ)區(qū)域中確定所述查詢請(qǐng)求對(duì)應(yīng)的共享標(biāo)記列,根據(jù)所述查詢請(qǐng)求對(duì)應(yīng)的共享標(biāo)記列和所述一個(gè)以上的條件位圖,生成查詢位圖,其中,當(dāng)所述查詢請(qǐng)求對(duì)應(yīng)的共享的標(biāo)記列和所述條件位圖的同一行的值均為有效值時(shí),所述查詢位圖同一行的值是有效的,當(dāng)所述查詢請(qǐng)求對(duì)應(yīng)的標(biāo)記列和所述條件位圖的同一行的值不全是有效值時(shí),所述查詢位圖同一行的值是無(wú)效的; 所述獲取單元,具體用于根據(jù)所述查詢位圖,獲得滿足所述查詢條件和所述查詢請(qǐng)求對(duì)應(yīng)的標(biāo)記列的標(biāo)記位是有效的的查詢結(jié)果。
6.如權(quán)利要求4或5所述的處理設(shè)備,其特征在于,所述查詢模塊還包括鎖處理單元,用于在所述復(fù)制標(biāo)記列之前,對(duì)所述標(biāo)記列加排他鎖,在所述復(fù)制標(biāo)記列之后,對(duì)所述標(biāo)記列解排他鎖。
7.如權(quán)利要求1所述的處理設(shè)備,其特征在于,還包括:修改模塊,記錄模塊和提交模塊;其中, 所述接口模塊,還用于在一個(gè)事務(wù)中,接收應(yīng)用程序發(fā)送的修改請(qǐng)求,所述修改請(qǐng)求包含了修改條件,并將修改請(qǐng)求發(fā)送給修改模塊; 所述修改模塊,用于接收所述接口模塊發(fā)送的修改請(qǐng)求,根據(jù)所述修改條件,對(duì)所述標(biāo)記列和所述一個(gè)以上的數(shù)據(jù)列 進(jìn)行修改處理; 所述記錄模塊,用于記錄所述事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改; 所述提交模塊,用于提交所述事務(wù)時(shí),按照所述記錄的所述事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改,對(duì)標(biāo)記列進(jìn)行相應(yīng)修改,使得修改后的標(biāo)記列每行標(biāo)記位的值表示了在所述修改處理后與所述標(biāo)記位處于同一行的數(shù)據(jù)的有效性; 所述接口模塊,還用于向所述應(yīng)用程序發(fā)送所述修改響應(yīng)。
8.如權(quán)利要求7所述的處理設(shè)備,其特征在于,所述修改模塊包括更新單元,用于當(dāng)所述修改請(qǐng)求具體為更新請(qǐng)求,所述修改條件具體為更新條件時(shí),在所述一個(gè)以上的數(shù)據(jù)列中,查詢到滿足所述更新條件的數(shù)據(jù),其中,所述滿足所述更新條件的數(shù)據(jù)所在行的標(biāo)記位的值是有效的;在所述一個(gè)以上的數(shù)據(jù)列和所述標(biāo)記列上添加新增行,所述新增行的行數(shù)與所述更新條件中需要更新的行數(shù)是相同的;將在所述一個(gè)以上的數(shù)據(jù)列中,滿足更新條件的數(shù)據(jù)所在行的數(shù)據(jù),分別復(fù)制到所述新增行中,并將所述新增行的標(biāo)記位的值設(shè)置為無(wú)效;根據(jù)所述更新條件,在所述新增行中,將待更新的數(shù)據(jù)進(jìn)行修改; 所述記錄模塊,具體用于記錄所述事務(wù)提交時(shí),需要將所述滿足更新條件的數(shù)據(jù)所在行的標(biāo)記位的值修改為無(wú)效,將所述新增行的標(biāo)記位的值修改為有效。
9.如權(quán)利要求8所述的處理設(shè)備,其特征在于,所述修改模塊包括行號(hào)處理單元,用于當(dāng)所述列式數(shù)據(jù)庫(kù)還包括行號(hào)列,所述行號(hào)列存儲(chǔ)了各行的行號(hào)時(shí),將所述新增行的行號(hào)設(shè)置為所述滿足更新條件的數(shù)據(jù)所在行的行號(hào)。
10.如權(quán)利要求7所述的處理設(shè)備,其特征在于,所述修改模塊包括插入單元,用于當(dāng)修改請(qǐng)求具體為插入請(qǐng)求,所述修改條件具體為插入條件時(shí),根據(jù)所述插入條件,在所述一個(gè)以上的數(shù)據(jù)列和所述標(biāo)記列上添加新增行,所述新增行的行數(shù)與所述插入條件中需要插入的行數(shù)是相同的;在所述新增行中添加數(shù)據(jù),并設(shè)置所述新增行的標(biāo)記位為無(wú)效; 所述記錄模塊,具有用于記錄所述事務(wù)提交時(shí),需要將所述新增行的標(biāo)記位的值修改為有效。
11.如權(quán)利要求7所述的處理設(shè)備,其特征在于,所述修改模塊包括刪除單元,用于當(dāng)所述修改請(qǐng)求具體為刪除請(qǐng)求,所述修改條件具體為刪除條件時(shí),在所述一個(gè)以上的數(shù)據(jù)列中,查詢到滿足所述刪除條件的數(shù)據(jù); 所述記錄模塊,用于記錄所述事務(wù)提交時(shí),需要將所述滿足所述刪除條件的數(shù)據(jù)所在行的標(biāo)記位的值修改為無(wú)效。
12.—種處理設(shè)備,其特征在于,包括接口模塊,修改模塊,記錄模塊和提交模塊,其中, 所述接口模塊,用于在一個(gè)事務(wù)中,接收應(yīng)用程序發(fā)送的修改請(qǐng)求,所述修改請(qǐng)求包含 了對(duì)列式數(shù)據(jù)庫(kù)的修改條件,并將所述修改請(qǐng)求發(fā)送給修改模塊,其中所述數(shù)據(jù)列按照列存儲(chǔ)的方式存儲(chǔ)具體數(shù)據(jù),所述列式數(shù)據(jù)庫(kù)包含了標(biāo)記列和一個(gè)以上的數(shù)據(jù)列,其中,標(biāo)記列的每行標(biāo)記位的值用于表示與所述標(biāo)記位處于同一行數(shù)據(jù)的有效性; 所述修改模塊,用于根據(jù)所述修改條件,對(duì)所述標(biāo)記列和所述一個(gè)以上的數(shù)據(jù)列進(jìn)行修改處理; 所述記錄模塊,用于記錄所述事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改; 所述提交模塊,用于提交所述事務(wù)時(shí),按照所述記錄的所述事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改,對(duì)標(biāo)記列進(jìn)行相應(yīng)修改,使得修改后的標(biāo)記列每行標(biāo)記位的值表示了在所述修改處理后與所述標(biāo)記位處于同一行的數(shù)據(jù)的有效性。
13.如權(quán)利要求12所述的處理設(shè)備,其特征在于,所述修改模塊包括更新單元,用于當(dāng)所述修改請(qǐng)求具體為更新請(qǐng)求,所述修改條件具體為更新條件時(shí),在所述一個(gè)以上的數(shù)據(jù)列中,查詢到滿足所述更新條件的數(shù)據(jù),其中,所述滿足所述更新條件的數(shù)據(jù)所在行的標(biāo)記位的值是有效的;在所述一個(gè)以上的數(shù)據(jù)列和所述標(biāo)記列上添加新增行,所述新增行的行數(shù)與所述更新條件中需要更新的行數(shù)是相同的;將在所述一個(gè)以上的數(shù)據(jù)列中,滿足更新條件的數(shù)據(jù)所在行的數(shù)據(jù),分別復(fù)制到所述新增行中,并將所述新增行的標(biāo)記位的值設(shè)置為無(wú)效;根據(jù)所述更新條件,在所述新增行中,將待更新的數(shù)據(jù)進(jìn)行修改; 所述記錄模塊,具體用于記錄所述事務(wù)提交時(shí),需要將所述滿足更新條件的數(shù)據(jù)所在行的標(biāo)記位的值修改為無(wú)效,將所述新增行的標(biāo)記位的值修改為有效。
14.如權(quán)利要求13所述的處理設(shè)備,其特征在于,所述修改模塊包括行號(hào)處理單元,用于當(dāng)所述列式數(shù)據(jù)庫(kù)還包括行號(hào)列,所述行號(hào)列存儲(chǔ)了各行的行號(hào)時(shí),將所述新增行的行號(hào)設(shè)置為所述滿足更新條件的數(shù)據(jù)所在行的行號(hào)。
15.如權(quán)利要求12所述的處理設(shè)備,其特征在于,所述修改模塊包括插入單元,用于當(dāng)修改請(qǐng)求具體為插入請(qǐng)求,所述修改條件具體為插入條件時(shí),根據(jù)所述插入條件,在所述一個(gè)以上的數(shù)據(jù)列和所述標(biāo)記列上添加新增行,所述新增行的行數(shù)與所述插入條件中需要插入的行數(shù)是相同的;在所述新增行中添加數(shù)據(jù),并設(shè)置所述新增行的標(biāo)記位為無(wú)效;所述記錄模塊,具有用于記錄所述事務(wù)提交時(shí),需要將所述新增行的標(biāo)記位的值修改為有效。
16.如權(quán)利要求11所述的處理設(shè)備,其特征在于,所述修改模塊包括刪除單元,用于當(dāng)所述修改請(qǐng)求具體為刪除請(qǐng)求,所述修改條件具體為刪除條件時(shí),在所述一個(gè)以上的數(shù)據(jù)列中,查詢到滿足所述刪除條件的數(shù)據(jù); 所述記錄模塊,用于記錄所述事務(wù)提交時(shí),需要將所述滿足所述刪除條件的數(shù)據(jù)所在行的標(biāo)記位的值修改為無(wú)效。
17.如權(quán)利要求12所述的處理設(shè)備,其特征在于,還包括:查詢模塊,其中, 所述接口模塊,還用于接收應(yīng)用程序發(fā)送的查詢請(qǐng)求,所述查詢請(qǐng)求包含了對(duì)列式數(shù)據(jù)庫(kù)的查詢條件,并將所述查詢請(qǐng)求發(fā)送給所述查詢模塊; 所述查詢模塊,用于根據(jù)所述標(biāo)記列和所述查詢條件,在所述一個(gè)以上的數(shù)據(jù)列上進(jìn)行查詢,獲得同時(shí)滿足所述查詢條件和所述標(biāo)記列的標(biāo)記位是有效的查詢結(jié)果;并將所述查詢結(jié)果發(fā)送給所述接口模塊; 所述接口模塊,還用于接收所述查詢模塊發(fā)送的查詢結(jié)果,向所述應(yīng)用程序發(fā)送所述查詢結(jié)果。
18.如權(quán)利要求17所述的處理設(shè)備,其特征在于,所述查詢模塊包括第一生成單元,第二生成單元和獲取單元,其中, 所述第一生成單元,用于根據(jù)所述查詢條件,掃描所述查詢條件所涉及到的數(shù)據(jù)列,并生成一個(gè)以上的條件位圖,其中,所述涉及到的數(shù)據(jù)列中滿足的查詢條件的在所述條件位圖相應(yīng)行的值是有效的,所述涉及到的數(shù)據(jù)列中不滿足的查詢條件的在所述條件位圖相應(yīng)行的值是無(wú)效的; 所述第二生成單元,用于根據(jù)所述標(biāo)記列和所述一個(gè)以上的條件位圖,生成查詢位圖,其中,當(dāng)所述復(fù)制的標(biāo)記列和所述條件位圖的同一行的值均為有效值時(shí),所述查詢位圖同一行的值是有效的,當(dāng)所述標(biāo)記列和所述條件位圖的同一行的值不全是有效值時(shí),所述查詢位圖同一行的值是無(wú)效的; 所述獲取單元,用于根據(jù)所述查詢位圖,獲得滿足所述查詢條件的和所述標(biāo)記列的標(biāo)記位是有效的查詢結(jié)果。
19.如權(quán)利要求18所述的處理設(shè)備,其特征在于,所述第二生成單元,具體用于當(dāng)所述標(biāo)記列為位圖,將所述標(biāo)記列和所述一個(gè)以上的條件位圖進(jìn)行相與運(yùn)算,生成查詢位圖,其中,所述標(biāo)記列的標(biāo)記位的值,條件位圖的每行的值,以及查詢位圖每行的值為O或I。
20.如權(quán)利要求18所述的處理設(shè)備,其特征在于,所述查詢模塊還包括確定單元,其中, 所述確定單元,用于確定存在事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改,所述事務(wù)為所述查詢請(qǐng)求所在的事務(wù),在臨時(shí)存儲(chǔ)區(qū)域中存儲(chǔ)所述標(biāo)記列,將所述存儲(chǔ)的標(biāo)記列作為所述查詢請(qǐng)求的私有標(biāo)記列,并根據(jù)所述事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改,更新所述私有標(biāo)記列,使得所述更新后的私有標(biāo)記列的被修改的標(biāo)記位的值表示了所述事務(wù)中當(dāng)前所述標(biāo)記位對(duì)應(yīng)的數(shù)據(jù)的有效性; 所述第二生成單元,具體用于根據(jù)所述更新后的私有標(biāo)記列和所述一個(gè)以上的條件位圖,生成查詢位圖,其中,當(dāng)所述更新后的私有標(biāo)記列和所述條件位圖的同一行的值均為有效值時(shí),所述查詢位圖同一行的值是有效的,當(dāng)所述更新后的私有標(biāo)記列和所述條件位圖的同一行的值不全是有效值時(shí),所述查詢位圖同一行的值是無(wú)效的; 所述獲取單元,具體用于根據(jù)所述查詢位圖,獲得滿足所述查詢條件和所述更新后的私有標(biāo)記列的標(biāo)記位是有效的的查詢結(jié)果。
21.如權(quán)利要求18所述的處理設(shè)備,其特征在于,所述查詢模塊還包括確定單元,其中, 所述確定單元,用于確定不存在事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改時(shí),所述事務(wù)為所述查詢請(qǐng)求所在的事務(wù),當(dāng)臨時(shí)存儲(chǔ)區(qū)域中未存儲(chǔ)共享標(biāo)記列或者當(dāng)臨時(shí)存儲(chǔ)區(qū)域中已存儲(chǔ)的共享標(biāo)記列的版本號(hào)與表頭中的標(biāo)記列的版本號(hào)不相同時(shí),將數(shù)據(jù)存儲(chǔ)區(qū)域中的標(biāo)記列版本號(hào)和標(biāo)記列存儲(chǔ)在臨時(shí)存儲(chǔ)區(qū)域中,將所述存儲(chǔ)在臨時(shí)存儲(chǔ)區(qū)域中的標(biāo)記列作為另一個(gè)共享標(biāo)記列,并設(shè)置所述另一個(gè)共享標(biāo)記列的版本號(hào)與所述查詢請(qǐng)求的對(duì)應(yīng)關(guān)系,如果所述已存儲(chǔ)的共享標(biāo)記列的版本號(hào)與表頭中的標(biāo)記列的版本號(hào)相同,設(shè)置所述已存儲(chǔ)的共享標(biāo)記列的版本號(hào)與所述查詢請(qǐng)求的對(duì)應(yīng)關(guān)系; 所述第二生成單元,具體用于根據(jù)共享標(biāo)記列的版本號(hào)與所述查詢請(qǐng)求的對(duì)應(yīng)關(guān)系,在臨時(shí)存儲(chǔ)區(qū)域中確定所述查詢請(qǐng)求對(duì)應(yīng)的共享標(biāo)記列,根據(jù)所述查詢請(qǐng)求對(duì)應(yīng)的共享標(biāo)記列和所述一個(gè)以上的條件位圖,生成查詢位圖,其中,當(dāng)所述查詢請(qǐng)求對(duì)應(yīng)的共享的標(biāo)記列和所述條件位圖的同一行的值均為有效值時(shí),所述查詢位圖同一行的值是有效的,當(dāng)所述查詢請(qǐng)求對(duì)應(yīng)的標(biāo)記列和所述條件位圖的同一行的值不全是有效值時(shí),所述查詢位圖同一行的值是無(wú)效的; 所述獲取單元,具體用于根據(jù)所述查詢位圖,獲得滿足所述查詢條件和所述查詢請(qǐng)求對(duì)應(yīng)的標(biāo)記列的標(biāo)記位是有效的的查詢結(jié)果。
22.—種列式數(shù)據(jù)庫(kù)處理方法,其特征在于,所述列式數(shù)據(jù)庫(kù)包含了標(biāo)記列和一個(gè)以上的數(shù)據(jù)列,其中,所述數(shù)據(jù)列按照列存儲(chǔ)的方式存儲(chǔ)具體數(shù)據(jù),所述標(biāo)記列的每行標(biāo)記位的值用于表示了與所述標(biāo)記位處 于同一行數(shù)據(jù)的有效性,所述方法包括: 接收應(yīng)用程序發(fā)送的查詢請(qǐng)求,所述查詢請(qǐng)求包含了查詢條件; 根據(jù)所述標(biāo)記列和所述查詢條件,在所述一個(gè)以上的數(shù)據(jù)列上進(jìn)行查詢,獲得同時(shí)滿足所述查詢條件和所述標(biāo)記列的標(biāo)記位是有效的查詢結(jié)果; 向所述應(yīng)用程序發(fā)送所述查詢結(jié)果。
23.如權(quán)利要求22所述的方法,其特征在于,所述根據(jù)所述標(biāo)記列和所述查詢條件,在所述一個(gè)以上的數(shù)據(jù)列上進(jìn)行查詢,獲得同時(shí)滿足所述查詢條件和所述標(biāo)記列的標(biāo)記位是有效的查詢結(jié)果,具體包括: 根據(jù)所述查詢條件,掃描所述查詢條件所涉及到的數(shù)據(jù)列,并生成一個(gè)以上的條件位圖,其中,所述涉及到的數(shù)據(jù)列中滿足的查詢條件的在所述條件位圖相應(yīng)行的值是有效的,所述涉及到的數(shù)據(jù)列中不滿足的查詢條件的在所述條件位圖相應(yīng)行的值是無(wú)效的; 根據(jù)所述標(biāo)記列和所述一個(gè)以上的條件位圖,生成查詢位圖,其中,當(dāng)所述標(biāo)記列和所述條件位圖的同一行的值均為有效值時(shí),所述查詢位圖同一行的值是有效的,當(dāng)所述標(biāo)記列和所述條件位圖的同一行的值不全是有效值時(shí),所述查詢位圖同一行的值是無(wú)效的; 根據(jù)所述查詢位圖,獲得滿足所述查詢條件和所述標(biāo)記列的標(biāo)記位是有效的查詢結(jié)果。
24.如權(quán)利要求23所述的方法,其特征在于,所述標(biāo)記列為位圖,根據(jù)所述標(biāo)記列和所述一個(gè)以上的條件位圖,生成查詢位圖,具體包括: 將所述標(biāo)記列和所述一個(gè)以上的條件位圖進(jìn)行相與運(yùn)算,生成查詢位圖,其中,所述標(biāo)記列的標(biāo)記位的值,條件位圖的每行的值,以及查詢位圖每行的值為O或I。
25.如權(quán)利要求23的所述的方法,其特征在于,在根據(jù)所述查詢條件,掃描所述查詢條件所涉及到的數(shù)據(jù)列之前,還包括: 確定存在事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改,所述事務(wù)為所述查詢請(qǐng)求所在的事務(wù),在臨時(shí)存儲(chǔ)區(qū)域中存儲(chǔ)所述標(biāo)記列,將所述存儲(chǔ)的標(biāo)記列作為所述查詢請(qǐng)求的私有標(biāo)記列,并根據(jù)所述事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改,更新所述私有標(biāo)記列,使得所述更新后的私有標(biāo)記列的被修改的標(biāo)記位的值表示了所述事務(wù)中當(dāng)前所述標(biāo)記位對(duì)應(yīng)的數(shù)據(jù)的有效性; 所述根據(jù)所述標(biāo)記列和所述一個(gè)以上的條件位圖,生成查詢位圖,其中,當(dāng)所述標(biāo)記列和所述條件位圖的同一行的值均為有效值時(shí),所述查詢位圖同一行的值是有效的,當(dāng)所述標(biāo)記列和所述條件位圖的同一行的值不全是有效值時(shí),所述查詢位圖同一行的值是無(wú)效的;根據(jù)所述查詢位圖,獲得滿足所述查詢條件和所述標(biāo)記列的標(biāo)記位是有效的的查詢結(jié)果,具體為: 根據(jù)所述更新后的私有標(biāo)記列和所述一個(gè)以上的條件位圖,生成查詢位圖,其中,當(dāng)所述更新后的私有標(biāo)記列和所述條件位圖的同一行的值均為有效值時(shí),所述查詢位圖同一行的值是有效的,當(dāng)所述更新后的私有標(biāo)記列和所述條件位圖的同一行的值不全是有效值時(shí),所述查詢位圖同一行的值是無(wú)效的;根據(jù)所述查詢位圖,獲得滿足所述查詢條件和所述更新后的私有標(biāo)記列的標(biāo)記位是有效的的查詢結(jié)果。
26.如權(quán)利要求23的所述的方法,其特征在于,在根據(jù)所述查詢條件,掃描所述查詢條件所涉及到的數(shù)據(jù)列之前,`還包括: 確定不存在事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改時(shí),所述事務(wù)為所述查詢請(qǐng)求所在的事務(wù),當(dāng)臨時(shí)存儲(chǔ)區(qū)域中未存儲(chǔ)共享標(biāo)記列或者當(dāng)臨時(shí)存儲(chǔ)區(qū)域中已存儲(chǔ)的共享標(biāo)記列的版本號(hào)與表頭中的標(biāo)記列的版本號(hào)不相同時(shí),將數(shù)據(jù)存儲(chǔ)區(qū)域中的標(biāo)記列版本號(hào)和標(biāo)記列存儲(chǔ)在臨時(shí)存儲(chǔ)區(qū)域中,將所述存儲(chǔ)在臨時(shí)存儲(chǔ)區(qū)域中的標(biāo)記列作為另Iv共孚標(biāo)記列,并設(shè)置所述另一個(gè)共享標(biāo)記列的版本號(hào)與所述查詢請(qǐng)求的對(duì)應(yīng)關(guān)系,如果所述已存儲(chǔ)的共享標(biāo)記列的版本號(hào)與表頭中的標(biāo)記列的版本號(hào)相同,設(shè)置所述已存儲(chǔ)的共享標(biāo)記列的版本號(hào)與所述查詢請(qǐng)求的對(duì)應(yīng)關(guān)系; 所述根據(jù)所述標(biāo)記列和所述一個(gè)以上的條件位圖,生成查詢位圖,其中,當(dāng)所述標(biāo)記列和所述條件位圖的同一行的值均為有效值時(shí),所述查詢位圖同一行的值是有效的,當(dāng)所述標(biāo)記列和所述條件位圖的同一行的值不全是有效值時(shí),所述查詢位圖同一行的值是無(wú)效的;根據(jù)所述查詢位圖,獲得滿足所述查詢條件和所述標(biāo)記列的標(biāo)記位是有效的的查詢結(jié)果,具體為: 根據(jù)共享標(biāo)記列的版本號(hào)與所述查詢請(qǐng)求的對(duì)應(yīng)關(guān)系,在臨時(shí)存儲(chǔ)區(qū)域中確定所述查詢請(qǐng)求對(duì)應(yīng)的共享標(biāo)記列,根據(jù)所述查詢請(qǐng)求對(duì)應(yīng)的共享標(biāo)記列和所述一個(gè)以上的條件位圖,生成查詢位圖,其中,當(dāng)所述查詢請(qǐng)求對(duì)應(yīng)的共享的標(biāo)記列和所述條件位圖的同一行的值均為有效值時(shí),所述查詢位圖同一行的值是有效的,當(dāng)所述查詢請(qǐng)求對(duì)應(yīng)的標(biāo)記列和所述條件位圖的同一行的值不全是有效值時(shí),所述查詢位圖同一行的值是無(wú)效的;根據(jù)所述查詢位圖,獲得滿足所述查詢條件和所述查詢請(qǐng)求對(duì)應(yīng)的標(biāo)記列的標(biāo)記位是有效的的查詢結(jié)果。
27.如權(quán)利要求25所述的方法,其特征在于,在所述復(fù)制標(biāo)記列之前,還包括:對(duì)所述標(biāo)記列加排他鎖;在所述復(fù)制標(biāo)記列之后,還包括:對(duì)所述標(biāo)記列解排他鎖。
28.如權(quán)利要求22所述的方法,其特征在于,所述方法還包括: 在一個(gè)事務(wù)中,接收應(yīng)用程序發(fā)送的修改請(qǐng)求,所述修改請(qǐng)求包含了修改條件; 根據(jù)所述修改條件,對(duì)所述標(biāo)記列和所述一個(gè)以上的數(shù)據(jù)列進(jìn)行修改處理,記錄所述事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改; 提交所述事務(wù)時(shí),按照所述記錄的所述事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改,對(duì)標(biāo)記列進(jìn)行相應(yīng)修改,使得修改后的標(biāo)記列每行標(biāo)記位的值表示了在所述修改處理后與所述標(biāo)記位處于同一行的數(shù)據(jù)的有效性; 向所述應(yīng)用程序發(fā)送所述修改響應(yīng)。
29.如權(quán)利要求28所述的方法,其特征在于,所述修改請(qǐng)求具體為更新請(qǐng)求,所述修改條件具體為更新條件; 所述根據(jù)所述修改條件,對(duì)所述標(biāo)記列和所述一個(gè)以上的數(shù)據(jù)列進(jìn)行修改處理,記錄所述事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改,具體包括: 在所述一個(gè)以上的數(shù)據(jù)列中,查詢到滿足所述更新條件的數(shù)據(jù),其中,所述滿足所述更新條件的數(shù)據(jù)所在行的標(biāo)記位的值是有效的; 在所述一個(gè)以上的數(shù)據(jù)列和所述標(biāo)記列上添加新增行,所述新增行的行數(shù)與所述更新條件中需要更新的行數(shù)是相同的; 將在所述一個(gè)以上的數(shù)據(jù)列中,滿足更新條件的數(shù)據(jù)所在行的數(shù)據(jù),分別復(fù)制到所述新增行中,并將所述新增行的標(biāo)記位的值設(shè)置為無(wú)效; 根據(jù)所述更新條件,在所述新增行中,將待更新的數(shù)據(jù)進(jìn)行修改; 記錄所述事務(wù)提交時(shí),需要將所述滿足更新條件的數(shù)據(jù)所在行的標(biāo)記位的值修改為無(wú)效,將所述新增行的標(biāo)記位的值修改為有效。
30.如權(quán)利要求28所述的方法,其特征在于,所述列式數(shù)據(jù)庫(kù)還包括行號(hào)列,所述行號(hào)列存儲(chǔ)了各行的行號(hào);所述方法還包括:將所述新增行的行號(hào)設(shè)置為所述滿足更新條件的數(shù)據(jù)所在行的行號(hào)。
31.如權(quán)利要求28所述的方法,其特征在于,所述修改請(qǐng)求具體為插入請(qǐng)求,所述修改條件具體為插入條件; 所述根據(jù)所述修改條件,對(duì)所述標(biāo)記列和所述一個(gè)以上的數(shù)據(jù)列進(jìn)行修改處理,記錄所述事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改,具體包括: 根據(jù)所述插入條件,在所述一個(gè)以上的數(shù)據(jù)列和所述標(biāo)記列上添加新增行,所述新增行的行數(shù)與所述插入條件中需要插入的行數(shù)是相同的;在所述新增行中添加數(shù)據(jù),并設(shè)置所述新增行的標(biāo)記位為無(wú)效; 記錄所述事務(wù)提交時(shí),需要將所述新增行的標(biāo)記位的值修改為有效。
32.—種列式數(shù)據(jù)庫(kù)處理方法,其特征在于,所述列式數(shù)據(jù)庫(kù)包含了標(biāo)記列和一個(gè)以上的數(shù)據(jù)列,其中,所述數(shù)據(jù)列按照列存儲(chǔ)的方式存儲(chǔ)具體數(shù)據(jù),所述標(biāo)記列的每行標(biāo)記位的值用于表示了與所述標(biāo)記位處于同一行數(shù)據(jù)的有效性,所述方法包括: 在一個(gè)事務(wù)中,接收應(yīng)用程序發(fā)送的修改請(qǐng)求,所述修改請(qǐng)求包含了修改條件; 根據(jù)所述修改條件,對(duì)所述標(biāo)記列和所述一個(gè)以上的數(shù)據(jù)列進(jìn)行修改處理,記錄所述事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改; 提交所述事務(wù)時(shí),按照所述記錄的所述事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改,對(duì)標(biāo)記列進(jìn)行相應(yīng)修改,使得修改后的標(biāo)記列每行標(biāo)記位的值表示了在所述修改處理后與所述標(biāo)記位處于同一行的數(shù)據(jù)的有效性。
33.如權(quán)利要求32所述的方法,其特征在于,所述修改請(qǐng)求具體為更新請(qǐng)求,所述修改條件具體為更新條件; 所述根據(jù)所述修改條件,對(duì)所述標(biāo)記列和所述一個(gè)以上的數(shù)據(jù)列進(jìn)行修改處理,記錄所述事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改,具體包括: 在所述一個(gè)以上的數(shù)據(jù)列中,查詢到滿足所述更新條件的數(shù)據(jù),其中,所述滿足所述更新條件的數(shù)據(jù)所在行的標(biāo)記位的值是有效的; 在所述一個(gè)以上的數(shù)據(jù)列和所述標(biāo)記列上添加新增行,所述新增行的行數(shù)與所述更新條件中需要更新的行數(shù)是相同的; 將在所述一個(gè)以上的數(shù)據(jù)列中,滿足更新條件的數(shù)據(jù)所在行的數(shù)據(jù),分別復(fù)制到所述新增行中,并將所述新增行的標(biāo)記位的值設(shè)置為無(wú)效; 根據(jù)所述更新條件,在所述新增行中,將待更新的數(shù)據(jù)進(jìn)行修改; 記錄所述事務(wù)提交時(shí),需要 將所述滿足更新條件的數(shù)據(jù)所在行的標(biāo)記位的值修改為無(wú)效,將所述新增行的標(biāo)記位的值修改為有效。
34.如權(quán)利要求33所述的方法,其特征在于,所述列式數(shù)據(jù)庫(kù)還包括行號(hào)列,所述行號(hào)列存儲(chǔ)了各行的行號(hào); 所述方法還包括:將所述新增行的行號(hào)設(shè)置為所述滿足更新條件的數(shù)據(jù)所在行的行號(hào)。
35.如權(quán)利要求32所述的方法,其特征在于,所述修改請(qǐng)求具體為插入請(qǐng)求,所述修改條件具體為插入條件; 所述根據(jù)所述修改條件,對(duì)所述標(biāo)記列和所述一個(gè)以上的數(shù)據(jù)列進(jìn)行修改處理,記錄所述事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改,具體包括: 根據(jù)所述插入條件,在所述一個(gè)以上的數(shù)據(jù)列和所述標(biāo)記列上添加新增行,所述新增行的行數(shù)與所述插入條件中需要插入的行數(shù)是相同的;在所述新增行中添加數(shù)據(jù),并設(shè)置所述新增行的標(biāo)記位為無(wú)效; 記錄所述事務(wù)提交時(shí),需要將所述新增行的標(biāo)記位的值修改為有效。
36.如權(quán)利要求32所述的方法,其特征在于,所述方法還包括: 接收應(yīng)用程序發(fā)送的查詢請(qǐng)求,所述查詢請(qǐng)求包含了查詢條件; 根據(jù)所述標(biāo)記列和所述查詢條件,在所述一個(gè)以上的數(shù)據(jù)列上進(jìn)行查詢,獲得同時(shí)滿足所述查詢條件和所述標(biāo)記列的標(biāo)記位是有效的查詢結(jié)果; 向所述應(yīng)用程序發(fā)送所述查詢結(jié)果。
37.如權(quán)利要求36所述的方法,其特征在于,所述根據(jù)所述標(biāo)記列和所述查詢條件,在所述一個(gè)以上的數(shù)據(jù)列上進(jìn)行查詢,獲得同時(shí)滿足所述查詢條件和所述標(biāo)記列的標(biāo)記位是有效的查詢結(jié)果,具體包括: 根據(jù)所述查詢條件,掃描所述查詢條件所涉及到的數(shù)據(jù)列,并生成一個(gè)以上的條件位圖,其中,所述涉及到的數(shù)據(jù)列中滿足的查詢條件的在所述條件位圖相應(yīng)行的值是有效的,所述涉及到的數(shù)據(jù)列中不滿足的查詢條件的在所述條件位圖相應(yīng)行的值是無(wú)效的; 根據(jù)所述標(biāo)記列和所述一個(gè)以上的條件位圖,生成查詢位圖,其中,當(dāng)所述復(fù)制的標(biāo)記列和所述條件位圖的同一行的值均為有效值時(shí),所述查詢位圖同一行的值是有效的,當(dāng)所述標(biāo)記列和所述條件位圖的同一行的值不全是有效值時(shí),所述查詢位圖同一行的值是無(wú)效的; 根據(jù)所述查詢位圖,獲得滿足所述查詢條件的查詢結(jié)果。
38.如權(quán)利要求37所述的方法,其特征在于,所述標(biāo)記列為位圖,根據(jù)所述標(biāo)記列和所述一個(gè)以上的條件位圖,生成查詢位圖,具體包括: 將所述標(biāo)記列和所述一個(gè)以上的條件位圖進(jìn)行相與運(yùn)算,生成查詢位圖,其中,所述標(biāo)記列的標(biāo)記位的值,條件位圖的每行的值,以及查詢位圖每行的值為O或I。
39.如權(quán)利要求36-38的任一所述的方法,其特征在于,在根據(jù)所述查詢條件,掃描所述查詢條件所涉及到的數(shù)據(jù)列之前,還包括: 確定存在事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改,所述事務(wù)為所述查詢請(qǐng)求所在的事務(wù),在臨時(shí)存儲(chǔ)區(qū)域中存儲(chǔ)所述標(biāo)記列,將所述存儲(chǔ)的標(biāo)記列作為所述查詢請(qǐng)求的私有標(biāo)記列,并根據(jù)所述事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改,更新所述私有標(biāo)記列,使得所述更新后的私有標(biāo)記列的被修改的標(biāo)記位的值表示了所述事務(wù)中當(dāng)前所述標(biāo)記位對(duì)應(yīng)的數(shù)據(jù)的有效性; 所述根據(jù)所述標(biāo)記列和所述一個(gè)以上的條件位圖,生成查詢位圖,其中,當(dāng)所述標(biāo)記列和所述條件位圖的同一行的值均為有效值時(shí),所述查詢位圖同一行的值是有效的,當(dāng)所述標(biāo)記列和所述條件位圖的同一行的值不全是有效值時(shí),所述查詢位圖同一行的值是無(wú)效的;根據(jù)所述查詢位圖,獲得滿足所述查詢條件和所述標(biāo)記列的標(biāo)記位是有效的的查詢結(jié)果,具體為: 根據(jù)所述更新后的私有標(biāo)記列和所述一個(gè)以上的條件位圖,生成查詢位圖,其中,當(dāng)所述更新后的私有標(biāo)記列和所述條件位圖的同一行的值均為有效值時(shí),所述查詢位圖同一行的值是有效的,當(dāng)所述更新后的私有標(biāo)記列和所述條件位圖的同一行的值不全是有效值時(shí),所述查詢位圖同一行的值是無(wú)效的;根據(jù)所述查詢位圖,獲得滿足所述查詢條件和所述更新后的私有標(biāo)記列的標(biāo)記位是有效的的查詢結(jié)果。
40.如權(quán)利要求36-38的任一所述的方法,其特征在于,在根據(jù)所述查詢條件,掃描所述查詢條件所涉及到的數(shù)據(jù)列之前,還包括: 確定不存在事務(wù)提交時(shí)標(biāo)記列的待進(jìn)行的修改時(shí),所述事務(wù)為所述查詢請(qǐng)求所在的事務(wù),當(dāng)臨時(shí)存儲(chǔ)區(qū)域中未存儲(chǔ)共享標(biāo)記列或者當(dāng)臨時(shí)存儲(chǔ)區(qū)域中已存儲(chǔ)的共享標(biāo)記列的版本號(hào)與表頭中的標(biāo)記列的版本號(hào)不相同時(shí),將數(shù)據(jù)存儲(chǔ)區(qū)域中的標(biāo)記列版本號(hào)和標(biāo)記列存儲(chǔ)在臨時(shí)存儲(chǔ)區(qū)域中,將所述存儲(chǔ)在臨時(shí)存儲(chǔ)區(qū)域中的標(biāo)記列作為另Iv共孚標(biāo)記列,并設(shè)置所述另一個(gè)共享標(biāo)記列的版本號(hào)與所述查詢請(qǐng)求的對(duì)應(yīng)關(guān)系,如果所述已存儲(chǔ)的共享標(biāo)記列的版本號(hào)與表頭中的標(biāo)記列的版本號(hào)相同,設(shè)置所述已存儲(chǔ)的共享標(biāo)記列的版本號(hào)與所述查詢請(qǐng)求的對(duì)應(yīng)關(guān)系; 所述根據(jù)所述標(biāo)記列和所述一個(gè)以上的條件位圖,生成查詢位圖,其中,當(dāng)所述標(biāo)記列和所述條件位圖的同一行的值均為有效值時(shí),所述查詢位圖同一行的值是有效的,當(dāng)所述標(biāo)記列和所述條件位圖的同一行的值不全是有效值時(shí),所述查詢位圖同一行的值是無(wú)效的;根據(jù)所述查詢位圖,獲得滿足所述查詢條件和所述標(biāo)記列的標(biāo)記位是有效的的查詢結(jié)果,具體為: 根據(jù)共享標(biāo)記列的版本號(hào)與所述查詢請(qǐng)求的對(duì)應(yīng)關(guān)系,在臨時(shí)存儲(chǔ)區(qū)域中確定所述查詢請(qǐng)求對(duì)應(yīng)的共享標(biāo)記列,根據(jù)所述查詢請(qǐng)求對(duì)應(yīng)的共享標(biāo)記列和所述一個(gè)以上的條件位圖,生成查詢位圖,其中,當(dāng)所述查詢請(qǐng)求對(duì)應(yīng)的共享的標(biāo)記列和所述條件位圖的同一行的值均為有效值時(shí),所述查詢位圖同一行的值是有效的,當(dāng)所述查詢請(qǐng)求對(duì)應(yīng)的標(biāo)記列和所述條件位圖的同一行的值不全是有效值時(shí),所述查詢位圖同一行的值是無(wú)效的;根據(jù)所述查詢位圖,獲得滿足所述查詢條件和所述查詢請(qǐng)求對(duì)應(yīng)的標(biāo)記列的標(biāo)記位是有效的的查詢結(jié)果。
41.如權(quán)利要求39或40的方法,其特征在于,還包括:在所述復(fù)制標(biāo)記列之前,還包括:對(duì)所述標(biāo)記列加排他鎖; 在所述復(fù)制標(biāo)記列之后, 還包括:對(duì)所述標(biāo)記列解排他鎖。
【文檔編號(hào)】G06F17/30GK103678556SQ201310656482
【公開(kāi)日】2014年3月26日 申請(qǐng)日期:2013年12月6日 優(yōu)先權(quán)日:2013年12月6日
【發(fā)明者】吳繼敏, 張慶, 劉成華, 鄧勇 申請(qǐng)人:華為技術(shù)有限公司