一種基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展方法及系統(tǒng)的制作方法
【專利摘要】本申請?zhí)峁┝艘环N基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展方法,包括:在節(jié)點服務(wù)器存儲滿數(shù)據(jù)的情況下,確定所述節(jié)點服務(wù)器為待擴展節(jié)點服務(wù)器;為所述待擴展節(jié)點服務(wù)器分配一個與所述待擴展節(jié)點服務(wù)器的分區(qū)規(guī)則和映射值相同的預(yù)設(shè)節(jié)點服務(wù)器,其中,所述預(yù)設(shè)節(jié)點服務(wù)器當(dāng)前存儲量為零或未滿;發(fā)送相同的數(shù)據(jù)庫操作請求至所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器,以使所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器接收并處理相同的數(shù)據(jù)庫操作請求,其中,所述數(shù)據(jù)庫操作請求與所述分區(qū)規(guī)則和所述映射值相關(guān)聯(lián)。因此解決了現(xiàn)有技術(shù)中占用過多的磁盤IO和CPU資源,影響分布式數(shù)據(jù)庫系統(tǒng)正常運行的問題。
【專利說明】一種基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本申請涉及數(shù)據(jù)庫擴展領(lǐng)域,特別涉及一種基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展方法及系統(tǒng)。
【背景技術(shù)】
[0002]分布式數(shù)據(jù)庫是數(shù)據(jù)分存在計算機網(wǎng)絡(luò)中的各臺計算機上的數(shù)據(jù)庫。目前主要常用的為基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫,該分布式數(shù)據(jù)庫采用表分區(qū)技術(shù),將一個較大數(shù)據(jù)庫表內(nèi)的記錄,按一定的分區(qū)規(guī)則分別存放在各個節(jié)點服務(wù)器(計算機)上。
[0003]當(dāng)某個節(jié)點服務(wù)器上存儲的數(shù)據(jù)流過大,基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫需要擴展時,就需要對分區(qū)規(guī)則重新調(diào)整。但在對分區(qū)規(guī)則重新調(diào)整后,需要將相應(yīng)節(jié)點服務(wù)器上的部分映射值遷移至相應(yīng)新增的節(jié)點服務(wù)器中,同時與遷移的部分映射值對應(yīng)的數(shù)據(jù)也遷移至相應(yīng)新增的節(jié)點服務(wù)器中。而在進行數(shù)據(jù)遷移時,由于遷移的數(shù)據(jù)量大,因此占用過多的磁盤IO和CPU資源,從而影響基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫的正常運行。
[0004]由上可見,目前對基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫進行擴展時,存在需要對數(shù)據(jù)進行遷移,從而占用過多的磁盤IO和CPU資源,影響基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫正常運行的缺點。
【發(fā)明內(nèi)容】
[0005]為解決上述技術(shù)問題,本申請?zhí)峁┮环N基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展方法,以達到解決現(xiàn)有技術(shù)中占用過多的磁盤IO和CPU資源,影響分布式數(shù)據(jù)庫系統(tǒng)正常運行的問題的目的,技術(shù)方案如下:
[0006]一種基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展方法,包括:
[0007]在節(jié)點服務(wù)器存儲滿數(shù)據(jù)的情況下,確定所述節(jié)點服務(wù)器為待擴展節(jié)點服務(wù)器;
[0008]為所述待擴展節(jié)點服務(wù)器分配一個與所述待擴展節(jié)點服務(wù)器的分區(qū)規(guī)則和映射值相同的預(yù)設(shè)節(jié)點服務(wù)器,其中,所述預(yù)設(shè)節(jié)點服務(wù)器當(dāng)前存儲量為零或未滿;
[0009]發(fā)送相同的數(shù)據(jù)庫操作請求至所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器,以使所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器接收并處理相同的數(shù)據(jù)庫操作請求,其中,所述數(shù)據(jù)庫操作請求與所述分區(qū)規(guī)則和所述映射值相關(guān)聯(lián)。
[0010]優(yōu)選的,所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器接收并處理相同的數(shù)據(jù)庫操作請求,包括:
[0011]所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器分別接收相同的刪除數(shù)據(jù)庫操作請求;
[0012]所述待擴展節(jié)點服務(wù)器在查詢到存儲有所述刪除數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)的情況下,刪除所述刪除數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù);
[0013]所述預(yù)設(shè)節(jié)點服務(wù)器在查詢到存儲有所述刪除數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)的情況下,刪除所述刪除數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)。[0014]優(yōu)選的,所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器接收并處理相同的數(shù)據(jù)庫操作請求,包括:
[0015]所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器分別接收相同的修改數(shù)據(jù)庫操作請求;
[0016]所述待擴展節(jié)點服務(wù)器在查詢到存儲有所述修改數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)的情況下,修改所述修改數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù);
[0017]所述預(yù)設(shè)節(jié)點服務(wù)器在查詢到存儲有所述修改數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)的情況下,修改所述修改數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)。
[0018]優(yōu)選的,所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器接收并處理相同的數(shù)據(jù)庫操作請求,包括:
[0019]所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器分別接收相同的查詢數(shù)據(jù)庫操作請求;
[0020]所述待擴展節(jié)點服務(wù)器在查詢到存儲有所述查詢數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)的情況下,獲取所述查詢數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù);
[0021]所述預(yù)設(shè)節(jié)點服務(wù)器查詢到存儲有所述查詢數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)的情況下,獲取所述查詢數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)。
[0022]優(yōu)選的,發(fā)送相同的數(shù)據(jù)庫操作請求至所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器包括:
[0023]在同一時刻,發(fā)送相同的數(shù)據(jù)庫操作請求至所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器。
[0024]優(yōu)選的,在為所述待擴展節(jié)點服務(wù)器分配一個與所述待擴展節(jié)點服務(wù)器的分區(qū)規(guī)則和映射值相同的預(yù)設(shè)節(jié)點服務(wù)器之后,還包括:
[0025]在發(fā)送插入數(shù)據(jù)庫操作請求之前,判斷所述插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)是否為要求滿足唯一性原則的數(shù)據(jù),其中,所述插入數(shù)據(jù)庫操作請求與所述分區(qū)規(guī)則和所述映射值相關(guān)聯(lián);
[0026]若否,發(fā)送所述插入數(shù)據(jù)庫操作請求至所述預(yù)設(shè)節(jié)點服務(wù)器,以存儲所述插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù);
[0027]若是,判斷所述待擴展節(jié)點服務(wù)器是否存儲有所述插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù);
[0028]若是,不發(fā)送所述插入數(shù)據(jù)庫操作請求至所述預(yù)設(shè)節(jié)點服務(wù)器;
[0029]若否,發(fā)送所述插入數(shù)據(jù)庫操作請求至所述預(yù)設(shè)節(jié)點服務(wù)器,以存儲所述插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)。
[0030]優(yōu)選的,所述分區(qū)規(guī)則包括:
[0031]哈希分區(qū);或,列表分區(qū);或,范圍分區(qū)。
[0032]一種基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展系統(tǒng),包括:
[0033]確定器,用于在節(jié)點服務(wù)器存儲滿數(shù)據(jù)的情況下,確定所述節(jié)點服務(wù)器為待擴展節(jié)點服務(wù)器;
[0034]分配器,用于為所述待擴展節(jié)點服務(wù)器分配一個與所述待擴展節(jié)點服務(wù)器的分區(qū)規(guī)則和映射值相同的預(yù)設(shè)節(jié)點服務(wù)器,其中,所述預(yù)設(shè)節(jié)點服務(wù)器當(dāng)前存儲量為零或未滿;
[0035]第一發(fā)送器,用于發(fā)送相同的數(shù)據(jù)庫操作請求至所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器,以使所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器接收并處理相同的數(shù)據(jù)庫操作請求,其中,所述數(shù)據(jù)庫操作請求與所述分區(qū)規(guī)則和所述映射值相關(guān)聯(lián);
[0036]所述待擴展節(jié)點服務(wù)器,用于接收并處理所述第一發(fā)送器發(fā)送的數(shù)據(jù)庫操作請求;
[0037]所述預(yù)設(shè)節(jié)點服務(wù)器,用于接收并處理所述第一發(fā)送器發(fā)送的數(shù)據(jù)庫操作請求。
[0038]優(yōu)選的,所述第一發(fā)送器包括:
[0039]第二發(fā)送器,用于在同一時刻,發(fā)送相同的數(shù)據(jù)庫操作請求至所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器。
[0040]優(yōu)選的,還包括:
[0041]第一判斷器,用于在發(fā)送插入數(shù)據(jù)庫操作請求之前,判斷所述插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)是否為要求滿足唯一性原則的數(shù)據(jù),其中,所述插入數(shù)據(jù)庫操作請求與所述分區(qū)規(guī)則和所述映射值相關(guān)聯(lián),若否,執(zhí)行第三發(fā)送器,若是,執(zhí)行第二判斷器;
[0042]第三發(fā)送器,用于發(fā)送所述插入數(shù)據(jù)庫操作請求至所述預(yù)設(shè)節(jié)點服務(wù)器,以存儲所述插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù);
[0043]第二判斷器,用于判斷所述待擴展節(jié)點服務(wù)器是否存儲有所述插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù),若是,不發(fā)送所述插入數(shù)據(jù)庫操作請求至所述預(yù)設(shè)節(jié)點服務(wù)器,若否,執(zhí)行第四發(fā)送器;
[0044]第四發(fā)送器,用于發(fā)送所述插入數(shù)據(jù)庫操作請求至所述預(yù)設(shè)節(jié)點服務(wù)器,以存儲所述插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)。
[0045]與現(xiàn)有技術(shù)相比,本申請的有益效果為:
[0046]在本申請中,在節(jié)點服務(wù)器存儲滿數(shù)據(jù)的情況下,確定所述節(jié)點服務(wù)器為待擴展節(jié)點服務(wù)器;為所述待擴展節(jié)點服務(wù)器分配一個與所述待擴展節(jié)點服務(wù)器的分區(qū)規(guī)則和映射值相同的預(yù)設(shè)節(jié)點服務(wù)器,其中,所述預(yù)設(shè)節(jié)點服務(wù)器當(dāng)前存儲量為零或未滿;發(fā)送相同的數(shù)據(jù)庫操作請求至所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器,以使所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器接收并處理相同的數(shù)據(jù)庫操作請求,其中,所述數(shù)據(jù)庫操作請求與所述分區(qū)規(guī)則和所述映射值相關(guān)聯(lián)。
[0047]由于給待擴展節(jié)點服務(wù)器分配一個與其分區(qū)規(guī)則和映射值相同的預(yù)設(shè)節(jié)點服務(wù)器,因此在分布式數(shù)據(jù)庫系統(tǒng)中增加了一個與待擴展節(jié)點服務(wù)器完全相同,但存儲量為零或未滿的節(jié)點服務(wù)器,同時要求待擴展節(jié)點服務(wù)器和預(yù)設(shè)節(jié)點服務(wù)器接收并處理相同的數(shù)據(jù)操作請求,以保證能夠正確處理數(shù)據(jù)庫操作請求和數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù),實現(xiàn)了擴展分布式數(shù)據(jù)庫系統(tǒng)的目的。由于在本申請中,增加節(jié)點服務(wù)器后并未對待擴展節(jié)點服務(wù)器上的數(shù)據(jù)進行遷移,即實現(xiàn)了對分布式數(shù)據(jù)庫系統(tǒng)的擴展,因此解決了現(xiàn)有技術(shù)中占用過多的磁盤IO和CPU資源,影響分布式數(shù)據(jù)庫系統(tǒng)正常運行的問題。
【專利附圖】
【附圖說明】
[0048]為了更清楚地說明本申請實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0049]圖1是本申請?zhí)峁┑囊环N基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展方法的一種流程圖;
[0050]圖2是本申請?zhí)峁┑囊环N基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展方法的一種子流程圖;
[0051]圖3是本申請?zhí)峁┑囊环N基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展方法的另一種子流程圖;
[0052]圖4是本申請?zhí)峁┑囊环N基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展方法的再一種子流程圖;
[0053]圖5是本申請?zhí)峁┑囊环N基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展方法的另一種流程圖;
[0054]圖6是本申請?zhí)峁┑囊环N基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展系統(tǒng)的一種結(jié)構(gòu)示意圖;
[0055]圖7是本申請?zhí)峁┑囊环N基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展系統(tǒng)的另一種結(jié)構(gòu)示意圖。
【具體實施方式】
[0056]下面將結(jié)合本申請實施例中的附圖,對本申請實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例。基于本申請中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。
[0057]本申請?zhí)峁┮环N基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展方法,首先,在節(jié)點服務(wù)器存儲滿數(shù)據(jù)的情況下,確定所述節(jié)點服務(wù)器為待擴展節(jié)點服務(wù)器;其次,為所述待擴展節(jié)點服務(wù)器分配一個與所述待擴展節(jié)點服務(wù)器的分區(qū)規(guī)則和映射值相同的預(yù)設(shè)節(jié)點服務(wù)器,其中,所述預(yù)設(shè)節(jié)點服務(wù)器當(dāng)前存儲量為零或未滿;最后,發(fā)送相同的數(shù)據(jù)庫操作請求至所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器,以使所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器接收并處理相同的數(shù)據(jù)庫操作請求,其中,所述數(shù)據(jù)庫操作請求與所述分區(qū)規(guī)則和所述映射值相關(guān)聯(lián)。以下將列舉實施例對本申請?zhí)峁┑囊环N基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展方法進行詳細說明。
[0058]一個實施例
[0059]請參見圖1,其示出了本申請?zhí)峁┑囊环N基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展方法的一種流程圖,可以包括以下步驟:
[0060]步驟Sll:在節(jié)點服務(wù)器存儲滿數(shù)據(jù)的情況下,確定所述節(jié)點服務(wù)器為待擴展節(jié)點服務(wù)器。
[0061]在本實施例中,在節(jié)點服務(wù)器存儲滿數(shù)據(jù)的情況下,將存儲滿數(shù)據(jù)的節(jié)點服務(wù)器作為待擴展節(jié)點服務(wù)器。待擴展節(jié)點服務(wù)器的存儲已滿,不能再存儲新的數(shù)據(jù)。
[0062]步驟S12:為所述待擴展節(jié)點服務(wù)器分配一個與所述待擴展節(jié)點服務(wù)器的分區(qū)規(guī)則和映射值相同的預(yù)設(shè)節(jié)點服務(wù)器。[0063]在本實施例中,預(yù)設(shè)節(jié)點服務(wù)器的當(dāng)前存儲量為零或未滿。
[0064]在本實施例中,待擴展節(jié)點服務(wù)器的分區(qū)規(guī)則包括:哈希分區(qū);或,列表分區(qū);或,范圍分區(qū)。
[0065]其中,預(yù)設(shè)節(jié)點服務(wù)器的分區(qū)規(guī)則和映射值與待擴展節(jié)點服務(wù)器的分區(qū)規(guī)則和映射值相同。例如,待擴展節(jié)點服務(wù)器A的分區(qū)規(guī)則為哈希分區(qū),映射值為哈希值[2,3,4,6],則為待擴展節(jié)點服務(wù)器A分配的預(yù)設(shè)節(jié)點服務(wù)器Al的分區(qū)規(guī)則也為哈希分區(qū),預(yù)設(shè)節(jié)點服務(wù)器Al的映射值也為[2,3,4,6]。
[0066]步驟S13:發(fā)送相同的數(shù)據(jù)庫操作請求至所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器,以使所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器接收并處理相同的數(shù)據(jù)庫操作請求,其中,數(shù)據(jù)庫操作請求與分區(qū)規(guī)則和映射值相關(guān)聯(lián)。
[0067]在為待擴展節(jié)點服務(wù)器分配預(yù)設(shè)節(jié)點服務(wù)器后,向待擴展節(jié)點服務(wù)器和預(yù)設(shè)節(jié)點服務(wù)器發(fā)送相同的數(shù)據(jù)庫操作請求,以使待擴展節(jié)點服務(wù)器和預(yù)設(shè)節(jié)點服務(wù)器接收并處理相同的數(shù)據(jù)庫操作請求。
[0068]在本實施例中,向待擴展節(jié)點服務(wù)器和預(yù)設(shè)節(jié)點服務(wù)區(qū)發(fā)送相同的數(shù)據(jù)庫操作請求,使得待擴展節(jié)點服務(wù)器和預(yù)設(shè)節(jié)點服務(wù)器可以都處理該數(shù)據(jù)庫操作請求,保證能夠正確處理該數(shù)據(jù)庫操作請求,以保證正確處理待擴展節(jié)點服務(wù)器和預(yù)設(shè)節(jié)點服務(wù)器中映射值對應(yīng)的數(shù)據(jù),實現(xiàn)擴展分布式數(shù)據(jù)庫系統(tǒng)的目的。
[0069]現(xiàn)舉例對發(fā)送相同的數(shù)據(jù)庫操作請求至所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器,以使所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器接收并處理相同的數(shù)據(jù)庫操作請求,保證能夠正確處理該數(shù)據(jù)庫操作請求進行說明。例如,待擴展節(jié)點服務(wù)器A的分區(qū)規(guī)則為哈希分區(qū),映射值為哈希值[2,3,4,6],為待擴展節(jié)點服務(wù)器A分配的預(yù)設(shè)節(jié)點服務(wù)器Al的分區(qū)規(guī)則為哈希分區(qū),映射值為[2,3,4,6]。其中,待擴展節(jié)點服務(wù)器A中哈希值為2的數(shù)據(jù)為a,預(yù)設(shè)節(jié)點服務(wù)器Al中哈希值為2的數(shù)據(jù)為e。
[0070]現(xiàn)有一個數(shù)據(jù)庫操作請求I為查詢哈希值為2的數(shù)據(jù),則把數(shù)據(jù)庫操作請求I發(fā)送至待擴展節(jié)點服務(wù)器A和預(yù)設(shè)節(jié)點服務(wù)器Al,待擴展節(jié)點服務(wù)器A在接收到數(shù)據(jù)庫操作請求I后,對數(shù)據(jù)庫操作請求I進行處理,獲取到數(shù)據(jù)a,預(yù)設(shè)節(jié)點服務(wù)器Al在接收到數(shù)據(jù)庫操作請求I后,對數(shù)據(jù)庫操作請求I進行處理,獲取到數(shù)據(jù)e。最后,查詢的結(jié)果為數(shù)據(jù)a和數(shù)據(jù)e。由此可見,待擴展節(jié)點服務(wù)器A和預(yù)設(shè)節(jié)點服務(wù)器Al由于接收并處理了相同的數(shù)據(jù)庫操作請求1,因此獲取到數(shù)據(jù)a和數(shù)據(jù)e,查詢到了所有哈希值為2的數(shù)據(jù),正確處理了數(shù)據(jù)庫操作請求1,得到了正確的結(jié)果。
[0071]在本實施例中,現(xiàn)舉例對數(shù)據(jù)庫操作請求與分區(qū)規(guī)則和映射值相關(guān)聯(lián)進行說明。例如:一個數(shù)據(jù)庫操作請求若為:Update person set age=18where name=kite, name 是分區(qū)列,數(shù)據(jù)庫分區(qū)采用的是哈希分區(qū)規(guī)則,將哈希值為2的name存儲在節(jié)點服務(wù)器A上,將哈希值為3、4的name存儲在節(jié)點服務(wù)器B上。在kite的哈希值為2時,節(jié)點服務(wù)器A就會執(zhí)行Update person set age=18where name=kite。由上可見,數(shù)據(jù)庫操作請求與分區(qū)規(guī)則和映射值關(guān)聯(lián)。
[0072]在本實施例中,數(shù)據(jù)庫操作請求包括:插入數(shù)據(jù)庫操作請求;或,修改數(shù)據(jù)庫操作請求;或,刪除數(shù)據(jù)庫操作請求;或,查詢數(shù)據(jù)庫操作請求。
[0073]其中,插入數(shù)據(jù)庫操作請求為插入新數(shù)據(jù)至節(jié)點服務(wù)器。修改數(shù)據(jù)庫操作請求為對節(jié)點服務(wù)器中的某些數(shù)據(jù)進行修改。刪除數(shù)據(jù)庫操作請求為對節(jié)點服務(wù)器中的某些數(shù)據(jù)進行刪除。查詢數(shù)據(jù)庫操作請求為對節(jié)點服務(wù)器中的某些數(shù)據(jù)進行查詢。
[0074]在本申請中,在節(jié)點服務(wù)器存儲滿數(shù)據(jù)的情況下,確定所述節(jié)點服務(wù)器為待擴展節(jié)點服務(wù)器;為所述待擴展節(jié)點服務(wù)器分配一個與所述待擴展節(jié)點服務(wù)器的分區(qū)規(guī)則和映射值相同的預(yù)設(shè)節(jié)點服務(wù)器,其中,所述預(yù)設(shè)節(jié)點服務(wù)器當(dāng)前存儲量為零或未滿;發(fā)送相同的數(shù)據(jù)庫操作請求至所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器,以使所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器接收并處理相同的數(shù)據(jù)庫操作請求,其中,所述數(shù)據(jù)庫操作請求與所述分區(qū)規(guī)則和所述映射值相關(guān)聯(lián)。
[0075]由于給待擴展節(jié)點服務(wù)器分配一個與其分區(qū)規(guī)則和映射值相同的預(yù)設(shè)節(jié)點服務(wù)器,因此在分布式數(shù)據(jù)庫系統(tǒng)中增加了一個與待擴展節(jié)點服務(wù)器完全相同,但存儲量為零或未滿的節(jié)點服務(wù)器,同時要求待擴展節(jié)點服務(wù)器和預(yù)設(shè)節(jié)點服務(wù)器接收并處理相同的數(shù)據(jù)操作請求,以保證能夠正確處理數(shù)據(jù)庫操作請求和數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù),實現(xiàn)了擴展分布式數(shù)據(jù)庫系統(tǒng)的目的。由于在本申請中,增加節(jié)點服務(wù)器后并未對待擴展節(jié)點服務(wù)器上的數(shù)據(jù)進行遷移,即實現(xiàn)了對分布式數(shù)據(jù)庫系統(tǒng)的擴展,因此解決了現(xiàn)有技術(shù)中占用過多的磁盤IO和CPU資源,影響分布式數(shù)據(jù)庫系統(tǒng)正常運行的問題。
[0076]另一個實施例
[0077]在本實施例中,示出的是在數(shù)據(jù)庫操作請求為刪除數(shù)據(jù)庫操作請求的情況下,待擴展節(jié)點服務(wù)器和預(yù)設(shè)節(jié)點服務(wù)器接收并處理相同的數(shù)據(jù)庫操作請求的具體過程,請參見圖2,圖2示出的是本申請?zhí)峁┑囊环N基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展方法的一種子流程圖,可以包括以下步驟:
[0078]步驟S21:所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器分別接收相同的刪除數(shù)據(jù)庫操作請求。
[0079]步驟S22:所述待擴展節(jié)點服務(wù)器在查詢到存儲有所述刪除數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)的情況下,刪除所述刪除數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)。
[0080]步驟S23:所述預(yù)設(shè)節(jié)點服務(wù)器在查詢到存儲有所述刪除數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)的情況下,刪除所述刪除數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)。
[0081]在本實施例中,待擴展節(jié)點服務(wù)器和預(yù)設(shè)節(jié)點服務(wù)器分別對各自存儲有刪除數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)進行刪除,以保證刪除刪除數(shù)據(jù)庫操作請求對應(yīng)的所有數(shù)據(jù),而不是刪除部分數(shù)據(jù)。
[0082]再一個實施例
[0083]在本實施例中,示出的是在數(shù)據(jù)庫操作請求為修改數(shù)據(jù)庫操作請求的情況下,待擴展節(jié)點服務(wù)器和預(yù)設(shè)節(jié)點服務(wù)器接收并處理相同的數(shù)據(jù)庫操作請求的具體過程,請參見圖3,圖3示出的是本申請?zhí)峁┑囊环N基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展方法的另一種子流程圖,可以包括以下步驟:
[0084]步驟S31:所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器分別接收相同的修改數(shù)據(jù)庫操作請求。
[0085]步驟S32:所述待擴展節(jié)點服務(wù)器在查詢到存儲有所述修改數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)的情況下,修改所述修改數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)。
[0086]步驟S33:所述預(yù)設(shè)節(jié)點服務(wù)器在查詢到存儲有所述修改數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)的情況下,修改所述修改數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)。
[0087]在本實施例中,待擴展節(jié)點服務(wù)器和預(yù)設(shè)節(jié)點服務(wù)器分別對各自存儲有修改數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)進行修改,以保證修改修改數(shù)據(jù)庫操作請求對應(yīng)的所有數(shù)據(jù),而不是修改部分數(shù)據(jù)。
[0088]再一個實施例
[0089]在本實施例中,示出的是在數(shù)據(jù)庫操作請求為查詢數(shù)據(jù)庫操作請求的情況下,待擴展節(jié)點服務(wù)器和預(yù)設(shè)節(jié)點服務(wù)器接收并處理相同的數(shù)據(jù)庫操作請求的具體過程,請參見圖4,圖4示出的是本申請?zhí)峁┑囊环N基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展方法的再一種子流程圖,可以包括以下步驟:
[0090]步驟S41:所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器分別接收相同的查詢數(shù)據(jù)庫操作請求。
[0091]步驟S42:所述待擴展節(jié)點服務(wù)器在查詢到存儲有所述查詢數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)的情況下,獲取所述查詢數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)。
[0092]步驟S43:所述預(yù)設(shè)節(jié)點服務(wù)器查詢到存儲有所述查詢數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)的情況下,獲取所述查詢數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)。
[0093]在本實施例中,待擴展節(jié)點服務(wù)器和預(yù)設(shè)節(jié)點服務(wù)器分別在各自存儲的數(shù)據(jù)中對查詢數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)進行查詢,以保證查詢到查詢數(shù)據(jù)庫操作請求對應(yīng)的所有數(shù)據(jù),而不是查詢到部分數(shù)據(jù)。
[0094]在上述方法步驟中,發(fā)送相同的數(shù)據(jù)庫操作請求至所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器的一種實現(xiàn)方式可以為:在不同時刻,發(fā)送相同的數(shù)據(jù)庫操作請求至待擴展節(jié)點服務(wù)器和預(yù)設(shè)節(jié)點服務(wù)器。當(dāng)然,發(fā)送相同的數(shù)據(jù)庫操作請求至所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器的另一種實現(xiàn)方式可以為:在同一時刻,發(fā)送相同的數(shù)據(jù)庫操作請求至所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器。
[0095]再一個實施例
[0096]在本實施例中,在圖1所示的一種基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展方法的基礎(chǔ)上擴展出另一種基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展方法,具體過程請參見圖5。其中圖5為本申請?zhí)峁┑囊环N基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展方法的另一種流程圖,可以包括以下步驟:
[0097]步驟S51:在節(jié)點服務(wù)器存儲滿數(shù)據(jù)的情況下,確定所述節(jié)點服務(wù)器為待擴展節(jié)點服務(wù)器。
[0098]步驟S52:為所述待擴展節(jié)點服務(wù)器分配一個與所述待擴展節(jié)點服務(wù)器的分區(qū)規(guī)則和映射值相同的預(yù)設(shè)節(jié)點服務(wù)器。
[0099]步驟S51和步驟S52與圖1示出的基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展方法中的步驟Sll和步驟S12相同,在此不再贅述。
[0100]步驟S53:在發(fā)送插入數(shù)據(jù)庫操作請求之前,判斷所述插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)是否為要求滿足唯一性原則的數(shù)據(jù),其中,所述插入數(shù)據(jù)庫操作請求與所述分區(qū)規(guī)則和所述映射值相關(guān)聯(lián)。
[0101]在本實施例中,在判斷結(jié)果為插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)不為要求滿足唯一性原則的數(shù)據(jù)的情況下,執(zhí)行步驟S54,在判斷結(jié)果為插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)為要求滿足唯一性原則的數(shù)據(jù)的情況下,執(zhí)行步驟S55。
[0102]步驟S54:發(fā)送所述插入數(shù)據(jù)庫操作請求至所述預(yù)設(shè)節(jié)點服務(wù)器,以存儲所述插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)。
[0103]在本實施例中,預(yù)設(shè)節(jié)點服務(wù)器在接收到插入數(shù)據(jù)庫操作請求后,存儲插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)。
[0104]步驟S55:判斷所述待擴展節(jié)點服務(wù)器是否存儲有所述插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)。
[0105]在判斷結(jié)果為待擴展節(jié)點服務(wù)器存儲有插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)的情況下,執(zhí)行步驟S56,在判斷結(jié)果為待擴展節(jié)點服務(wù)器未存儲有插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)的情況下,執(zhí)行步驟S57。
[0106]步驟S56:不發(fā)送所述插入數(shù)據(jù)庫操作請求至所述預(yù)設(shè)節(jié)點服務(wù)器。
[0107]步驟S57:發(fā)送所述插入數(shù)據(jù)庫操作請求至所述預(yù)設(shè)節(jié)點服務(wù)器,以存儲所述插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)。
[0108]在本實施例中,預(yù)設(shè)節(jié)點服務(wù)器在接收到插入數(shù)據(jù)庫操作請求后,存儲插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)。
[0109]步驟S58:發(fā)送相同的數(shù)據(jù)庫操作請求至所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器,以使所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器接收并處理相同的數(shù)據(jù)庫操作請求,其中,所述數(shù)據(jù)庫操作請求與所述分區(qū)規(guī)則和所述映射值相關(guān)聯(lián)。
[0110]步驟S58與圖1示出的基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展方法中的步驟S13相同,在此不再贅述。
[0111]對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請并不受所描述的動作順序的限制,因為依據(jù)本申請,某些步驟可以采用其他順序或者同時進行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本申請所必須的。
[0112]與上述方法實施例相對應(yīng),本申請?zhí)峁┝艘环N基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展系統(tǒng)的一種結(jié)構(gòu)示意圖,請參見圖6,基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展系統(tǒng)包括:確定器61、分配器62、第一發(fā)送器63、待擴展節(jié)點服務(wù)器64和預(yù)設(shè)節(jié)點服務(wù)器65,其中:
[0113]確定器61,用于在節(jié)點服務(wù)器存儲滿數(shù)據(jù)的情況下,確定所述節(jié)點服務(wù)器為待擴展節(jié)點服務(wù)器。
[0114]分配器62,用于為所述待擴展節(jié)點服務(wù)器分配一個與所述待擴展節(jié)點服務(wù)器的分區(qū)規(guī)則和映射值相同的預(yù)設(shè)節(jié)點服務(wù)器,其中,所述預(yù)設(shè)節(jié)點服務(wù)器當(dāng)前存儲量為零或未滿。
[0115]第一發(fā)送器63,用于發(fā)送相同的數(shù)據(jù)庫操作請求至所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器,以使所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器接收并處理相同的數(shù)據(jù)庫操作請求,其中,所述數(shù)據(jù)庫操作請求與所述分區(qū)規(guī)則和所述映射值相關(guān)聯(lián)。
[0116]待擴展節(jié)點服務(wù)器64,用于接收并處理所述第一發(fā)送器63發(fā)送的數(shù)據(jù)庫操作請求。
[0117]預(yù)設(shè)節(jié)點服務(wù)器65,用于接收并處理所述第一發(fā)送器63發(fā)送的數(shù)據(jù)庫操作請求。[0118]在第一發(fā)送器63發(fā)送的數(shù)據(jù)庫操作請求為刪除數(shù)據(jù)庫操作請求的情況下,待擴展節(jié)點服務(wù)器64和預(yù)設(shè)節(jié)點服務(wù)器65各自接收并處理所述第一發(fā)送器63發(fā)送的數(shù)據(jù)庫操作請求的具體過程可以為:
[0119]待擴展節(jié)點服務(wù)器64和預(yù)設(shè)節(jié)點服務(wù)器65分別接收相同的刪除數(shù)據(jù)庫操作請求;
[0120]待擴展節(jié)點服務(wù)器64在查詢到存儲有所述刪除數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)的情況下,刪除所述刪除數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù);
[0121]預(yù)設(shè)節(jié)點服務(wù)器65在查詢到存儲有所述刪除數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)的情況下,刪除所述刪除數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)。
[0122]在第一發(fā)送器63發(fā)送的數(shù)據(jù)庫操作請求為修改數(shù)據(jù)庫操作請求的情況下,待擴展節(jié)點服務(wù)器64和預(yù)設(shè)節(jié)點服務(wù)器65各自接收并處理所述第一發(fā)送器63發(fā)送的數(shù)據(jù)庫操作請求的具體過程可以為:
[0123]待擴展節(jié)點服務(wù)器64和所述預(yù)設(shè)節(jié)點服務(wù)器65分別接收相同的修改數(shù)據(jù)庫操作請求;
[0124]待擴展節(jié)點服務(wù)器64在查詢到存儲有所述修改數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)的情況下,修改所述修改數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù);
[0125]預(yù)設(shè)節(jié)點服務(wù)器65在查詢到存儲有所述修改數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)的情況下,修改所述修改數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)。
[0126]在第一發(fā)送器63發(fā)送的數(shù)據(jù)庫操作請求為查詢數(shù)據(jù)庫操作請求的情況下,待擴展節(jié)點服務(wù)器64和預(yù)設(shè)節(jié)點服務(wù)器65各自接收并處理所述第一發(fā)送器63發(fā)送的數(shù)據(jù)庫操作請求的具體過程可以為:
[0127]待擴展節(jié)點服務(wù)器64和預(yù)設(shè)節(jié)點服務(wù)器65分別接收相同的查詢數(shù)據(jù)庫操作請求;
[0128]待擴展節(jié)點服務(wù)器64在查詢到存儲有所述查詢數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)的情況下,獲取所述查詢數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù);
[0129]預(yù)設(shè)節(jié)點服務(wù)器65查詢到存儲有所述查詢數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)的情況下,獲取所述查詢數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)。
[0130]在上述基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展系統(tǒng)中,第一發(fā)送器63可以包括:第二發(fā)送器,用于在同一時刻,發(fā)送相同的數(shù)據(jù)庫操作請求至待擴展節(jié)點服務(wù)器64和預(yù)設(shè)節(jié)點服務(wù)器65。
[0131]當(dāng)然,第一發(fā)送器63也可以包括除第二發(fā)送器之外的發(fā)送器,用于在不同時刻,發(fā)送相同的數(shù)據(jù)庫操作請求至待擴展節(jié)點服務(wù)器64和預(yù)設(shè)節(jié)點服務(wù)器65。
[0132]另一個實施例
[0133]在本實施例中,在圖6所示的一種基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展系統(tǒng)的基礎(chǔ)上擴展出另一種基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展系統(tǒng),具體構(gòu)成請參見圖7。其中圖7為本申請?zhí)峁┑囊环N基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展系統(tǒng)的另一種結(jié)構(gòu)示意圖,在圖7所示的一種基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展系統(tǒng)的基礎(chǔ)上還包括:第一判斷器71、第三發(fā)送器72、第二判斷器73和第四發(fā)送器74。
[0134]第一判斷器71,用于在發(fā)送插入數(shù)據(jù)庫操作請求之前,判斷所述插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)是否為要求滿足唯一性原則的數(shù)據(jù),其中,所述插入數(shù)據(jù)庫操作請求與所述分區(qū)規(guī)則和所述映射值相關(guān)聯(lián),若否,執(zhí)行第三發(fā)送器72,若是,執(zhí)行第二判斷器73。
[0135]第三發(fā)送器72,用于發(fā)送所述插入數(shù)據(jù)庫操作請求至所述預(yù)設(shè)節(jié)點服務(wù)器,以存儲所述插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)。
[0136]第二判斷器73,用于判斷所述待擴展節(jié)點服務(wù)器是否存儲有所述插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù),若是,不發(fā)送所述插入數(shù)據(jù)庫操作請求至所述預(yù)設(shè)節(jié)點服務(wù)器,若否,執(zhí)行第四發(fā)送器74。
[0137]第四發(fā)送器74,用于發(fā)送所述插入數(shù)據(jù)庫操作請求至所述預(yù)設(shè)節(jié)點服務(wù)器,以存儲所述插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)。
[0138]需要說明的是,本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。對于裝置類實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
[0139]最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或
者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個......”限定的要素,
并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0140]以上對本申請所提供的一種基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展方法及系統(tǒng)進行了詳細介紹,本文中應(yīng)用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請的思想,在【具體實施方式】及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本申請的限制。
【權(quán)利要求】
1.一種基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展方法,其特征在于,包括: 在節(jié)點服務(wù)器存儲滿數(shù)據(jù)的情況下,確定所述節(jié)點服務(wù)器為待擴展節(jié)點服務(wù)器; 為所述待擴展節(jié)點服務(wù)器分配一個與所述待擴展節(jié)點服務(wù)器的分區(qū)規(guī)則和映射值相同的預(yù)設(shè)節(jié)點服務(wù)器,其中,所述預(yù)設(shè)節(jié)點服務(wù)器當(dāng)前存儲量為零或未滿; 發(fā)送相同的數(shù)據(jù)庫操作請求至所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器,以使所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器接收并處理相同的數(shù)據(jù)庫操作請求,其中,所述數(shù)據(jù)庫操作請求與所述分區(qū)規(guī)則和所述映射值相關(guān)聯(lián)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器接收并處理相同的數(shù)據(jù)庫操作請求,包括: 所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器分別接收相同的刪除數(shù)據(jù)庫操作請求; 所述待擴展節(jié)點服務(wù)器在查詢到存儲有所述刪除數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)的情況下,刪除所述刪除數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù); 所述預(yù)設(shè)節(jié)點服務(wù)器在查詢到存儲有所述刪除數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)的情況下,刪除所述刪除數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器接收并處理相同的數(shù)據(jù)庫操作請求,包括: 所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器分別接收相同的修改數(shù)據(jù)庫操作請求; 所述待擴展節(jié)點服務(wù)器在查詢到存儲有所述修改數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)的情況下,修改所述修改數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù); 所述預(yù)設(shè)節(jié)點服務(wù)器在查詢到存儲有所述修改數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)的情況下,修改所述修改數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器接收并處理相同的數(shù)據(jù)庫操作請求,包括: 所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器分別接收相同的查詢數(shù)據(jù)庫操作請求; 所述待擴展節(jié)點服務(wù)器在查詢到存儲有所述查詢數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)的情況下,獲取所述查詢數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù); 所述預(yù)設(shè)節(jié)點服務(wù)器查詢到存儲有所述查詢數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)的情況下,獲取所述查詢數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,發(fā)送相同的數(shù)據(jù)庫操作請求至所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器包括: 在同一時刻,發(fā)送相同的數(shù)據(jù)庫操作請求至所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,在為所述待擴展節(jié)點服務(wù)器分配一個與所述待擴展節(jié)點服務(wù)器的分區(qū)規(guī)則和映射值相同的預(yù)設(shè)節(jié)點服務(wù)器之后,還包括: 在發(fā)送插入數(shù)據(jù)庫操作請求之前,判斷所述插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)是否為要求滿足唯一性原則的數(shù)據(jù),其中,所述插入數(shù)據(jù)庫操作請求與所述分區(qū)規(guī)則和所述映射值相關(guān)聯(lián); 若否,發(fā)送所述插入數(shù)據(jù)庫操作請求至所述預(yù)設(shè)節(jié)點服務(wù)器,以存儲所述插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù); 若是,判斷所述待擴展節(jié)點服務(wù)器是否存儲有所述插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù); 若是,不發(fā)送所述插入數(shù)據(jù)庫操作請求至所述預(yù)設(shè)節(jié)點服務(wù)器; 若否,發(fā)送所述插入數(shù)據(jù)庫操作請求至所述預(yù)設(shè)節(jié)點服務(wù)器,以存儲所述插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)。
7.根據(jù)權(quán)利要求1-6所述的方法,其特征在于,所述分區(qū)規(guī)則包括: 哈希分區(qū);或,列表分區(qū);或,范圍分區(qū)。
8.一種基于關(guān)系型數(shù)據(jù)庫的分布式數(shù)據(jù)庫擴展系統(tǒng),其特征在于,包括: 確定器,用于在節(jié)點服務(wù)器存儲滿數(shù)據(jù)的情況下,確定所述節(jié)點服務(wù)器為待擴展節(jié)點服務(wù)器; 分配器,用于為所述待擴展節(jié)點服務(wù)器分配一個與所述待擴展節(jié)點服務(wù)器的分區(qū)規(guī)則和映射值相同的預(yù)設(shè)節(jié)點服務(wù)器,其中,所述預(yù)設(shè)節(jié)點服務(wù)器當(dāng)前存儲量為零或未滿; 第一發(fā)送器,用于發(fā) 送相同的數(shù)據(jù)庫操作請求至所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器,以使所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器接收并處理相同的數(shù)據(jù)庫操作請求,其中,所述數(shù)據(jù)庫操作請求與所述分區(qū)規(guī)則和所述映射值相關(guān)聯(lián); 所述待擴展節(jié)點服務(wù)器,用于接收并處理所述第一發(fā)送器發(fā)送的數(shù)據(jù)庫操作請求; 所述預(yù)設(shè)節(jié)點服務(wù)器,用于接收并處理所述第一發(fā)送器發(fā)送的數(shù)據(jù)庫操作請求。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述第一發(fā)送器包括: 第二發(fā)送器,用于在同一時刻,發(fā)送相同的數(shù)據(jù)庫操作請求至所述待擴展節(jié)點服務(wù)器和所述預(yù)設(shè)節(jié)點服務(wù)器。
10.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,還包括: 第一判斷器,用于在發(fā)送插入數(shù)據(jù)庫操作請求之前,判斷所述插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)是否為要求滿足唯一性原則的數(shù)據(jù),其中,所述插入數(shù)據(jù)庫操作請求與所述分區(qū)規(guī)則和所述映射值相關(guān)聯(lián),若否,執(zhí)行第三發(fā)送器,若是,執(zhí)行第二判斷器; 第三發(fā)送器,用于發(fā)送所述插入數(shù)據(jù)庫操作請求至所述預(yù)設(shè)節(jié)點服務(wù)器,以存儲所述插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù); 第二判斷器,用于判斷所述待擴展節(jié)點服務(wù)器是否存儲有所述插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù),若是,不發(fā)送所述插入數(shù)據(jù)庫操作請求至所述預(yù)設(shè)節(jié)點服務(wù)器,若否,執(zhí)行第四發(fā)送器; 第四發(fā)送器,用于發(fā)送所述插入數(shù)據(jù)庫操作請求至所述預(yù)設(shè)節(jié)點服務(wù)器,以存儲所述插入數(shù)據(jù)庫操作請求對應(yīng)的數(shù)據(jù)。
【文檔編號】G06F17/30GK103440345SQ201310413927
【公開日】2013年12月11日 申請日期:2013年9月11日 優(yōu)先權(quán)日:2013年9月11日
【發(fā)明者】陳百平, 袁曉鵬 申請人:從興技術(shù)有限公司