欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于提高數(shù)據(jù)并行插入的性能的方法和系統(tǒng)的制作方法

文檔序號(hào):6331337閱讀:219來(lái)源:國(guó)知局
專利名稱:用于提高數(shù)據(jù)并行插入的性能的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)庫(kù)領(lǐng)域。更確切的,本發(fā)明涉及用于提高數(shù)據(jù)并行插入的性能的方法和系統(tǒng)。
背景技術(shù)
數(shù)據(jù)并行插入的性能問(wèn)題一直是在數(shù)據(jù)庫(kù)領(lǐng)域的一大挑戰(zhàn)。在多個(gè)進(jìn)程同時(shí)往同一個(gè)表插入數(shù)據(jù)的情形下,如果該表定義有鍵值順序遞增(或者遞減)的索引,那么這些并行的進(jìn)程在往索引插入鍵值的時(shí)候往往會(huì)選擇相同的索引頁(yè)面(在鍵值順序遞增的情況下通常會(huì)是索引的最后一個(gè)葉子頁(yè)面)。這樣,這些插入進(jìn)程競(jìng)爭(zhēng)這個(gè)葉子頁(yè)面時(shí)往往會(huì)造成相互沖突,這些沖突包括在這個(gè)葉面上鎖的競(jìng)爭(zhēng),I/O競(jìng)爭(zhēng)等。特別是在多數(shù)據(jù)庫(kù)系統(tǒng)的環(huán)境下,這種競(jìng)爭(zhēng)發(fā)生在不同系統(tǒng)的進(jìn)程之間,這會(huì)造成大量插入進(jìn)程的性能受到很大的影響。我們把造成競(jìng)爭(zhēng)的這個(gè)葉子頁(yè)面稱作并行插入環(huán)境中的“熱點(diǎn)”。熱點(diǎn)的產(chǎn)生會(huì)造成數(shù)據(jù)并行插入性能的顯著下降。

發(fā)明內(nèi)容
本公開(kāi)的說(shuō)明性實(shí)施例認(rèn)識(shí)到現(xiàn)有技術(shù)中的上述缺點(diǎn),提供了用于在數(shù)據(jù)同步中減少數(shù)據(jù)傳輸量的方法和系統(tǒng)以解決現(xiàn)有技術(shù)中的問(wèn)題。根據(jù)本公開(kāi)的一個(gè)方面,提供了一種用于提高數(shù)據(jù)的并行插入性能的方法,包括 為索引中的每個(gè)鍵值添加前綴C0,其中CO具有默認(rèn)值;響應(yīng)于檢測(cè)到出現(xiàn)熱點(diǎn)模式,為并行的每個(gè)插入進(jìn)程分配一個(gè)相應(yīng)的CO值,其中每個(gè)所分配的CO值與默認(rèn)值不同;在熱點(diǎn)模式下進(jìn)行插入操作時(shí),判斷是否能夠以CO的默認(rèn)值插入鍵值如果能夠進(jìn)行插入,則以CO 的默認(rèn)值插入鍵值;如果不能進(jìn)行插入,則以該插入進(jìn)程所分配的CO值插入鍵值。根據(jù)本公開(kāi)的又一方面,提供了一種用于提高數(shù)據(jù)的并行插入性能的系統(tǒng),包括 添加部件,配置為為索引中的每個(gè)鍵值添加前綴C0,其中CO具有默認(rèn)值;分配部件,配置為響應(yīng)于檢測(cè)到出現(xiàn)熱點(diǎn)模式,為每個(gè)并行插入進(jìn)程分配一個(gè)相應(yīng)的CO值,其中每個(gè)所分配的CO值與默認(rèn)值不同;插入部件,在熱點(diǎn)模式下進(jìn)行插入操作時(shí),配置為判斷是否能夠以 CO的默認(rèn)值插入鍵值如果能夠進(jìn)行插入,則以CO的默認(rèn)值插入鍵值;如果不能進(jìn)行插入, 則以該插入進(jìn)程所分配的CO值插入鍵值。利用本公開(kāi)說(shuō)明性實(shí)施例的方法和系統(tǒng),通過(guò)為索引中的每個(gè)鍵值添加前綴C0, 在檢測(cè)到出現(xiàn)熱點(diǎn)時(shí)通過(guò)為并行的每個(gè)插入進(jìn)程分配一個(gè)相應(yīng)的CO值將并行的多個(gè)插入進(jìn)程對(duì)熱點(diǎn)的操作分配到不同的次子樹(shù)中,從而減少了多個(gè)插入進(jìn)程之間的沖突,提高了數(shù)據(jù)并行插入的性能,使現(xiàn)有技術(shù)中的問(wèn)題得到解決。


