[發(fā)明專利]分布式數(shù)據(jù)庫(kù)中子表分裂的方法、子表節(jié)點(diǎn)和系統(tǒng)有效
| 申請(qǐng)?zhí)枺?/td> | 201510767508.9 | 申請(qǐng)日: | 2015-11-11 |
| 公開(kāi)(公告)號(hào): | CN105354315B | 公開(kāi)(公告)日: | 2018-10-30 |
| 發(fā)明(設(shè)計(jì))人: | 畢杰山;房浩;鐘超強(qiáng);郭益君 | 申請(qǐng)(專利權(quán))人: | 華為技術(shù)有限公司 |
| 主分類號(hào): | G06F17/30 | 分類號(hào): | G06F17/30 |
| 代理公司: | 北京億騰知識(shí)產(chǎn)權(quán)代理事務(wù)所 11309 | 代理人: | 陳霽 |
| 地址: | 518129 廣東*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 分布式 數(shù)據(jù)庫(kù) 中子 分裂 方法 節(jié)點(diǎn) 系統(tǒng) | ||
本發(fā)明涉及一種分布式數(shù)據(jù)庫(kù)中子表分裂的方法、子表節(jié)點(diǎn)和系統(tǒng),根據(jù)預(yù)設(shè)條件,設(shè)置第一子表,第一子表是指為存儲(chǔ)新的鍵?值類型的數(shù)據(jù)而預(yù)留的空表;該方法包括:當(dāng)新的鍵?值類型的數(shù)據(jù)需要存儲(chǔ)到第一子表中時(shí),接收用戶輸入的子表分裂命令;根據(jù)子表分裂命令,將狀態(tài)表中第一子表的狀態(tài)標(biāo)識(shí)更新為不再提供讀寫(xiě)服務(wù),并將第一子表分裂為至少兩個(gè)第二子表,更新?tīng)顟B(tài)表中第二子表的狀態(tài)標(biāo)識(shí)為可提供讀寫(xiě)服務(wù);指示將第二子表的存儲(chǔ)位置信息記錄在元數(shù)據(jù)表中。因此,通過(guò)在用戶表中預(yù)留一個(gè)當(dāng)前數(shù)據(jù)存儲(chǔ)時(shí)保持為空的子表,當(dāng)需要將數(shù)據(jù)存儲(chǔ)到該子表中時(shí),先將該子表進(jìn)行分裂,分裂完成后再存入數(shù)據(jù),實(shí)現(xiàn)了用戶表中子表的快速分裂。
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)庫(kù)領(lǐng)域,尤其涉及一種分布式數(shù)據(jù)庫(kù)中子表分裂方法、子表節(jié)點(diǎn)和系統(tǒng)。
背景技術(shù)
在大多數(shù)分布式數(shù)據(jù)庫(kù)中,通常采用KeyValue類型的存儲(chǔ)方式,即將用戶需要存儲(chǔ)的數(shù)據(jù)存放在Value部分,構(gòu)建與Value對(duì)應(yīng)的Key,當(dāng)用戶需要查找Value時(shí),通過(guò)Key索引查找對(duì)應(yīng)的Value。在數(shù)據(jù)存儲(chǔ)時(shí),是按照Key的字典順序自然排序的。
數(shù)據(jù)存儲(chǔ)在用戶創(chuàng)建的相應(yīng)用戶表(Table)。一個(gè)Table中可以存儲(chǔ)大量的數(shù)據(jù),為了方便分布式管理和維護(hù),可以按照記錄的Key值的字典順序切割生成一個(gè)或多個(gè)子表(Region),每個(gè)Region是一個(gè)Key區(qū)間數(shù)據(jù)的集合,也可以說(shuō)是連續(xù)行數(shù)據(jù)的集合。每個(gè)KeyValue所對(duì)應(yīng)的Key只包括在一個(gè)Region區(qū)間。例如圖1所示,圖1為一個(gè)用戶表中子表的示意圖,其中,圖1中Region-1中的Key-A代表著在字典順序上一個(gè)無(wú)窮小的值,Region-M中的Key-Y代表著在字典順序上一個(gè)無(wú)窮大的值。
目前,子表的分裂分為兩種形式:第一,在建表初期,預(yù)設(shè)定分裂點(diǎn)(SplitPoints),子表會(huì)按照預(yù)設(shè)定的分裂點(diǎn)生成新的子表。例如:建表時(shí)建立Region[Key-A,Key-Y),預(yù)設(shè)定的分裂點(diǎn)為{B,C,……X},Region[Key-A,Key-Y)會(huì)按照預(yù)設(shè)定的分裂點(diǎn)自動(dòng)生成多個(gè)子表:Region-1[Key-A,Key-B),Region-2[Key-B,Key-C),Region-3[Key-C,Key-D),……Region-M[Key-X,Key-Y),如圖2所示。第二,當(dāng)子表中存儲(chǔ)的數(shù)據(jù)達(dá)到一定內(nèi)存時(shí),會(huì)自動(dòng)分為兩個(gè)子表,或者通過(guò)用戶手動(dòng)觸發(fā)子表分裂。例如:如圖3所示,圖3為一個(gè)子表分裂為兩個(gè)子表的示意圖,分別將Region[,C),Region[C,E),Region[E,G),……,Region[X,)分裂為兩個(gè)子表,依次分裂為Region[,B)、Region[B,C),Region[C,D)、Region[D,E),Region[E,F)、Region[F,G),……,Region[X,Y)、Region[Y,Z)。當(dāng)一個(gè)用戶表中包括多個(gè)子表時(shí),也可以按照第二種分裂方式將子表進(jìn)行分裂,以提高讀寫(xiě)數(shù)據(jù)的性能。
但是,如果在建表初期預(yù)設(shè)定的分裂點(diǎn)不合理,例如在建表時(shí)確定的分裂點(diǎn)為{a,b,c,d,e,f},基于這些分裂點(diǎn)的子表為(-∞,a),[a,b),[b,c),[c,d),[d,e),[e,f),[f,+∞)。運(yùn)行一段時(shí)間之后,發(fā)現(xiàn)原來(lái)的分裂點(diǎn)是不合理的,更加合理的分裂點(diǎn)應(yīng)該為{g,h,i,j,k,l,m},而原來(lái)的子表中又已經(jīng)存在用戶數(shù)據(jù)了,此時(shí)對(duì)子表進(jìn)行分裂,讀取一個(gè)文件中的數(shù)據(jù),然后存放到兩個(gè)或多個(gè)文件中,子表分裂速度慢,且讀寫(xiě)數(shù)據(jù)的性能較差,如果將子表分裂的越多,讀寫(xiě)數(shù)據(jù)的性能會(huì)越差,且分裂后的子表也依然會(huì)造成數(shù)據(jù)分布不均勻的問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種分布式數(shù)據(jù)庫(kù)中子表分裂的方法、子表節(jié)點(diǎn)和系統(tǒng),通過(guò)在用戶表中預(yù)留一個(gè)子表,該子表在當(dāng)前數(shù)據(jù)存儲(chǔ)時(shí)保持為空子表。當(dāng)需要將數(shù)據(jù)存儲(chǔ)到該子表中時(shí),將該子表進(jìn)行分裂,以實(shí)現(xiàn)用戶表中子表的快速多點(diǎn)分裂,提升用戶表的讀寫(xiě)性能。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于華為技術(shù)有限公司,未經(jīng)華為技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201510767508.9/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F17-00 特別適用于特定功能的數(shù)字計(jì)算設(shè)備或數(shù)據(jù)處理設(shè)備或數(shù)據(jù)處理方法
G06F17-10 .復(fù)雜數(shù)學(xué)運(yùn)算的
G06F17-20 .處理自然語(yǔ)言數(shù)據(jù)的
G06F17-30 .信息檢索;及其數(shù)據(jù)庫(kù)結(jié)構(gòu)
G06F17-40 .數(shù)據(jù)的獲取和記錄
G06F17-50 .計(jì)算機(jī)輔助設(shè)計(jì)
- 數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)管理系統(tǒng)及數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)構(gòu)筑裝置、數(shù)據(jù)庫(kù)檢索裝置、數(shù)據(jù)庫(kù)裝置、數(shù)據(jù)庫(kù)構(gòu)筑方法、以及數(shù)據(jù)庫(kù)檢索方法
- 數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)處理方法
- 數(shù)據(jù)庫(kù)系統(tǒng)、數(shù)據(jù)庫(kù)更新方法、數(shù)據(jù)庫(kù)以及數(shù)據(jù)庫(kù)更新程序
- 容器數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)同步方法及數(shù)據(jù)庫(kù)
- 一種MongoDB數(shù)據(jù)庫(kù)對(duì)象復(fù)制延遲監(jiān)控方法和裝置
- 數(shù)據(jù)分布式存儲(chǔ)方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 數(shù)據(jù)庫(kù)語(yǔ)句執(zhí)行方法及裝置
- 用于內(nèi)容定義節(jié)點(diǎn)分裂的方法和裝置
- 一種分裂細(xì)胞識(shí)別方法
- 基于區(qū)間策略的最佳分裂點(diǎn)生成方法和裝置
- 一種750kV匯流母線四分裂T接金具
- 分區(qū)分裂方法、裝置、電子設(shè)備及可讀存儲(chǔ)介質(zhì)
- 一種分布式表格存儲(chǔ)的處理方法、裝置及系統(tǒng)
- 一種500kV緊湊型轉(zhuǎn)常規(guī)線路耐張塔跳線引流母線金具
- 一種基于粒子法的變粒徑分裂方法
- 一種220kV單導(dǎo)線轉(zhuǎn)雙分裂導(dǎo)線跳通金具
- 用于業(yè)務(wù)對(duì)象分類的決策模型訓(xùn)練方法和裝置





