两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

索引更新管線的制作方法

文檔序號(hào):9602485閱讀:442來(lái)源:國(guó)知局
索引更新管線的制作方法
【專利說明】索引更新管線
[0001]相關(guān)申請(qǐng)的交叉引用
[0002]本申請(qǐng)要求于2013年5月20日提交的美國(guó)專利申請(qǐng)第13,898,151號(hào)的權(quán)益,本申請(qǐng)的公開內(nèi)容通過引用的方式全部并入本文。
[0003]發(fā)明背景
[0004]分布式數(shù)據(jù)庫(kù)管理系統(tǒng)(“DBMS”)可允許存儲(chǔ)并檢索分布在多個(gè)計(jì)算節(jié)點(diǎn)中的數(shù)據(jù)。可將分布式DBMS中的數(shù)據(jù)組織成表,所述表進(jìn)而可包括項(xiàng)目集合(有時(shí)被描述為分區(qū))。為了改善系統(tǒng)的性能、可靠性和可用性,可將每個(gè)分區(qū)各自容納在單獨(dú)的計(jì)算節(jié)點(diǎn)上,單獨(dú)的計(jì)算節(jié)點(diǎn)處理請(qǐng)求以存儲(chǔ)并檢索其容納的項(xiàng)目。分布式數(shù)據(jù)庫(kù)還可采用復(fù)制,以維護(hù)在出現(xiàn)系統(tǒng)故障的情況下可采用的備用分區(qū)。
[0005]可將索引描述為允許定位存儲(chǔ)在分布式DBMS中的項(xiàng)目的數(shù)據(jù)結(jié)構(gòu)。例如,它們可允許通過掃描索引而非搜遍存儲(chǔ)在一個(gè)或多個(gè)分區(qū)上的全部項(xiàng)目而定位落在特定數(shù)據(jù)范圍內(nèi)的項(xiàng)目。分布式DBMS可包含局部和全局索引。可將局部索引描述為指代存儲(chǔ)于單個(gè)分區(qū)上的項(xiàng)目的索引。術(shù)語(yǔ)全局索引可用于描述指代由表維護(hù)的全部數(shù)據(jù)的索引。由于復(fù)制,分布式DBMS可包含每個(gè)局部和全局索引的多個(gè)版本。當(dāng)添加、刪除或變更由分布式DBMS維護(hù)的數(shù)據(jù)時(shí),可更新若干個(gè)這些索引。
[0006]附圖簡(jiǎn)述
[0007]本文提供的附圖被設(shè)計(jì)成圖示示例性實(shí)施方案,且不旨在限制本公開的范圍。
[0008]圖1A是描繪采用散列和范圍鍵函數(shù)來(lái)訪問與計(jì)算節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)分區(qū)的分布式DBMS的實(shí)施方案的框圖。
[0009]圖1B是描繪分布式DBMS的實(shí)施方案的框圖,其中對(duì)參與基于法定個(gè)數(shù)(quorum)的事務(wù)的一組分區(qū)執(zhí)行操作。
[0010]圖2A是描繪具有相關(guān)聯(lián)的復(fù)制伙伴和索引結(jié)構(gòu)的分區(qū)表的框圖。
[0011]圖2B是描繪具有兩個(gè)相關(guān)聯(lián)的索引分區(qū)的表分區(qū)的框圖。
[0012]圖3是描繪由索引值的變更導(dǎo)致的多個(gè)索引更新的說明性實(shí)例的圖示。
[0013]圖4描繪包含更新索引結(jié)構(gòu)的指令的復(fù)制日志的實(shí)施方案。
[0014]圖5是描繪用于將指令從一個(gè)分區(qū)記錄并發(fā)送到一個(gè)或多個(gè)受影響分區(qū)的實(shí)施方案的流程圖。
[0015]圖6是描繪用于配置發(fā)送和接收緩沖區(qū)以在索引結(jié)構(gòu)上傳輸并執(zhí)行指令的實(shí)施方案的框圖。
[0016]圖7A是描繪用于在出現(xiàn)系統(tǒng)故障之后恢復(fù)接收緩沖區(qū)的內(nèi)容的實(shí)施方案的流程圖。
[0017]圖7B是描繪用于記錄由分區(qū)執(zhí)行的最后指令的數(shù)據(jù)結(jié)構(gòu)的實(shí)施方案的圖示。
[0018]圖8是描繪用于利用記錄的指令來(lái)分裂分區(qū)的實(shí)施方案的流程圖。
[0019]圖9是描繪用于基于接收分區(qū)處理指令的容量而將流量控制應(yīng)用到指令的傳輸?shù)膶?shí)施方案的流程圖。
[0020]圖10是描繪計(jì)算環(huán)境的實(shí)施方案的框圖,其中本公開的方面可被實(shí)踐。
【具體實(shí)施方式】
[0021]分布式DBMS可維護(hù)由表組織的數(shù)據(jù),每個(gè)表包含項(xiàng)目集合。所述項(xiàng)目可各自包括一組名稱值對(duì)、由列名稱識(shí)別的一組值或未定義值。在各個(gè)實(shí)施方案中,個(gè)別項(xiàng)目可能不符合任何特定模式,且每個(gè)項(xiàng)目相應(yīng)地包含不同數(shù)量的值一其中的每個(gè)值可具有不同的邏輯意義和類型。為了方便起見,具有相同邏輯意義和類型的值(諸如由相同名稱或列識(shí)別的那些值)可被稱為列。DBMS的其它實(shí)施方案可執(zhí)行特定的結(jié)構(gòu)要求,諸如行和列格式、唯一性約束、主鍵和外來(lái)鍵關(guān)系等。分布式DBMS的實(shí)例包括鍵值數(shù)據(jù)庫(kù)、關(guān)系數(shù)據(jù)庫(kù)、非結(jié)構(gòu)性查詢語(yǔ)言(“NoSQL”)數(shù)據(jù)庫(kù)、面向?qū)ο蟮臄?shù)據(jù)庫(kù)等。
[0022]表中的項(xiàng)目可由主鍵值識(shí)別。每個(gè)主鍵值(整體而言)唯一地識(shí)別存儲(chǔ)在表中的項(xiàng)目。為了訪問項(xiàng)目,分布式DBMS的客戶可發(fā)出包括與所述項(xiàng)目對(duì)應(yīng)的主鍵值的請(qǐng)求。實(shí)施方案還可支持使用輔助鍵的訪問,所述輔助鍵可能不一定與表中精確一個(gè)項(xiàng)目對(duì)應(yīng)。
[0023]可在創(chuàng)建表時(shí)定義主鍵。對(duì)主鍵的描述可與表的模式的其它方面一起存儲(chǔ),其可包括任何所需的列、有關(guān)值的約束等。對(duì)于主鍵,模式可包括對(duì)主鍵的長(zhǎng)度和值的描述。例如,可將主鍵定義為256位的二進(jìn)制值或定義為具有可變長(zhǎng)度的字符串。
[0024]還可將主鍵定義為具有內(nèi)部結(jié)構(gòu)。雖然在一些實(shí)施方案中,主鍵的結(jié)構(gòu)可僅由單個(gè)值構(gòu)成,但是實(shí)施方案可支持或要求主鍵包括兩個(gè)或多個(gè)值的合成。例如,可將主鍵劃分為兩部分,散列鍵和范圍鍵。主鍵的這些部分一起可反映或定義項(xiàng)目集合內(nèi)的分級(jí)關(guān)系。散列鍵可識(shí)別分級(jí)結(jié)構(gòu)內(nèi)的一組項(xiàng)目,而范圍鍵識(shí)別組內(nèi)的特定項(xiàng)目。
[0025]還可在分布式DBMS中使用主鍵以及分區(qū)。為了支持大量數(shù)據(jù)和高工作負(fù)載需求,分布式DBMS可支持在若干個(gè)計(jì)算節(jié)點(diǎn)上對(duì)表中的數(shù)據(jù)進(jìn)行分區(qū)??芍С指鞣N形式的分區(qū)。在水平分區(qū)中,每個(gè)計(jì)算節(jié)點(diǎn)可維護(hù)項(xiàng)目集合的子集。在垂直分區(qū)中,可基于列或字段劃分?jǐn)?shù)據(jù),使得每個(gè)計(jì)算節(jié)點(diǎn)可包含在表上定義的列的子集。一些分布式DBMS可組合這兩種形式的分區(qū)。
[0026]如本文中使用,術(shù)語(yǔ)水平和垂直分區(qū)指的是與前面段落一致的數(shù)據(jù)集的劃分。實(shí)施方案可將每個(gè)水平或垂直分區(qū)托管在單獨(dú)的計(jì)算節(jié)點(diǎn)上。如本文中使用,術(shù)語(yǔ)分區(qū)通常指的是托管在計(jì)算節(jié)點(diǎn)上的水平或垂直分區(qū),然而該術(shù)語(yǔ)也可包括僅具有單個(gè)分區(qū)的表。如本文中使用,術(shù)語(yǔ)扇出分區(qū)、無(wú)投票權(quán)的成員和復(fù)制伙伴指的是分區(qū)的子類別。
[0027]水平分區(qū)的一種方法涉及應(yīng)用以隨機(jī)或半隨機(jī)方式在各種計(jì)算節(jié)點(diǎn)之間分布數(shù)據(jù)的方法。圖1A描繪一種這樣的方法。主鍵100包括散列鍵成分102和范圍鍵成分104。數(shù)據(jù)跨分區(qū)108、110和112的隨機(jī)或半隨機(jī)分布可改善分布式DBMS 114的性能。相應(yīng)地,基于散列函數(shù)106到散列鍵成分102的應(yīng)用,可將項(xiàng)目存儲(chǔ)在分區(qū)108、110和112中的一個(gè)上。
[0028]散列函數(shù)106可以是將主鍵值轉(zhuǎn)換成另一值(諸如整數(shù))的計(jì)算機(jī)代碼,這可能被描述為鍵空間。散列函數(shù)106可被配置來(lái)將輸入主值轉(zhuǎn)換為鍵空間中的半隨機(jī)點(diǎn),其中在函數(shù)的每次調(diào)用時(shí),將給定的輸入值轉(zhuǎn)換成鍵空間中的相同點(diǎn)。給定的散列函數(shù)可從輸入值映射到鍵空間內(nèi)的有限點(diǎn)集或有限桶集。在各種實(shí)施方案中,散列函數(shù)106可將映射聚集在某些點(diǎn)附近。對(duì)于一些散列函數(shù),當(dāng)輸入值類似時(shí),這種情況可能發(fā)生。偏移可降低性能,因?yàn)槠淇蓪?dǎo)致項(xiàng)目在特定計(jì)算節(jié)點(diǎn)的不均勻分布。防止該問題發(fā)生的一種方法是使用映射到鍵空間內(nèi)的大量離散點(diǎn)的散列函數(shù)。然后,可將鍵空間的區(qū)域指派到計(jì)算節(jié)點(diǎn)。替代地,可將鍵空間的區(qū)域指派到指代計(jì)算節(jié)點(diǎn)的中間數(shù)據(jù)結(jié)構(gòu)。可將不同的區(qū)域映射到相同計(jì)算節(jié)點(diǎn)或中間數(shù)據(jù)結(jié)構(gòu)。
[0029]返回圖1A,可將主鍵100的散列鍵102作為輸入值提供給散列函數(shù)106。對(duì)于散列鍵102的給定值,散列函數(shù)106的應(yīng)用產(chǎn)生與散列鍵116對(duì)應(yīng)的輸出。散列函數(shù)106的輸出對(duì)于給定輸入值是一致的。其它值到散列函數(shù)106的應(yīng)用可產(chǎn)生其它潛在輸出118,但是任何給定輸入值的結(jié)果是一致的。一致的輸出116可用于確定最初存儲(chǔ)與主鍵100對(duì)應(yīng)的項(xiàng)目的地點(diǎn)。此外,因?yàn)樯⒘泻瘮?shù)106的輸出對(duì)于給定的輸入值是一致的,所以可將散列鍵102應(yīng)用到散列函數(shù)106,以確定之前存儲(chǔ)項(xiàng)目的地點(diǎn)。
[0030]雖然可將表分裂成多個(gè)水平分區(qū),但是每個(gè)水平分區(qū)可在計(jì)算節(jié)點(diǎn)之間進(jìn)行復(fù)制,使得將相同的項(xiàng)目存儲(chǔ)在一個(gè)以上的計(jì)算節(jié)點(diǎn)上,或更一般而言,可將相同的水平分區(qū)托管在一個(gè)以上的計(jì)算節(jié)點(diǎn)上。這樣可改善系統(tǒng)的可用性,因?yàn)槿绻?jì)算節(jié)點(diǎn)中的一個(gè)變得不可用,則具有復(fù)制數(shù)據(jù)的另一計(jì)算節(jié)點(diǎn)也許能夠步進(jìn)且取代其位置。復(fù)制可以通過允許在多個(gè)計(jì)算節(jié)點(diǎn)之間共享負(fù)載來(lái)改善系統(tǒng)的可擴(kuò)展性。
[0031 ] 復(fù)制分區(qū)之間的一致性可使用涉及復(fù)制分區(qū)之間的法定個(gè)數(shù)或一致性的技術(shù)來(lái)維護(hù)。實(shí)施方案可能要求僅在當(dāng)前活動(dòng)的計(jì)算節(jié)點(diǎn)之間的法定個(gè)數(shù),這樣可改善可用性,因?yàn)槠洳灰笕坑?jì)算節(jié)點(diǎn)在線。
[0032]在一些實(shí)施方案中,法定個(gè)數(shù)可能涉及確定參與讀或?qū)懖僮鞯挠?jì)算節(jié)點(diǎn)的最小數(shù)量。對(duì)于讀操作,至少最小數(shù)量的計(jì)算節(jié)點(diǎn)必須響應(yīng)于用以讀取項(xiàng)目的請(qǐng)求。因?yàn)椴灰欢⒓磸?fù)制數(shù)據(jù),所以情況可能是,兩個(gè)給定的計(jì)算節(jié)點(diǎn)將對(duì)于相同項(xiàng)目具有不同值。如果這樣,則一些實(shí)施方案可返回?cái)?shù)據(jù)的每個(gè)版本,連同描述該版本的信息。對(duì)于寫操作,法定個(gè)數(shù)可涉及確認(rèn)寫操作的成功的計(jì)算節(jié)點(diǎn)的最小數(shù)量。例如,如果三個(gè)計(jì)算節(jié)點(diǎn)共享復(fù)制數(shù)據(jù),則寫操作可能需要三個(gè)計(jì)算節(jié)點(diǎn)中的兩個(gè)。實(shí)施方案可基于所涉及的操作類型施加不同的法定個(gè)數(shù)需求。例如,寫操作可涉及計(jì)算節(jié)點(diǎn)的更高閾值數(shù),以便實(shí)現(xiàn)法定個(gè)數(shù)。
[0033]圖1B描繪由主機(jī)(master) 154與法定個(gè)數(shù)伙伴152和156構(gòu)成的分布式DBMS 158的實(shí)施方案。這些中的每一個(gè)可被托管在單獨(dú)的計(jì)算節(jié)點(diǎn)上,并且還可被定位在單獨(dú)的數(shù)據(jù)中心內(nèi)。客戶端應(yīng)用150可發(fā)出請(qǐng)求以對(duì)主分區(qū)執(zhí)行各種操作,諸如讀或?qū)憯?shù)據(jù)。一些實(shí)施方案可針對(duì)全部操作使用相同的主機(jī),而其它實(shí)施方案可允許計(jì)算節(jié)點(diǎn)中的任何一個(gè)充當(dāng)主機(jī)。在接收所述請(qǐng)求之后,主機(jī)154保護(hù)法定個(gè)數(shù)伙伴152和156的參與。所涉及的法定個(gè)數(shù)伙伴的數(shù)量可取決于法定個(gè)數(shù)所需要的數(shù)量。替代地,主機(jī)154可基于當(dāng)前可操作的大多數(shù)法定個(gè)數(shù)伙伴的參與而確定將出現(xiàn)的法定個(gè)數(shù)。一旦已在足夠數(shù)量的計(jì)算節(jié)點(diǎn)上成功地處理請(qǐng)求(根據(jù)法定個(gè)數(shù)需要),則可將操作的結(jié)果返回到客戶端應(yīng)用150。
[0034]分布式數(shù)據(jù)庫(kù)可支持廣泛多樣的操作。非限制性的實(shí)例包括放置操作,其涉及存儲(chǔ)或更新項(xiàng)目;和讀操作,其涉及檢索與項(xiàng)目對(duì)應(yīng)的值。兩種操作可提供主鍵值以供分布式DBMS用于識(shí)別項(xiàng)目??捎梢恍?shí)施方案支持的操作的另一實(shí)例是范圍查詢。范圍查詢涉及返回符合某些固定標(biāo)準(zhǔn)集的項(xiàng)目跨度。例如,分布式DBMS可包括含有地址信息的項(xiàng)目表,客戶端希望從該項(xiàng)目表檢索與特定郵政編碼對(duì)應(yīng)的全部項(xiàng)目。在采用散列函數(shù)來(lái)使用主鍵的前導(dǎo)部分隨機(jī)分布數(shù)據(jù)的分布式DBMS中,如果主鍵的前導(dǎo)部分是固定的,則范圍查詢可能無(wú)效。
[0035]通過使用除主索引以外的索引結(jié)構(gòu)而使對(duì)數(shù)據(jù)的各種操作更有效。在鍵值數(shù)據(jù)庫(kù)中,輔助索引
當(dāng)前第1頁(yè)1 2 3 4 5 6 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
阿瓦提县| 如皋市| 克什克腾旗| 朔州市| 河西区| 盈江县| 峨眉山市| 津市市| 安溪县| 黑水县| 平原县| 福州市| 邢台市| 浦城县| 赞皇县| 河北省| 芜湖县| 海丰县| 宁南县| 抚远县| 沛县| 临清市| 淳安县| 东丽区| 织金县| 同仁县| 华蓥市| 乐业县| 西林县| 鹤壁市| 百色市| 沙河市| 枣强县| 桂东县| 合川市| 江城| 龙海市| 天水市| 大石桥市| 尼木县| 浏阳市|