本公開(kāi)可以通過(guò)參考下文中結(jié)合附圖所給出的描述而得到更好的理解,其中在所有附圖中使用了相同或相似的附圖標(biāo)記來(lái)表示相同或者相似的部件。所述附圖連同下面的詳細(xì)說(shuō)明一起包含在本說(shuō)明書(shū)中并且形成本說(shuō)明書(shū)的一部分,而且用來(lái)進(jìn)一步舉例說(shuō)明本公開(kāi)的優(yōu)選實(shí)施例和解釋本公開(kāi)的原理和優(yōu)點(diǎn)。在附圖中圖1顯示了熱點(diǎn)的產(chǎn)生原因的示意圖100 ;圖2顯示了現(xiàn)有技術(shù)的索引鍵值的示意圖200A以及根據(jù)本公開(kāi)一個(gè)實(shí)施例的索引鍵值的示意圖200B;圖3顯示了根據(jù)本公開(kāi)一個(gè)實(shí)施例的用于提高數(shù)據(jù)的并行插入性能的方法300 ;圖4顯示了根據(jù)本公開(kāi)一個(gè)實(shí)施例的用于提高數(shù)據(jù)的并行插入性能的系統(tǒng)400。
具體實(shí)施例方式在下文中將結(jié)合附圖對(duì)本公開(kāi)的示范性實(shí)施例進(jìn)行描述。為了清楚和簡(jiǎn)明起見(jiàn), 在說(shuō)明書(shū)中并未描述實(shí)際實(shí)施方式的所有特征。然而,應(yīng)該了解,在開(kāi)發(fā)任何這種實(shí)際實(shí)施例的過(guò)程中必須做出很多特定于該實(shí)際實(shí)施方式的決定,以便實(shí)現(xiàn)開(kāi)發(fā)人員的具體目標(biāo), 例如,符合與系統(tǒng)及業(yè)務(wù)相關(guān)的那些限制條件,并且這些限制條件可能會(huì)隨著實(shí)施方式的不同而有所改變。此外,還應(yīng)該了解,雖然開(kāi)發(fā)工作有可能是非常復(fù)雜和費(fèi)時(shí)的,但對(duì)得益于本公開(kāi)公開(kāi)內(nèi)容的本領(lǐng)域技術(shù)人員來(lái)說(shuō),這種開(kāi)發(fā)工作僅僅是例行的任務(wù)。在此,還需要說(shuō)明的一點(diǎn)是,為了避免因不必要的細(xì)節(jié)而模糊了本公開(kāi),在附圖中僅僅示出了與根據(jù)本公開(kāi)的方案密切相關(guān)的裝置結(jié)構(gòu)和/或處理步驟,而省略了與本公開(kāi)關(guān)系不大的其他細(xì)節(jié)。下面結(jié)合圖1的示意圖說(shuō)明“熱點(diǎn)”的產(chǎn)生。圖1以鍵值順序遞增的索引為例,顯示了熱點(diǎn)產(chǎn)生原因的示意圖100。如圖1所示,按照索引的基本結(jié)構(gòu),所有鍵值需要按照從小到大的順序存儲(chǔ)在最底層的葉子頁(yè)面中; 對(duì)于新插入的鍵值必須被放到正確的葉子頁(yè)面以保證整個(gè)索引的順序性。假如在兩個(gè)數(shù)據(jù)庫(kù)系統(tǒng)成員A和B中(如圖1所示),多個(gè)插入進(jìn)程試圖向圖1所示的索引插入數(shù)據(jù),由于該索引的鍵值具有順序遞增的特性,造成了每一筆新產(chǎn)生并且即將插入的鍵值都比整個(gè)索引已經(jīng)存在所有鍵值大。因此,所有的插入進(jìn)程都試圖往最后一個(gè)葉子頁(yè)面插入新的鍵值, 這就使得最后一個(gè)葉子頁(yè)面成為了競(jìng)爭(zhēng)的“熱點(diǎn)”,如圖1中最后一個(gè)葉子頁(yè)面所示。下面結(jié)合圖2介紹本公開(kāi)中技術(shù)方案的原理。圖2顯示了現(xiàn)有技術(shù)的索引鍵值的示意圖200A以及根據(jù)本公開(kāi)一個(gè)實(shí)施例的索引鍵值的示意圖200B。如圖2所示,根據(jù)現(xiàn)有技術(shù)的索引鍵值200A表示利用數(shù)據(jù)表中的數(shù)據(jù)欄C1、C2和C3生成的索引鍵值。根據(jù)本公開(kāi)的原理,在現(xiàn)有技術(shù)的每一個(gè)索引鍵值200A 之前添加一個(gè)前綴CO。CO僅用于數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)對(duì)索引進(jìn)行管理和訪問(wèn),其對(duì)用戶來(lái)說(shuō)是透明的,即用戶并不知道CO的存在。CO的長(zhǎng)度可以是一個(gè)字節(jié),取值范圍可以從 X’0(^ljX’FF。當(dāng)然,CO也可以是其它的長(zhǎng)度,例如四個(gè)比特或兩個(gè)字節(jié)。依據(jù)CO的長(zhǎng)度不同,其取值范圍也會(huì)不同。CO具有默認(rèn)值。在沒(méi)有出現(xiàn)熱點(diǎn)的正常模式下,CO的取值保持為默認(rèn)值。舉例來(lái)說(shuō),CO的默認(rèn)值可以取值為X’ 00,在正常模式下,CO的取值保持為X’ 00。當(dāng)需要向索引中插入鍵值時(shí),DBMS設(shè)置新插入的鍵值的CO = χ,00。這里,CO = x,00僅是CO默認(rèn)值的一個(gè)示例,CO的默認(rèn)值還可以例如取值為χ’ FF,或者其他任意值。本領(lǐng)域普通技術(shù)人員知道,圖2中的介紹僅僅是本公開(kāi)技術(shù)方案的一個(gè)示例性說(shuō)明,例如,現(xiàn)有技術(shù)的索引鍵值200A可以是利用數(shù)據(jù)表中的一個(gè)或多個(gè)數(shù)據(jù)欄生成(例如僅利用Cl),CO的長(zhǎng)度和CO的默認(rèn)值都可以任意規(guī)定,等等,只要能夠滿足實(shí)現(xiàn)本公開(kāi)的技術(shù)方案的目的。下面結(jié)合圖3介紹根據(jù)本公開(kāi)一個(gè)實(shí)施例的用于提高數(shù)據(jù)的并行插入性能的方法 300。圖3顯示的方法300從步驟302開(kāi)始。接下來(lái),方法進(jìn)入步驟304,其中為索引中的每個(gè)鍵值添加前綴C0,其中CO具有默認(rèn)值。正如前面所描述的,CO僅用于DBMS對(duì)索引進(jìn)行管理和訪問(wèn),其對(duì)用戶來(lái)說(shuō)是透明的, 即用戶并不知道CO的存在。為了便于說(shuō)明,本公開(kāi)中以CO為一個(gè)字節(jié)為例進(jìn)行說(shuō)明,但對(duì)所屬領(lǐng)域技術(shù)人員來(lái)說(shuō)可以知道CO也可以是其它的長(zhǎng)度,例如四個(gè)比特或兩個(gè)字節(jié)或其他適合的長(zhǎng)度。以一個(gè)字節(jié)長(zhǎng)度的CO為例,CO的默認(rèn)值可以取值為χ’ 00,在正常模式下, CO的取值保持為X’ 00。當(dāng)然,CO = X’ 00僅是CO默認(rèn)值的一個(gè)示例,CO的默認(rèn)值還可以例如取值為X’ FF,或者其他任意值。為了方便說(shuō)明,在本文的后續(xù)部分,CO的默認(rèn)值取值為 χ,00。接下來(lái),方法進(jìn)入步驟306,其中檢測(cè)是否出現(xiàn)熱點(diǎn)模式。當(dāng)多個(gè)進(jìn)程試圖寫(xiě)入一個(gè)葉子頁(yè)面時(shí),利用頁(yè)面鎖來(lái)順序化對(duì)該葉子頁(yè)面的寫(xiě)入。在一個(gè)特定的時(shí)刻,只有一個(gè)進(jìn)程能夠拿到該頁(yè)面鎖進(jìn)而對(duì)該葉子頁(yè)面進(jìn)行寫(xiě)入。其余所有的進(jìn)程都必須在隊(duì)列里等待以獲取該頁(yè)面鎖。根據(jù)本公開(kāi)的一個(gè)實(shí)施例,如果在一個(gè)特定時(shí)間段內(nèi)等待進(jìn)行插入操作的進(jìn)程數(shù)達(dá)到一個(gè)預(yù)定的閾值,且等待進(jìn)行插入操作的進(jìn)程的平均等待時(shí)間達(dá)到一個(gè)預(yù)定的閾值,則檢測(cè)到出現(xiàn)熱點(diǎn)模式。進(jìn)程數(shù)的閾值和平均等待時(shí)間的閾值可以根據(jù)經(jīng)驗(yàn)進(jìn)行設(shè)定,也可以根據(jù)一定的算法和/或歷史數(shù)據(jù)進(jìn)行計(jì)算,或者現(xiàn)有技術(shù)中的其他任何方式。接下來(lái),如果檢測(cè)到未出現(xiàn)熱點(diǎn)模式,方法進(jìn)入步驟308,其中以正常模式訪問(wèn)索引。在正常模式下,DBMS通過(guò)在原索引鍵值前添加具有默認(rèn)值的CO (例如CO = χ’ 00),利用添加了 CO的鍵值對(duì)索引進(jìn)行訪問(wèn)。響應(yīng)于檢測(cè)到出現(xiàn)熱點(diǎn)模式,方法進(jìn)入步驟310,其中為并行的每個(gè)插入進(jìn)程分配一個(gè)相應(yīng)的CO值,其中每個(gè)所分配的CO值與默認(rèn)值不同。這樣并行的每個(gè)插入進(jìn)程都具有其對(duì)應(yīng)的CO值。接下來(lái),方法進(jìn)入步驟312,其中在熱點(diǎn)模式進(jìn)行插入操作。然后,方法進(jìn)入步驟314,其中判斷是否能夠以CO的默認(rèn)值插入鍵值。如果可以進(jìn)行插入,方法進(jìn)入步驟316,其中以CO的默認(rèn)值插入鍵值。如果不能進(jìn)行插入,方法進(jìn)入步驟318,其中以該插入進(jìn)程所分配的CO值插入鍵值。下面,仍以CO的長(zhǎng)度為一個(gè)字節(jié),CO = χ’ 00為CO的默認(rèn)值為例進(jìn)行介紹。假設(shè)同時(shí)存在并行的N個(gè)插入進(jìn)程導(dǎo)致出現(xiàn)了熱點(diǎn)模式。當(dāng)檢測(cè)到出現(xiàn)熱點(diǎn)模式,為該N的插入進(jìn)程的每一個(gè)分配一個(gè)相應(yīng)的與CO的默認(rèn)值不同的CO值,例如為第一個(gè)插入進(jìn)程分配CO = χ’ 01,為第二個(gè)插入進(jìn)程分配CO = χ,02,...,以此類(lèi)推。這里,優(yōu)選地,分別屬于不同的DBMS的插入進(jìn)程所分配的CO彼此不同,而屬于同一個(gè)DBMS的插入進(jìn)程所分配的 CO優(yōu)選地也彼此不同。但是,當(dāng)屬于同一個(gè)DBMS的插入進(jìn)程數(shù)目超過(guò)為其分配的CO所允許最大值時(shí),可以重用⑶。例如,存在來(lái)自兩個(gè)DBMS (DBMS 1,DBMS2)的插入進(jìn)程,其中來(lái)自DBMSl的插入進(jìn)程有300個(gè),來(lái)自DBMS2的進(jìn)程有55個(gè)。首先,保證分別屬于不同的DBMS 的插入進(jìn)程所分配的CO彼此不同。例如為屬于DBMSl的插入進(jìn)程分配CO = x'01到CO = X,7F的值(總共127個(gè)),為屬于DBMS2的插入進(jìn)程分配CO = χ,80到CO = x,F(xiàn)F的值 (總共1 個(gè))。對(duì)于屬于DBMSl的插入進(jìn)程,由于其進(jìn)程的數(shù)目大于為其分配的CO允許的最大值,因此可以重用C0,即多個(gè)屬于DBMSl的多個(gè)插入進(jìn)程之間可能會(huì)共享某一個(gè)CO 的值。當(dāng)然,這里是以CO為一個(gè)字節(jié)長(zhǎng)度為例進(jìn)行的說(shuō)明,對(duì)于上面出現(xiàn)的情況,還可以通過(guò)增加CO的長(zhǎng)度來(lái)解決。在熱點(diǎn)模式進(jìn)行插入操作時(shí),首先判斷是否能夠以CO的默認(rèn)值插入鍵值。如果可以進(jìn)行插入,則以CO的默認(rèn)值插入鍵值。如果不能進(jìn)行插入,則以該插入進(jìn)程所分配的CO值插入鍵值。這樣,在熱點(diǎn)模式進(jìn)行插入操作后,由于CO取值的不同, 索引被“分割”為多個(gè)子樹(shù),其中具有默認(rèn)值的CO對(duì)應(yīng)的索引子樹(shù)為主子樹(shù),具有不同于默認(rèn)值的其他值的CO對(duì)應(yīng)的索引子樹(shù)為次子樹(shù)。通過(guò)為不同的插入進(jìn)程分配相應(yīng)的CO值, 將對(duì)熱點(diǎn)頁(yè)面的操作分配到與分配的CO值對(duì)應(yīng)的不同的次子樹(shù)中,從而減少了多個(gè)插入進(jìn)程之間的沖突,提高了數(shù)據(jù)并行插入的性能,使現(xiàn)有技術(shù)中的問(wèn)題得到了有效的解決?,F(xiàn)在繼續(xù)參考圖3,根據(jù)本公開(kāi)的一個(gè)實(shí)施例的方法進(jìn)一步包括在步驟318檢測(cè)是否出現(xiàn)過(guò)渡模式。如果在一個(gè)特定時(shí)間段內(nèi)在次子樹(shù)中插入鍵值的速度小于一個(gè)預(yù)定的閾值,則檢測(cè)到出現(xiàn)過(guò)渡模式。當(dāng)檢測(cè)到出現(xiàn)過(guò)渡模式,方法進(jìn)入步驟320,其中響應(yīng)于檢測(cè)到出現(xiàn)過(guò)渡模式, 將所有的次子樹(shù)與主子樹(shù)合并。將所有的次子樹(shù)與主子樹(shù)合并可以通過(guò)聯(lián)機(jī)索引重組 (ONLINE INDEX RE0RG)技術(shù)操作來(lái)實(shí)現(xiàn)。其中,掃描所有的次子樹(shù)以獲取次子樹(shù)中的鍵值; 將次子樹(shù)中的鍵值插入到主子樹(shù)中的相應(yīng)位置;刪除次子樹(shù)中的所有鍵值。當(dāng)在步驟322 判斷所有的次子樹(shù)與主子樹(shù)的合并完成,方法進(jìn)入步驟308,其中以正常模式訪問(wèn)索引。無(wú)論是在正常模式,熱點(diǎn)模式,還是在過(guò)渡模式,對(duì)索引的訪問(wèn)(例如查詢進(jìn)程) 都通過(guò)具有前綴CO的鍵值進(jìn)行。不同的是,在正常模式,前綴CO為默認(rèn)值,而在熱點(diǎn)模式和過(guò)渡模式,前綴CO為相應(yīng)的所分配的CO值。在正常模式下,查詢進(jìn)程在使用該索引訪問(wèn)數(shù)據(jù)時(shí),數(shù)據(jù)庫(kù)系統(tǒng)只需要WHERE子句中的條件再添加隱含條件"CO=默認(rèn)值";因?yàn)榇藭r(shí)所有鍵值的CO都具有默認(rèn)值,因此,隱含條件"CO=默認(rèn)值"實(shí)際上起不到任何過(guò)濾作用,但可以保證優(yōu)化器選擇訪問(wèn)效率較高的“索引匹配”(Index Matching)方式來(lái)訪問(wèn)該索引。在熱點(diǎn)模式和過(guò)渡模式下,查詢進(jìn)程在使用該索引訪問(wèn)數(shù)據(jù)時(shí),數(shù)據(jù)庫(kù)系統(tǒng)需要 WHERE子句中的條件再添加隱含條件"CO IN(0,1,2,...,255)〃 ;這會(huì)導(dǎo)致優(yōu)化器選擇訪問(wèn)“索引分屏”(Index Screening)方式來(lái)訪問(wèn)該索引,也就意味著所有索引子樹(shù)將被逐一訪問(wèn)一遍。實(shí)際上,由于大部分的鍵值位于CO =默認(rèn)值對(duì)應(yīng)的主子樹(shù)上,對(duì)次子樹(shù)的訪問(wèn)消耗會(huì)比較小,進(jìn)而對(duì)聯(lián)機(jī)查詢的影響也會(huì)比較有限。上面結(jié)合圖3詳細(xì)說(shuō)明了根據(jù)本公開(kāi)的方法的實(shí)施例。下面進(jìn)一步結(jié)合圖4詳細(xì)說(shuō)明根據(jù)本公開(kāi)的系統(tǒng)的實(shí)施例。圖4顯示了根據(jù)本公開(kāi)一個(gè)實(shí)施例的用于提高數(shù)據(jù)的并行插入性能的系統(tǒng)400。 圖4所示的用于提高數(shù)據(jù)的并行插入性能的系統(tǒng)400包括添加部件402,配置為為索引中的每個(gè)鍵值添加前綴C0,其中CO具有默認(rèn)值;分配部件404,配置為響應(yīng)于檢測(cè)到出現(xiàn)熱點(diǎn)模式,為每個(gè)并行插入進(jìn)程分配一個(gè)相應(yīng)的CO值,其中每個(gè)所分配的CO值與默認(rèn)值不同;插入部件406,在熱點(diǎn)模式下進(jìn)行插入操作時(shí),配置為判斷是否能夠以CO的默認(rèn)值插入鍵值如果能夠進(jìn)行插入,則以CO的默認(rèn)值插入鍵值;如果不能進(jìn)行插入,則以該插入進(jìn)程所分配的CO值插入鍵值。在熱點(diǎn)模式進(jìn)行插入操作后,由于CO取值的不同,索引被“分割”為多個(gè)子樹(shù),其中具有默認(rèn)值的CO對(duì)應(yīng)的索引子樹(shù)為主子樹(shù),具有不同于默認(rèn)值的其他值的 CO對(duì)應(yīng)的索引子樹(shù)為次子樹(shù)。圖4所示的用于提高數(shù)據(jù)的并行插入性能的系統(tǒng)400還包括合并部件408,配置為響應(yīng)于檢測(cè)到出現(xiàn)過(guò)渡模式,將所有的次子樹(shù)與主子樹(shù)合并。合并部件將所有的次子樹(shù)與主子樹(shù)合并的操作進(jìn)一步包括掃描所有的次子樹(shù)以獲取次子樹(shù)中的鍵值;將次子樹(shù)中的鍵值插入到主子樹(shù)中的相應(yīng)位置;刪除次子樹(shù)中的所有鍵值。以上結(jié)合具體實(shí)施例描述了本公開(kāi)的基本原理,但是,需要指出的是,對(duì)本領(lǐng)域的普通技術(shù)人員而言,能夠理解本公開(kāi)的方法和裝置的全部或者任何步驟或者部件,可以在任何計(jì)算裝置(包括處理器、存儲(chǔ)介質(zhì)等)或者計(jì)算裝置的網(wǎng)絡(luò)中,以硬件、固件、軟件或者它們的組合加以實(shí)現(xiàn),這是本領(lǐng)域普通技術(shù)人員在閱讀了本公開(kāi)的說(shuō)明的情況下運(yùn)用他們的基本編程技能就能實(shí)現(xiàn)的。因此,本公開(kāi)的目的還可以通過(guò)在任何計(jì)算裝置上運(yùn)行一個(gè)程序或者一組程序來(lái)實(shí)現(xiàn)。所述計(jì)算裝置可以是公知的通用裝置。因此,本公開(kāi)的目的也可以僅僅通過(guò)提供包含實(shí)現(xiàn)所述方法或者裝置的程序代碼的程序產(chǎn)品來(lái)實(shí)現(xiàn)。也就是說(shuō),這樣的程序產(chǎn)品也構(gòu)成本公開(kāi),并且存儲(chǔ)有這樣的程序產(chǎn)品的存儲(chǔ)介質(zhì)也構(gòu)成本公開(kāi)。顯然,所述存儲(chǔ)介質(zhì)可以是任何公知的存儲(chǔ)介質(zhì)或者將來(lái)所開(kāi)發(fā)出來(lái)的任何存儲(chǔ)介質(zhì)。還需要指出的是,在本公開(kāi)的裝置和方法中,顯然,各部件或各步驟是可以分解和 /或重新組合的。這些分解和/或重新組合應(yīng)視為本公開(kāi)的等效方案。并且,執(zhí)行上述系列處理的步驟可以自然地按照說(shuō)明的順序按時(shí)間順序執(zhí)行,但是并不需要一定按照時(shí)間順序執(zhí)行。某些步驟可以并行或彼此獨(dú)立地執(zhí)行。雖然已經(jīng)詳細(xì)說(shuō)明了本公開(kāi)及其優(yōu)點(diǎn),但是應(yīng)當(dāng)理解在不脫離由所附的權(quán)利要求所限定的本公開(kāi)的精神和范圍的情況下可以進(jìn)行各種改變、替代和變換。而且,本申請(qǐng)的術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者裝置不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素, 或者是還包括為這種過(guò)程、方法、物品或者裝置所固有的要素。在沒(méi)有更多限制的情況下,
由語(yǔ)句“包括一個(gè)......”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者裝
置中還存在另外的相同要素。
權(quán)利要求
1.一種用于提高數(shù)據(jù)的并行插入性能的方法,包括為索引中的每個(gè)鍵值添加前綴C0,其中CO具有默認(rèn)值;響應(yīng)于檢測(cè)到出現(xiàn)熱點(diǎn)模式,為并行的每個(gè)插入進(jìn)程分配一個(gè)相應(yīng)的CO值,其中每個(gè)所分配的CO值與默認(rèn)值不同;在熱點(diǎn)模式下進(jìn)行插入操作時(shí),判斷是否能夠以CO的默認(rèn)值插入鍵值 如果能夠進(jìn)行插入,則以CO的默認(rèn)值插入鍵值; 如果不能進(jìn)行插入,則以該插入進(jìn)程所分配的CO值插入鍵值。
2.根據(jù)權(quán)利要求1的方法,其中在熱點(diǎn)模式進(jìn)行插入操作后,具有默認(rèn)值的CO對(duì)應(yīng)的索引子樹(shù)為主子樹(shù),具有不同于默認(rèn)值的其他值的CO對(duì)應(yīng)的索引子樹(shù)為次子樹(shù)。
3.根據(jù)權(quán)利要求1或2的方法,其中如果在一個(gè)特定時(shí)間段內(nèi) 等待進(jìn)行插入操作的進(jìn)程數(shù)達(dá)到一個(gè)預(yù)定的閾值,且等待進(jìn)行插入操作的進(jìn)程的平均等待時(shí)間達(dá)到一個(gè)預(yù)定的閾值, 則檢測(cè)到出現(xiàn)熱點(diǎn)模式。
4.根據(jù)權(quán)利要求2的方法,其中如果在一個(gè)特定時(shí)間段內(nèi)在次子樹(shù)中插入鍵值的速度小于一個(gè)預(yù)定的閾值,則檢測(cè)到出現(xiàn)過(guò)渡模式。
5.根據(jù)權(quán)利要求4的方法,進(jìn)一步包括響應(yīng)于檢測(cè)到出現(xiàn)過(guò)渡模式,將所有的次子樹(shù)與主子樹(shù)合并。
6.根據(jù)權(quán)利要求5的方法,其中將所有的次子樹(shù)與主子樹(shù)合并進(jìn)一步包括 掃描所有的次子樹(shù)以獲取次子樹(shù)中的鍵值;將次子樹(shù)中的鍵值插入到主子樹(shù)中的相應(yīng)位置; 刪除次子樹(shù)中的所有鍵值。
7.根據(jù)權(quán)利要求6的方法,其中利用聯(lián)機(jī)索引重組實(shí)現(xiàn)將所有的次子樹(shù)與主子樹(shù)的合并。
8.根據(jù)權(quán)利要求1的方法,其中分別屬于不同的數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS的插入進(jìn)程所分配的CO彼此不同。
9.根據(jù)權(quán)利要求1-8中任一權(quán)利要求的方法,其中利用具有前綴CO的鍵值對(duì)索引進(jìn)行訪問(wèn)ο
10.一種用于提高數(shù)據(jù)的并行插入性能的系統(tǒng),包括添加部件,配置為為索引中的每個(gè)鍵值添加前綴C0,其中CO具有默認(rèn)值; 分配部件,配置為響應(yīng)于檢測(cè)到出現(xiàn)熱點(diǎn)模式,為每個(gè)并行插入進(jìn)程分配一個(gè)相應(yīng)的 CO值,其中每個(gè)所分配的CO值與默認(rèn)值不同;插入部件,在熱點(diǎn)模式下進(jìn)行插入操作時(shí),配置為判斷是否能夠以CO的默認(rèn)值插入鍵值如果能夠進(jìn)行插入,則以CO的默認(rèn)值插入鍵值; 如果不能進(jìn)行插入,則以該插入進(jìn)程所分配的CO值插入鍵值。
11.根據(jù)權(quán)利要求10的系統(tǒng),其中在熱點(diǎn)模式進(jìn)行插入操作后,具有默認(rèn)值的CO對(duì)應(yīng)的索引子樹(shù)為主子樹(shù),具有不同于默認(rèn)值的其他值的CO對(duì)應(yīng)的索引子樹(shù)為次子樹(shù)。
12.根據(jù)權(quán)利要求10或11的系統(tǒng),其中如果在一個(gè)特定時(shí)間段內(nèi) 等待進(jìn)行插入操作的進(jìn)程數(shù)達(dá)到一個(gè)預(yù)定的閾值,且等待進(jìn)行插入操作的進(jìn)程的平均等待時(shí)間達(dá)到一個(gè)預(yù)定的閾值, 則檢測(cè)到出現(xiàn)熱點(diǎn)模式。
13.根據(jù)權(quán)利要求11的系統(tǒng),其中如果在一個(gè)特定時(shí)間段內(nèi)在次子樹(shù)中插入鍵值的速度小于一個(gè)預(yù)定的閾值,則檢測(cè)到出現(xiàn)過(guò)渡模式。
14.根據(jù)權(quán)利要求13的系統(tǒng),進(jìn)一步包括合并部件,配置為響應(yīng)于檢測(cè)到出現(xiàn)過(guò)渡模式,將所有的次子樹(shù)與主子樹(shù)合并。
15.根據(jù)權(quán)利要求14的系統(tǒng),其中合并部件將所有的次子樹(shù)與主子樹(shù)合并的操作進(jìn)一步包括掃描所有的次子樹(shù)以獲取次子樹(shù)中的鍵值; 將次子樹(shù)中的鍵值插入到主子樹(shù)中的相應(yīng)位置; 刪除次子樹(shù)中的所有鍵值。
16.根據(jù)權(quán)利要求15的系統(tǒng),其中利用聯(lián)機(jī)索引重組實(shí)現(xiàn)將所有的次子樹(shù)與主子樹(shù)的口井O
17.根據(jù)權(quán)利要求10的系統(tǒng),其中分別屬于不同的數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS的插入進(jìn)程所分配的CO彼此不同。
18.根據(jù)權(quán)利要求10-17中任一權(quán)利要求的系統(tǒng),其中利用具有前綴CO的鍵值對(duì)索引進(jìn)行訪問(wèn)。
全文摘要
本發(fā)明公開(kāi)了一種用于提高數(shù)據(jù)的并行插入性能的方法,為索引中的每個(gè)鍵值添加前綴C0,其中C0具有默認(rèn)值;響應(yīng)于檢測(cè)到出現(xiàn)熱點(diǎn)模式,為并行的每個(gè)插入進(jìn)程分配一個(gè)相應(yīng)的C0值,其中每個(gè)所分配的C0值與默認(rèn)值不同;在熱點(diǎn)模式下進(jìn)行插入操作時(shí),判斷是否能夠以C0的默認(rèn)值插入鍵值如果能夠進(jìn)行插入,則以C0的默認(rèn)值插入鍵值;如果不能進(jìn)行插入,則以該插入進(jìn)程所分配的C0值插入鍵值。通過(guò)將并行的多個(gè)插入進(jìn)程對(duì)熱點(diǎn)的操作分配到不同的次子樹(shù)中,從而減少了多個(gè)插入進(jìn)程之間的沖突,提高了數(shù)據(jù)的并行插入的性能。
文檔編號(hào)G06F17/30GK102385588SQ20101027109
公開(kāi)日2012年3月21日 申請(qǐng)日期2010年8月31日 優(yōu)先權(quán)日2010年8月31日
發(fā)明者徐錫明, 鄧之嘉 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
青岛市| 沁阳市| 连平县| 巢湖市| 延吉市| 伊金霍洛旗| 论坛| 桦川县| 札达县| 兴和县| 资阳市| 盐源县| 庆安县| 台中市| 崇礼县| 新巴尔虎左旗| 股票| 莱州市| 宁国市| 阳谷县| SHOW| 金坛市| 许昌县| 永定县| 雅安市| 海原县| 嘉义市| 扎兰屯市| 德江县| 恩施市| 丽江市| 余江县| 青河县| 德江县| 澄迈县| 东乡| 浪卡子县| 宕昌县| 乌拉特前旗| 苗栗市| 绥德县|