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

管理數(shù)據(jù)庫節(jié)點(diǎn)的制作方法

文檔序號(hào):9756901閱讀:788來源:國知局
管理數(shù)據(jù)庫節(jié)點(diǎn)的制作方法
【專利說明】
【背景技術(shù)】
[0001]在并發(fā)執(zhí)行環(huán)境中,在大規(guī)模并行處理系統(tǒng)上處理數(shù)據(jù)庫查詢。在這樣的環(huán)境中,多個(gè)數(shù)據(jù)庫節(jié)點(diǎn)托管多個(gè)數(shù)據(jù)庫的多個(gè)表,等等。投影是數(shù)據(jù)庫表的所有數(shù)據(jù)的物理存儲(chǔ)。投影包括分布于多個(gè)節(jié)點(diǎn)的多個(gè)段。段是數(shù)據(jù)的部分,通常由表中的列值規(guī)定。
[0002]通常,節(jié)點(diǎn)存儲(chǔ)主投影和用于故障容錯(cuò)的好友投影的數(shù)據(jù)段。以此方式,如果節(jié)點(diǎn)出故障,可從集群中的另一個(gè)節(jié)點(diǎn)(作為備份的好友節(jié)點(diǎn))獲得停機(jī)節(jié)點(diǎn)上的數(shù)據(jù)段的復(fù)制。如此,當(dāng)所有節(jié)點(diǎn)開機(jī)時(shí),查詢執(zhí)行可使用所有可用資源。此外,當(dāng)一個(gè)或多個(gè)節(jié)點(diǎn)停機(jī)時(shí),一個(gè)或多個(gè)節(jié)點(diǎn)可承擔(dān)雙重職責(zé):服務(wù)其自身的請(qǐng)求以及故障節(jié)點(diǎn)的請(qǐng)求。事實(shí)上,如果其存儲(chǔ)器或其他資源耗盡,則由于節(jié)點(diǎn)正執(zhí)行雙重職責(zé),好友節(jié)點(diǎn)會(huì)成為犧牲節(jié)點(diǎn)。在一個(gè)示例的環(huán)境中,期望的吞吐量下降大約N倍,其中N是同時(shí)進(jìn)行的查詢的總數(shù)。
【附圖說明】
[0003]在下面的詳細(xì)描述中且參照多個(gè)圖描述一些示例,圖中:
[0004]圖1是根據(jù)示例的可用于管理數(shù)據(jù)庫節(jié)點(diǎn)的示例數(shù)據(jù)庫管理系統(tǒng)(DBMS)的框圖;
[0005]圖2是根據(jù)示例的示例分割環(huán)的框圖;
[0006]圖3是根據(jù)示例的示例分割環(huán)的框圖;
[0007]圖4是根據(jù)示例的用于管理數(shù)據(jù)庫節(jié)點(diǎn)的示例方法的過程流程圖;
[0008]圖5是根據(jù)示例的可用于管理數(shù)據(jù)庫節(jié)點(diǎn)的示例系統(tǒng)的框圖;以及
[0009]圖6是根據(jù)示例的示出存儲(chǔ)適用于管理數(shù)據(jù)庫節(jié)點(diǎn)的代碼的示例有形的、非暫時(shí)性機(jī)器可讀介質(zhì)的框圖。
【具體實(shí)施方式】
[0010]通常用結(jié)構(gòu)化查詢語言(例如,SQL)表達(dá)數(shù)據(jù)庫查詢。SQL是在關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)中管理數(shù)據(jù)的編程語言。SQL包括數(shù)據(jù)定義語言和數(shù)據(jù)操縱語言。SQL的范圍包括數(shù)據(jù)插入、查詢、更新和刪除,模式創(chuàng)建和修改,以及數(shù)據(jù)訪問控制。查詢指定待訪問的表、列,以及用于選擇表中的行的謂詞。
[0011]圖1是根據(jù)示例的適用于管理數(shù)據(jù)庫節(jié)點(diǎn)的DBMS100的框圖。DBMS 100包括控制組織及其終端用戶對(duì)數(shù)據(jù)庫102的創(chuàng)建、維護(hù)、以及使用的計(jì)算機(jī)程序。DBMS 100包括數(shù)據(jù)庫102、優(yōu)化器104、以及犧牲器105。查詢針對(duì)典型的關(guān)系型DBMS的特定數(shù)據(jù)庫102進(jìn)行,數(shù)據(jù)庫102包括被組織成表、行、和列的數(shù)據(jù)。
[0012]優(yōu)化器104可為生成每個(gè)查詢的查詢計(jì)劃(未示出)的軟件。查詢計(jì)劃描述處理查詢的數(shù)據(jù)的特定算法,以及數(shù)據(jù)所位于的位置。在執(zhí)行查詢之前,優(yōu)化器104識(shí)別待查詢的特定數(shù)據(jù)駐留在哪。
[0013]優(yōu)化器104在執(zhí)行前編譯每個(gè)查詢。這使得優(yōu)化器104能夠確定托管特定數(shù)據(jù)段的數(shù)據(jù)庫節(jié)點(diǎn)是否停機(jī)。如本文所用的,術(shù)語“停機(jī)節(jié)點(diǎn)”指已出故障或在某種程度上不能操作的節(jié)點(diǎn)。數(shù)據(jù)段是數(shù)據(jù)庫102中的數(shù)據(jù)的特定部分。如果托管數(shù)據(jù)段的節(jié)點(diǎn)停機(jī),優(yōu)化器104嘗試用好友節(jié)點(diǎn)替代停機(jī)節(jié)點(diǎn)的引用。好友節(jié)點(diǎn)是也托管數(shù)據(jù)段的備份節(jié)點(diǎn)。好友節(jié)點(diǎn)具有與停機(jī)節(jié)點(diǎn)上的數(shù)據(jù)段相同的數(shù)據(jù)段。在每個(gè)節(jié)點(diǎn)及對(duì)應(yīng)的好友節(jié)點(diǎn)上以同樣的方式分割數(shù)據(jù)段。注意到,還可使用段組。段組包括多個(gè)數(shù)據(jù)段。
[0014]在一個(gè)示例中,分割投影,使得每個(gè)節(jié)點(diǎn)具有一個(gè)或多個(gè)本地段。以此方式,如果存在單個(gè)的停機(jī)節(jié)點(diǎn),則犧牲器106選擇多個(gè)犧牲節(jié)點(diǎn),每個(gè)僅承擔(dān)一點(diǎn)工作,而不是一個(gè)犧牲節(jié)點(diǎn)承擔(dān)故障節(jié)點(diǎn)上的每個(gè)段的雙重職責(zé)。例如,如果每個(gè)節(jié)點(diǎn)具有四個(gè)本地段,可選擇四個(gè)犧牲節(jié)點(diǎn),其中每個(gè)節(jié)點(diǎn)執(zhí)行五個(gè)段的工作價(jià)值。
[0015]投影設(shè)計(jì)108識(shí)別數(shù)據(jù)庫表中的每個(gè)數(shù)據(jù)段的主投影以及好友投影。在一個(gè)節(jié)點(diǎn)上托管主投影的數(shù)據(jù)段,且在另一個(gè)節(jié)點(diǎn)上托管屬于好友投影的數(shù)據(jù)段的副本。在投影的上下文中,標(biāo)記主和好友是相對(duì)于訪問屬于這些投影的段的查詢計(jì)劃的。例如,對(duì)于給定的表t,優(yōu)化器可選擇投影pi為一些查詢的主,而選擇投影p2為其他查詢的主。對(duì)于給定的表t,優(yōu)化器104可選擇主投影pi為一些查詢的主,且在托管屬于pi的段的節(jié)點(diǎn)出故障的事件中,優(yōu)化器104可選擇好友投影p2。
[0016]圖2是根據(jù)示例的示例分割環(huán)200的框圖。使用投影設(shè)計(jì)202表示分割環(huán)200。投影設(shè)計(jì)202表示為每個(gè)節(jié)點(diǎn)204示出的數(shù)據(jù)。環(huán)200包括通過網(wǎng)絡(luò)206通信的數(shù)據(jù)庫節(jié)點(diǎn)204。根據(jù)投影設(shè)計(jì)202,每個(gè)節(jié)點(diǎn)204規(guī)定節(jié)點(diǎn)號(hào)、主投影以及好友投影。例如,分割環(huán)200圖示出節(jié)點(diǎn)I托管數(shù)據(jù)段I的主投影以及數(shù)據(jù)段8的好友投影。
[0017]優(yōu)化器104用好友節(jié)點(diǎn)上對(duì)應(yīng)的好友投影替換故障節(jié)點(diǎn)204的主投影。在一個(gè)實(shí)施例中,如果好友節(jié)點(diǎn)開機(jī),犧牲器106向分割環(huán)200中的下一個(gè)節(jié)點(diǎn)204傳送雙重任務(wù)責(zé)任。例如,如果節(jié)點(diǎn)5停機(jī),則不能從主投影獲得段5。如此,從節(jié)點(diǎn)6上的好友投影訪問段5。通常,選擇節(jié)點(diǎn)6為犧牲節(jié)點(diǎn)。但是,在示例中,通過使用段6的備份投影替代主投影,節(jié)點(diǎn)7能夠成為犧牲??森h(huán)繞該環(huán)傳送這樣的“推卸責(zé)任”,直至到達(dá)停機(jī)節(jié)點(diǎn)。在上面的示例中,可選擇除了節(jié)點(diǎn)5之外的任何節(jié)點(diǎn)作為犧牲節(jié)點(diǎn)。
[0018]如果存在許多并發(fā)會(huì)話,可在其余的開機(jī)節(jié)點(diǎn)中隨機(jī)選擇犧牲節(jié)點(diǎn)。如本文所用的,術(shù)語“開機(jī)節(jié)點(diǎn)”指可操作的節(jié)點(diǎn)。以此方式,由于針對(duì)停機(jī)節(jié)點(diǎn)中的每個(gè)獨(dú)立選擇了單個(gè)好友投影,可改善集群上期望的吞吐量。注意到,圖2僅表示分割環(huán)的一個(gè)可能的配置,且各種其他的配置是可能的。
[0019]在示例中,以此方式為節(jié)點(diǎn)停機(jī)故障管理數(shù)據(jù)庫節(jié)點(diǎn),改善了期望的吞吐量,使得如果存在m個(gè)并發(fā)的執(zhí)行線程,且停機(jī)節(jié)點(diǎn)的可能犧牲列表具有長度V,則每個(gè)節(jié)點(diǎn)平均具有m+ceiling(m/v)個(gè)段(ceiling:向上舍入),而不是像傳統(tǒng)方法那樣具有2m個(gè)段。如果數(shù)據(jù)庫節(jié)點(diǎn)204中的每個(gè)在每個(gè)段中分別包含相似的數(shù)據(jù)量,則性能大概改善2m/(m+m/v)倍。對(duì)于I個(gè)節(jié)點(diǎn)停機(jī),V是N-1,其中N是集群中的總節(jié)點(diǎn)。如此,可實(shí)現(xiàn)2m/(m+ (m/(N-1)))倍,對(duì)于N = 40且m = 60,是1.96。對(duì)于兩個(gè)出故障的節(jié)點(diǎn)停機(jī),兩個(gè)列表中更短的長度是V= ((m-d)/d)/2,且因此,可實(shí)現(xiàn)2m/(m+(m/( ((m_d)/d)/2))) = 1.84倍。一般來說,停機(jī)節(jié)點(diǎn)的特定模式對(duì)應(yīng)于可能犧牲列表的集合,且相對(duì)于之前方法的期望的性能改善是2m/ (m+ceiling(m/v))倍,其中V是最短的可能犧牲列表的長度。這是不考慮其他因素的影響的長期平均,例如,緩沖區(qū)緩存的退化性能、由于更好的存儲(chǔ)器利用而產(chǎn)生的改善性能、以及較少的I/O沖突。
[0020]在示例中,犧牲器106識(shí)別所選擇好友策略的好友路徑的可能犧牲節(jié)點(diǎn)204的集合。節(jié)點(diǎn)204包括按照好友路徑的分割環(huán)200順序的任意開機(jī)節(jié)點(diǎn)序列,始于滿足停機(jī)節(jié)點(diǎn)的最小成本好友節(jié)點(diǎn)。由于可選擇此集合中的任意節(jié)點(diǎn)來執(zhí)行雙重職責(zé),因此這是“可能犧牲節(jié)點(diǎn)”的集合。分割環(huán)200上相鄰?fù)C(jī)節(jié)點(diǎn)之間的子序列中的每個(gè)定義可能犧牲節(jié)點(diǎn)的序列。
[0021]存在隨機(jī)選擇雙重職責(zé)節(jié)點(diǎn)的幾個(gè)好處。更多的節(jié)點(diǎn)涉及到承擔(dān)停機(jī)節(jié)點(diǎn)的額外工作。由于工作隨機(jī)分布于所有開機(jī)節(jié)點(diǎn),因此響應(yīng)時(shí)間比相同節(jié)點(diǎn)承擔(dān)所有查詢的額外工作的之前方法更快。用戶并發(fā)運(yùn)行查詢?cè)黾恿送掏铝俊?br>[0022]圖3是示例分割環(huán)300的框圖。在分割環(huán)300中,投影設(shè)計(jì)302表示每個(gè)數(shù)據(jù)段。投影設(shè)計(jì)302規(guī)定數(shù)據(jù)段號(hào)、主路徑、以及好友路徑。主路徑規(guī)定托管段η的主投影的節(jié)點(diǎn)。類似地,好友路徑規(guī)定了托管段η的好友投影的節(jié)點(diǎn)。根據(jù)分割環(huán)300,如果節(jié)點(diǎn)4停機(jī),則數(shù)據(jù)段4的主投影不可用。因此,使用(托管段4的好友投影的)節(jié)點(diǎn)2。
[0023]在示例中,犧牲器106構(gòu)造將主投影節(jié)點(diǎn)映射到段組號(hào)的映射(本文稱作主段)??赡軤奚?jié)點(diǎn)的序列始于主投影上停機(jī)節(jié)點(diǎn)的段,其為4。應(yīng)用以下序列,繼續(xù)到但不包括停機(jī)的或在偽代碼I中出現(xiàn)的下一節(jié)點(diǎn):
[0024]primaryNodelnactive.: while(!isNodeDown(curNode)&&
[0025]!primaryNodelnactive.find(curNode)) {
[0026]potentialVictimNodesList.1nsert(curNode);curNode=
[0027]buddyNode[curSegment];/*n2*/curSegment =
[0028]primarySegment[curNode];/^segment I*/}
[0029]偽代碼I
[°03°] 如果節(jié)點(diǎn)N開機(jī),isNodeDown(N)函數(shù)返回真,否則返回假。如果curNode存在于primaryNodelnactive 列表中,primaryNodelnactive.find(curNode)返回真。primaryNodelnactive列表包括不從主投影訪問任何數(shù)據(jù)段的所有開機(jī)節(jié)點(diǎn)。因此,primaryNodelnactive列表可包括替代從好友投影訪問數(shù)據(jù)段的開機(jī)節(jié)點(diǎn)。一旦獲取potentialVictimNodesList,可選擇基于隨機(jī)數(shù)的犧牲節(jié)點(diǎn)。buddyNode O是索引表示數(shù)據(jù)段號(hào)的矢量。buddyNode(索引)表示托管段號(hào)(“索引”)的節(jié)點(diǎn)。
[0031 ] 假設(shè)potentialVictimNodes的長度為M。在I
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
集贤县| 龙山县| 连云港市| 晋宁县| 抚远县| 子洲县| 翼城县| 高碑店市| 洞头县| 延吉市| 奉化市| 九龙县| 佛学| 页游| 诸暨市| 福建省| 纳雍县| 府谷县| 普格县| 遂宁市| 渝北区| 禄丰县| 锡林浩特市| 合肥市| 疏勒县| 镇远县| 昌邑市| 吴旗县| 溆浦县| 壶关县| 苍梧县| 漾濞| 杭锦后旗| 克什克腾旗| 霍邱县| 清远市| 罗山县| 永川市| 濉溪县| 防城港市| 嵩明县|