System.ArgumentOutOfRangeException: 索引和長(zhǎng)度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 中文有码无码人妻在线,亚洲av无码专区国产不乱码,国产亚洲美日韩AV中文字幕无码成人
  • 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    一種分布式多模數(shù)據(jù)庫(kù)在線升級(jí)的方法技術(shù)

    技術(shù)編號(hào):44330588 閱讀:3 留言:0更新日期:2025-02-18 20:38
    本發(fā)明專(zhuān)利技術(shù)公開(kāi)了一種分布式多模數(shù)據(jù)庫(kù)在線升級(jí)的方法,屬于分布式多模數(shù)據(jù)庫(kù)技術(shù)領(lǐng)域,在分布式數(shù)據(jù)庫(kù)集群中進(jìn)行數(shù)據(jù)庫(kù)版本升級(jí)時(shí),對(duì)于升級(jí)節(jié)點(diǎn),優(yōu)先將該節(jié)點(diǎn)持有的副本租約遷移至其他節(jié)點(diǎn),保證升級(jí)期間讀寫(xiě)可用無(wú)中斷,同時(shí)禁止副本進(jìn)行遷移,直至升級(jí)完成后恢復(fù)副本遷移。本發(fā)明專(zhuān)利技術(shù)對(duì)于分布式多模數(shù)據(jù)庫(kù)不同版本之間的版本升級(jí)和二進(jìn)制替換,在升級(jí)的同時(shí)仍然能對(duì)外提供讀寫(xiě)支持,保證數(shù)據(jù)在線可用,以及升級(jí)期間避免副本遷移。

    【技術(shù)實(shí)現(xiàn)步驟摘要】

    本專(zhuān)利技術(shù)涉及分布式多模數(shù)據(jù)庫(kù),具體地說(shuō)是一種分布式多模數(shù)據(jù)庫(kù)在線升級(jí)的方法


    技術(shù)介紹

    1、分布式數(shù)據(jù)庫(kù)是多節(jié)點(diǎn),部署在多個(gè)服務(wù)器上的數(shù)據(jù)庫(kù)集群。相比于單機(jī)數(shù)據(jù)庫(kù),分布式數(shù)據(jù)庫(kù)可以使用多個(gè)獨(dú)立的計(jì)算機(jī)來(lái)解決單臺(tái)服務(wù)器無(wú)法處理的存儲(chǔ),計(jì)算問(wèn)題。當(dāng)數(shù)據(jù)量超過(guò)了一臺(tái)服務(wù)器的負(fù)載上限時(shí),單機(jī)數(shù)據(jù)庫(kù)只能換更高性能的服務(wù)器,而分布式數(shù)據(jù)庫(kù)可以通過(guò)水平擴(kuò)展,通過(guò)追加服務(wù)器數(shù)量來(lái)解決該問(wèn)題。

    2、高可用能力指的是當(dāng)數(shù)據(jù)庫(kù)節(jié)點(diǎn)發(fā)生異常事件導(dǎo)致宕機(jī)時(shí),數(shù)據(jù)庫(kù)仍然能夠?qū)ν馓峁┳x寫(xiě)服務(wù),不會(huì)造成數(shù)據(jù)庫(kù)不可用的情況。常見(jiàn)的分布式集群中,通過(guò)多副本模式提供高可用能力。用戶(hù)的寫(xiě)入數(shù)據(jù)會(huì)保存多份。一般來(lái)說(shuō),用戶(hù)的每份寫(xiě)入數(shù)據(jù),均會(huì)保存三份,每份數(shù)據(jù)稱(chēng)之為一個(gè)副本(replica),這三個(gè)replica自身選舉出一個(gè)領(lǐng)導(dǎo)者(leader),其余兩份稱(chēng)之為追隨者(follower),leader會(huì)對(duì)該副本持有一定的時(shí)間周期(lease),在租期持續(xù)時(shí)間,該leader也是該副本的leaseholder,同時(shí),用戶(hù)的寫(xiě)入將數(shù)據(jù)寫(xiě)入leader節(jié)點(diǎn),然后leader將數(shù)據(jù)同步給所有的follower。在這樣的結(jié)構(gòu)中,所有的讀取寫(xiě)入操作都是由leader完成的,當(dāng)leader節(jié)點(diǎn)發(fā)生問(wèn)題宕機(jī)或不可用時(shí),其他兩個(gè)follower會(huì)選舉出新的leader,然后由新的leader提供后續(xù)的讀寫(xiě)支持。

    3、時(shí)序數(shù)據(jù)是按照時(shí)間順序記錄的數(shù)據(jù)集合,其一般是由各種設(shè)備按照一定時(shí)間間隔或時(shí)間戳進(jìn)行采集的數(shù)據(jù)。時(shí)序數(shù)據(jù)有一些特點(diǎn),時(shí)序數(shù)據(jù)的寫(xiě)入幾乎都是新數(shù)據(jù),同一個(gè)設(shè)備產(chǎn)生的時(shí)序數(shù)據(jù)的時(shí)間戳幾乎總是增加的。時(shí)序數(shù)據(jù)總是執(zhí)行insert操作,update和delete一般只會(huì)在異常狀態(tài)進(jìn)行操作。相比關(guān)系型數(shù)據(jù),時(shí)序數(shù)據(jù)數(shù)量更多,而且很少執(zhí)行ap(分析處理)語(yǔ)句,較多需要隔一段時(shí)間對(duì)數(shù)據(jù)進(jìn)行聚合處理。產(chǎn)生時(shí)間較久的歷史數(shù)據(jù)重要性顯著降低。

    4、在線升級(jí)與離線升級(jí)相對(duì)應(yīng),指的是在替換數(shù)據(jù)庫(kù)版本進(jìn)行升級(jí)時(shí),仍然能夠?qū)ν馓峁┓?wù)。部分分布式數(shù)據(jù)庫(kù)集群通過(guò)多副本異地容災(zāi)可以在節(jié)點(diǎn)宕機(jī)時(shí)迅速切換節(jié)點(diǎn),服務(wù)中斷時(shí)間較短,只會(huì)影響較短時(shí)間的讀寫(xiě)需求,也可以據(jù)此原理以原址升級(jí)的方式保證在線升級(jí)。具體做法是,通過(guò)有計(jì)劃地殺掉某節(jié)點(diǎn)服務(wù),由高可用來(lái)保證在線功能,同時(shí)替換數(shù)據(jù)庫(kù)二進(jìn)制版本,最后以新的二進(jìn)制版本完成重啟升級(jí)。

    5、一般的分布式數(shù)據(jù)庫(kù)集群可以通過(guò)殺節(jié)點(diǎn)然后替換二進(jìn)制的形式完成升級(jí)操作,但殺節(jié)點(diǎn)后,死亡節(jié)點(diǎn)的leaseholder重新選舉期間,存在一個(gè)時(shí)間窗口期,盡管該時(shí)間窗口較短,在此期間仍會(huì)無(wú)法對(duì)外提供服務(wù)。此外,若節(jié)點(diǎn)升級(jí)的時(shí)間過(guò)長(zhǎng),會(huì)觸發(fā)副本的自動(dòng)遷移,由于節(jié)點(diǎn)死亡,集群并不知道該節(jié)點(diǎn)是異常宕機(jī)還是有計(jì)劃的升級(jí)操作,此時(shí)死亡節(jié)點(diǎn)的副本在集群角度已經(jīng)丟失,為保證高可用性,集群需要盡快補(bǔ)齊該部分?jǐn)?shù)據(jù)副本。對(duì)于包含時(shí)序數(shù)據(jù)的多模數(shù)據(jù)庫(kù)來(lái)說(shuō),由于時(shí)序數(shù)據(jù)的數(shù)據(jù)量遠(yuǎn)大于關(guān)系型數(shù)據(jù),時(shí)序數(shù)據(jù)的副本遷移會(huì)對(duì)cpu,存儲(chǔ),網(wǎng)絡(luò)造成較大的負(fù)擔(dān),在新節(jié)點(diǎn)加入后,無(wú)論是等待遷移副本完成,還是取消正在遷移的副本,都需要額外的性能開(kāi)銷(xiāo)。


    技術(shù)實(shí)現(xiàn)思路

    1、本專(zhuān)利技術(shù)的技術(shù)任務(wù)是針對(duì)以上不足之處,提供一種分布式多模數(shù)據(jù)庫(kù)在線升級(jí)的方法,對(duì)于分布式多模數(shù)據(jù)庫(kù)不同版本之間的版本升級(jí)和二進(jìn)制替換,在升級(jí)的同時(shí)仍然能對(duì)外提供讀寫(xiě)支持,保證數(shù)據(jù)在線可用,以及升級(jí)期間避免副本遷移。

    2、本專(zhuān)利技術(shù)解決其技術(shù)問(wèn)題所采用的技術(shù)方案是:

    3、一種分布式多模數(shù)據(jù)庫(kù)在線升級(jí)的方法,在分布式數(shù)據(jù)庫(kù)集群中進(jìn)行數(shù)據(jù)庫(kù)版本升級(jí)時(shí),對(duì)于升級(jí)節(jié)點(diǎn),優(yōu)先將該節(jié)點(diǎn)持有的副本租約leaseholder遷移至其他節(jié)點(diǎn),保證升級(jí)期間讀寫(xiě)可用無(wú)中斷,同時(shí)禁止副本進(jìn)行遷移,直至升級(jí)完成后恢復(fù)副本遷移。

    4、該方法在升級(jí)過(guò)程中,有計(jì)劃的遷移升級(jí)節(jié)點(diǎn)持有的leaseholder,阻止在遷移操作中的副本遷移,通過(guò)在進(jìn)行數(shù)據(jù)庫(kù)版本升級(jí)時(shí)先轉(zhuǎn)移該數(shù)據(jù)庫(kù)節(jié)點(diǎn)持有的所有l(wèi)easeholder,同時(shí)禁止該節(jié)點(diǎn)的副本遷移,保證在升級(jí)期間的全過(guò)程數(shù)據(jù)讀寫(xiě)可用,并減少不必要的副本遷移。

    5、進(jìn)一步的,該方法的具體實(shí)現(xiàn)步驟包括:

    6、s1、提供升級(jí)命令,優(yōu)先遷移升級(jí)節(jié)點(diǎn)的leaseholder到其他節(jié)點(diǎn);

    7、s2、添加升級(jí)命令;對(duì)于要升級(jí)的節(jié)點(diǎn),接收到升級(jí)命令后,進(jìn)行升級(jí),并標(biāo)記節(jié)點(diǎn)為升級(jí)狀態(tài),指定時(shí)間內(nèi)禁止該節(jié)點(diǎn)持有的數(shù)據(jù)副本進(jìn)行遷移;

    8、s3、更新環(huán)境配置,更換新版本二進(jìn)制及相關(guān)文件;

    9、s4、啟動(dòng)新版本數(shù)據(jù)庫(kù),允許副本遷移,允許leaseholder回遷。

    10、進(jìn)一步的,所述提供升級(jí)命令,優(yōu)先遷移升級(jí)節(jié)點(diǎn)的leaseholder到其他節(jié)點(diǎn),具體實(shí)現(xiàn)如下:

    11、用戶(hù)手動(dòng)觸發(fā)upgrade<node_id>命令指定升級(jí)節(jié)點(diǎn);

    12、節(jié)點(diǎn)狀態(tài)切換為upgrading;

    13、切換數(shù)據(jù)庫(kù)二進(jìn)制版本;

    14、以start+upgrade-complete命令啟動(dòng)新版本數(shù)據(jù)庫(kù);

    15、完成在線升級(jí)。

    16、進(jìn)一步的,所述添加升級(jí)命令,為upgrade,使用方式為:

    17、database?node?upgrade--node-id$node_id--host$host

    18、其中,$node_id是要進(jìn)行升級(jí)操作的節(jié)點(diǎn)id,$host是接受數(shù)據(jù)庫(kù)連接的ip與端口地址,數(shù)據(jù)庫(kù)接收到命令后,向指定的$node_id發(fā)送命令,準(zhǔn)備進(jìn)行升級(jí)操作。

    19、進(jìn)一步的,對(duì)于要升級(jí)的節(jié)點(diǎn)$node_id,接收到升級(jí)命令后,查找該節(jié)點(diǎn)本身持有的所有l(wèi)easeholder,對(duì)于每個(gè)leaseholder,查詢(xún)其所有副本狀態(tài);

    20、對(duì)于副本repl-1,查詢(xún)其所有副本位于節(jié)點(diǎn)1,2,3上,此時(shí)leaseholder分布于節(jié)點(diǎn)1上;查詢(xún)節(jié)點(diǎn)2,節(jié)點(diǎn)3上持有的leaseholder數(shù)量,選擇其中含有低數(shù)量leaseholder的節(jié)點(diǎn),假設(shè)該節(jié)點(diǎn)為節(jié)點(diǎn)2,構(gòu)建admintransferleaserequest,則其中包含要遷移的副本repl-1和要遷往的目標(biāo)節(jié)點(diǎn)2;

    21、標(biāo)記節(jié)點(diǎn)為升級(jí)狀態(tài),指定時(shí)間內(nèi)禁止該節(jié)點(diǎn)持有的數(shù)據(jù)副本進(jìn)行遷移。

    22、進(jìn)一步的,新版本數(shù)據(jù)庫(kù)需要以特殊命令方式啟動(dòng),代表該升級(jí)完成,語(yǔ)法如下:

    23、database?start—upgrade-complete—host$host

    24、對(duì)于啟動(dòng)參數(shù),添加了額外配置—upgrade-complete,對(duì)于啟動(dòng)的數(shù)據(jù)庫(kù)節(jié)點(diǎn),該參數(shù)代表該節(jié)點(diǎn)是在線升級(jí)的方式啟動(dòng)的,而非宕機(jī)恢復(fù)或新擴(kuò)容節(jié)點(diǎn);對(duì)于該數(shù)據(jù)庫(kù)節(jié)點(diǎn),數(shù)據(jù)庫(kù)重新做初始化操作,標(biāo)記節(jié)點(diǎn)狀態(tài)從升級(jí)狀態(tài)變更為正常節(jié)點(diǎn)狀態(tài),將節(jié)點(diǎn)重新加入集群網(wǎng)絡(luò),允許副本進(jìn)行遷移。

    25、若集群存在leaseholder均衡機(jī)制,則不需要對(duì)leaseholder本文檔來(lái)自技高網(wǎng)...

    【技術(shù)保護(hù)點(diǎn)】

    1.一種分布式多模數(shù)據(jù)庫(kù)在線升級(jí)的方法,其特征在于,在分布式數(shù)據(jù)庫(kù)集群中進(jìn)行數(shù)據(jù)庫(kù)版本升級(jí)時(shí),對(duì)于升級(jí)節(jié)點(diǎn),優(yōu)先將該節(jié)點(diǎn)持有的副本租約遷移至其他節(jié)點(diǎn),保證升級(jí)期間讀寫(xiě)可用無(wú)中斷,同時(shí)禁止副本進(jìn)行遷移,直至升級(jí)完成后恢復(fù)副本遷移。

    2.根據(jù)權(quán)利要求1所述的一種分布式多模數(shù)據(jù)庫(kù)在線升級(jí)的方法,其特征在于,該方法的具體實(shí)現(xiàn)步驟包括:

    3.根據(jù)權(quán)利要求2所述的一種分布式多模數(shù)據(jù)庫(kù)在線升級(jí)的方法,其特征在于,所述提供升級(jí)命令,優(yōu)先遷移升級(jí)節(jié)點(diǎn)的leaseholder到其他節(jié)點(diǎn),具體實(shí)現(xiàn)如下:

    4.根據(jù)權(quán)利要求2所述的一種分布式多模數(shù)據(jù)庫(kù)在線升級(jí)的方法,其特征在于,所述添加升級(jí)命令,為upgrade,使用方式為:

    5.根據(jù)權(quán)利要求4所述的一種分布式多模數(shù)據(jù)庫(kù)在線升級(jí)的方法,其特征在于,對(duì)于要升級(jí)的節(jié)點(diǎn)$node_id,接收到升級(jí)命令后,查找該節(jié)點(diǎn)本身持有的所有l(wèi)easeholder,對(duì)于每個(gè)leaseholder,查詢(xún)其所有副本狀態(tài);

    6.根據(jù)權(quán)利要求2或4所述的一種分布式多模數(shù)據(jù)庫(kù)在線升級(jí)的方法,其特征在于,新版本數(shù)據(jù)庫(kù)以特殊命令方式啟動(dòng),代表該升級(jí)完成,語(yǔ)法如下:

    7.根據(jù)權(quán)利要求2所述的一種分布式多模數(shù)據(jù)庫(kù)在線升級(jí)的方法,其特征在于,替換二進(jìn)制后,以新版本啟動(dòng)數(shù)據(jù)庫(kù)時(shí)進(jìn)行初始化操作。

    8.根據(jù)權(quán)利要求1所述的一種分布式多模數(shù)據(jù)庫(kù)在線升級(jí)的方法,其特征在于,所述分布式多模數(shù)據(jù)庫(kù)包括關(guān)系型數(shù)據(jù)庫(kù)和時(shí)序型數(shù)據(jù)庫(kù)。

    9.一種分布式多模數(shù)據(jù)庫(kù)在線升級(jí)實(shí)現(xiàn)裝置,其特征在于,包括:至少一個(gè)存儲(chǔ)器和至少一個(gè)處理器;

    10.一種計(jì)算機(jī)可讀介質(zhì),其特征在于,所述計(jì)算機(jī)可讀介質(zhì)上存儲(chǔ)有計(jì)算機(jī)指令,所述計(jì)算機(jī)指令在被處理器執(zhí)行時(shí),能夠?qū)崿F(xiàn)權(quán)利要求1至8任一項(xiàng)所述的方法。

    ...

    【技術(shù)特征摘要】

    1.一種分布式多模數(shù)據(jù)庫(kù)在線升級(jí)的方法,其特征在于,在分布式數(shù)據(jù)庫(kù)集群中進(jìn)行數(shù)據(jù)庫(kù)版本升級(jí)時(shí),對(duì)于升級(jí)節(jié)點(diǎn),優(yōu)先將該節(jié)點(diǎn)持有的副本租約遷移至其他節(jié)點(diǎn),保證升級(jí)期間讀寫(xiě)可用無(wú)中斷,同時(shí)禁止副本進(jìn)行遷移,直至升級(jí)完成后恢復(fù)副本遷移。

    2.根據(jù)權(quán)利要求1所述的一種分布式多模數(shù)據(jù)庫(kù)在線升級(jí)的方法,其特征在于,該方法的具體實(shí)現(xiàn)步驟包括:

    3.根據(jù)權(quán)利要求2所述的一種分布式多模數(shù)據(jù)庫(kù)在線升級(jí)的方法,其特征在于,所述提供升級(jí)命令,優(yōu)先遷移升級(jí)節(jié)點(diǎn)的leaseholder到其他節(jié)點(diǎn),具體實(shí)現(xiàn)如下:

    4.根據(jù)權(quán)利要求2所述的一種分布式多模數(shù)據(jù)庫(kù)在線升級(jí)的方法,其特征在于,所述添加升級(jí)命令,為upgrade,使用方式為:

    5.根據(jù)權(quán)利要求4所述的一種分布式多模數(shù)據(jù)庫(kù)在線升級(jí)的方法,其特征在于,對(duì)于要升級(jí)的節(jié)點(diǎn)$node_id,接收到升級(jí)命令后,查找...

    【專(zhuān)利技術(shù)屬性】
    技術(shù)研發(fā)人員:樊鑫源
    申請(qǐng)(專(zhuān)利權(quán))人:上海沄熹科技有限公司
    類(lèi)型:發(fā)明
    國(guó)別省市:

    網(wǎng)友詢(xún)問(wèn)留言 已有0條評(píng)論
    • 還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。

    1
    主站蜘蛛池模板: 无码中文av有码中文av| 永久免费av无码网站大全| 亚洲国产成人片在线观看无码| 国产AV无码专区亚洲A∨毛片| 精品人妻系列无码天堂| 久久精品无码中文字幕| 亚洲AV无码第一区二区三区 | 亚洲a无码综合a国产av中文| 国产台湾无码AV片在线观看| 无码中文字幕色专区| 国产精品ⅴ无码大片在线看| 精品无码久久久久久久久 | 午夜无码视频一区二区三区| 精品无码久久久久久尤物| 日韩av无码免费播放| 免费a级毛片无码a∨性按摩| 亚洲色无码专区一区| 蜜桃无码一区二区三区| 亚洲动漫精品无码av天堂| 久久久久久无码国产精品中文字幕| 亚洲精品无码专区| 久久精品亚洲AV久久久无码| 韩日美无码精品无码| 中文字幕无码第1页| 亚洲精品无码你懂的网站| 特级无码毛片免费视频| 成人免费无码大片a毛片| 性生交片免费无码看人| 无码夫の前で人妻を侵犯| 熟妇人妻中文字幕无码老熟妇| 日韩久久无码免费毛片软件| 人妻精品无码一区二区三区| 成人免费午夜无码视频| 亚洲人成人伊人成综合网无码 | 狠狠精品干练久久久无码中文字幕| 精品多人p群无码| 亚洲日韩av无码中文| 国产精品无码av天天爽| 特级做A爰片毛片免费看无码| 国产精品毛片无码| 亚洲永久无码3D动漫一区|