一種確定數(shù)據(jù)節(jié)點(diǎn)失效的方法
【專利摘要】本發(fā)明公開(kāi)了一種確定數(shù)據(jù)節(jié)點(diǎn)失效的方法,用于分布式數(shù)據(jù)庫(kù),該方法包括:在訪問(wèn)所述分布式數(shù)據(jù)庫(kù)的所有應(yīng)用節(jié)點(diǎn)中,當(dāng)任意一個(gè)應(yīng)用節(jié)點(diǎn)連接不上所述分布式數(shù)據(jù)庫(kù)中的某個(gè)數(shù)據(jù)節(jié)點(diǎn)時(shí),向其它應(yīng)用節(jié)點(diǎn)發(fā)出連接不上該數(shù)據(jù)節(jié)點(diǎn)的廣播;其它應(yīng)用節(jié)點(diǎn)收到所述廣播后,向該數(shù)據(jù)節(jié)點(diǎn)發(fā)出連接請(qǐng)求,以確定是否能夠連接該數(shù)據(jù)節(jié)點(diǎn);當(dāng)無(wú)法連接該數(shù)據(jù)節(jié)點(diǎn)的應(yīng)用節(jié)點(diǎn)數(shù)量達(dá)到所設(shè)定的閾值時(shí),確定該數(shù)據(jù)節(jié)點(diǎn)失效。本發(fā)明的方法中,利用各個(gè)應(yīng)用節(jié)點(diǎn)分屬于不同IP的特點(diǎn),確定該數(shù)據(jù)節(jié)點(diǎn)是否失效,可避免通過(guò)同一個(gè)IP向數(shù)據(jù)節(jié)點(diǎn)發(fā)送同步請(qǐng)求時(shí)由于網(wǎng)絡(luò)波動(dòng)對(duì)該單一IP造成的影響,進(jìn)而可更加準(zhǔn)確的判斷數(shù)據(jù)節(jié)點(diǎn)的失效原因。
【專利說(shuō)明】一種確定數(shù)據(jù)節(jié)點(diǎn)失效的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及分布式數(shù)據(jù)庫(kù)領(lǐng)域,特別涉及一種確定數(shù)據(jù)節(jié)點(diǎn)失效的方法。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,對(duì)數(shù)據(jù)的存儲(chǔ)和訪問(wèn)的要求越來(lái)越高,由此,分布式數(shù)據(jù)庫(kù)應(yīng)運(yùn)而生。分布式數(shù)據(jù)庫(kù)的高擴(kuò)展性和高可用性為許多需要不間斷工作的網(wǎng)站解決了難題。
[0003]分布式數(shù)據(jù)庫(kù),是由分布在多個(gè)計(jì)算機(jī)節(jié)點(diǎn)上的子數(shù)據(jù)庫(kù)組成,分布在各個(gè)計(jì)算機(jī)節(jié)點(diǎn)上的各個(gè)子數(shù)據(jù)庫(kù)稱為數(shù)據(jù)節(jié)點(diǎn),各個(gè)數(shù)據(jù)節(jié)點(diǎn)在邏輯上是相關(guān)的,地位是平等的。為了保證整個(gè)分布式數(shù)據(jù)庫(kù)的正常運(yùn)行,必須即時(shí)了解每個(gè)數(shù)據(jù)節(jié)點(diǎn)的運(yùn)行狀態(tài),以確定是否能正常提供服務(wù),即確定數(shù)據(jù)節(jié)點(diǎn)是否有效。而網(wǎng)絡(luò)波動(dòng)、硬件故障等原因,都可能導(dǎo)致數(shù)據(jù)節(jié)點(diǎn)的失效,例如,網(wǎng)絡(luò)波動(dòng)會(huì)引起數(shù)據(jù)節(jié)點(diǎn)的暫時(shí)性失效,而硬件故障則會(huì)到時(shí)數(shù)據(jù)節(jié)點(diǎn)永久失效。因此需要一種有效的手段來(lái)確定當(dāng)前數(shù)據(jù)節(jié)點(diǎn)是否失效。
[0004]Cassandra是一套開(kāi)源分布式NoSQL數(shù)據(jù)庫(kù)系統(tǒng)。由于Cassandra良好的可擴(kuò)放性,已被眾多知名網(wǎng)站所采納,成為了一種流行的分布式結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)方案。在Cassandra中,判定節(jié)點(diǎn)失效的方法是采用基于疑似度的檢測(cè)(Accrual Fai lureDetection)。該方法的基本思想是在分布式環(huán)境下,通過(guò)一個(gè)代表失效疑似度的值來(lái)判斷數(shù)據(jù)節(jié)點(diǎn)是否失效。該方法是在一定的時(shí)間窗口內(nèi),不斷向數(shù)據(jù)節(jié)點(diǎn)發(fā)送同步請(qǐng)求,如果數(shù)據(jù)節(jié)點(diǎn)未能響應(yīng)同步消息一次,那么該數(shù)據(jù)節(jié)點(diǎn)的失效疑似度的值就加1,當(dāng)失效疑似度的值達(dá)到某個(gè)設(shè)定的閾值后,就確定該數(shù)據(jù)節(jié)點(diǎn)的永久失效。
[0005]由于采用上述基于疑似度的檢測(cè)的方法,通過(guò)同一個(gè)IP向數(shù)據(jù)節(jié)點(diǎn)發(fā)送同步請(qǐng)求,不能很好的避免因網(wǎng)絡(luò)波動(dòng)對(duì)所發(fā)送同步請(qǐng)求的影響,在一段時(shí)間內(nèi)由于網(wǎng)絡(luò)波動(dòng)可能產(chǎn)生同步請(qǐng)求數(shù)據(jù)和/或數(shù)據(jù)節(jié)點(diǎn)對(duì)同步請(qǐng)求的響應(yīng)數(shù)據(jù)的丟失,進(jìn)而可能造成在發(fā)送同步請(qǐng)求的一段時(shí)間內(nèi),數(shù)據(jù)節(jié)點(diǎn)失效疑似度的值顯著增加,甚至使得數(shù)據(jù)節(jié)點(diǎn)失效疑似度的達(dá)到所設(shè)定的閾值而被判定為永久失效,但實(shí)際上在這段時(shí)間過(guò)后,數(shù)據(jù)節(jié)點(diǎn)仍然會(huì)處于可用狀態(tài)而并非真的永久失效。因此,現(xiàn)有的上述基于疑似度的檢測(cè)的方法在使用過(guò)程中可能產(chǎn)生數(shù)據(jù)節(jié)點(diǎn)失效的誤判。
【發(fā)明內(nèi)容】
[0006]有鑒于此,本發(fā)明提供一種確定數(shù)據(jù)節(jié)點(diǎn)失效的方法,以準(zhǔn)確的判斷數(shù)據(jù)節(jié)點(diǎn)是因網(wǎng)絡(luò)引起的暫時(shí)性失效,還是硬件原因引起的永久失效。
[0007]本申請(qǐng)的技術(shù)方案是這樣實(shí)現(xiàn)的:
[0008]一種確定數(shù)據(jù)節(jié)點(diǎn)失效的方法,用于分布式數(shù)據(jù)庫(kù),該方法包括:
[0009]在訪問(wèn)所述分布式數(shù)據(jù)庫(kù)的所有應(yīng)用節(jié)點(diǎn)中,當(dāng)任意一個(gè)應(yīng)用節(jié)點(diǎn)連接不上所述分布式數(shù)據(jù)庫(kù)中的某個(gè)數(shù)據(jù)節(jié)點(diǎn)時(shí),向其它應(yīng)用節(jié)點(diǎn)發(fā)出連接不上該數(shù)據(jù)節(jié)點(diǎn)的廣播;
[0010]其它應(yīng)用節(jié)點(diǎn)收到所述廣播后,向該數(shù)據(jù)節(jié)點(diǎn)發(fā)出連接請(qǐng)求,以確定是否能夠連接該數(shù)據(jù)節(jié)點(diǎn);
[0011]當(dāng)無(wú)法連接該數(shù)據(jù)節(jié)點(diǎn)的應(yīng)用節(jié)點(diǎn)數(shù)量達(dá)到所設(shè)定的閾值時(shí),確定該數(shù)據(jù)節(jié)點(diǎn)失效。
[0012]進(jìn)一步,在訪問(wèn)所述分布式數(shù)據(jù)庫(kù)的所有應(yīng)用節(jié)點(diǎn)中,選出任意一個(gè)應(yīng)用節(jié)點(diǎn)作為仲裁節(jié)點(diǎn),以統(tǒng)計(jì)無(wú)法連接該數(shù)據(jù)節(jié)點(diǎn)的應(yīng)用節(jié)點(diǎn)的數(shù)量。
[0013]進(jìn)一步:
[0014]在所述仲裁節(jié)點(diǎn)中設(shè)定一判定值,并將所述判定值初始化為O ;
[0015]當(dāng)所述其它應(yīng)用節(jié)點(diǎn)向該數(shù)據(jù)節(jié)點(diǎn)發(fā)出連接請(qǐng)求后,均將是否能夠連接該數(shù)據(jù)節(jié)點(diǎn)的信息發(fā)送給所述仲裁節(jié)點(diǎn);
[0016]所述仲裁節(jié)點(diǎn)接收所有應(yīng)用節(jié)點(diǎn)發(fā)來(lái)的是否能夠連接該數(shù)據(jù)節(jié)點(diǎn)的信息,且所述仲裁節(jié)點(diǎn)每收到一個(gè)應(yīng)用節(jié)點(diǎn)發(fā)來(lái)的無(wú)法連接該數(shù)據(jù)節(jié)點(diǎn)的消息,便將所述判定值做一次加I操作;
[0017]當(dāng)所述仲裁節(jié)點(diǎn)接收完所有應(yīng)用節(jié)點(diǎn)發(fā)來(lái)的是否能夠連接該數(shù)據(jù)節(jié)點(diǎn)的信息后:
[0018]若所述判定值達(dá)到所設(shè)定的閾值,則確定該數(shù)據(jù)節(jié)點(diǎn)失效;
[0019]若所述判定值未達(dá)到所設(shè)定的閾值,則確定該數(shù)據(jù)節(jié)點(diǎn)有效。
[0020]進(jìn)一步,所述閾值為訪問(wèn)所述分布式數(shù)據(jù)庫(kù)的所有應(yīng)用節(jié)點(diǎn)數(shù)量的一半。
[0021]進(jìn)一步,確定該數(shù)據(jù)節(jié)點(diǎn)失效之后,所述方法還包括:
[0022]將該數(shù)據(jù)節(jié)點(diǎn)從所述分布式數(shù)據(jù)庫(kù)中刪除;
[0023]啟用該數(shù)據(jù)節(jié)點(diǎn)的備份節(jié)點(diǎn)。
[0024]進(jìn)一步,確定該數(shù)據(jù)節(jié)點(diǎn)有效之后,所述方法還包括:
[0025]將所述判定值恢復(fù)為初始值O ;
[0026]連接不上該數(shù)據(jù)節(jié)點(diǎn)的應(yīng)用節(jié)點(diǎn)定時(shí)向該數(shù)據(jù)節(jié)點(diǎn)發(fā)送連接請(qǐng)求,以等待該數(shù)據(jù)節(jié)點(diǎn)恢復(fù)連接。
[0027]進(jìn)一步,當(dāng)任意一個(gè)應(yīng)用節(jié)點(diǎn)連接不上所述分布式數(shù)據(jù)庫(kù)中的某個(gè)數(shù)據(jù)節(jié)點(diǎn)時(shí),屏蔽掉該應(yīng)用節(jié)點(diǎn)到該數(shù)據(jù)節(jié)點(diǎn)的連接。
[0028]進(jìn)一步,各個(gè)應(yīng)用節(jié)點(diǎn)分屬于不同IP。
[0029]從上述方案可以看出,本發(fā)明的確定數(shù)據(jù)節(jié)點(diǎn)失效的方法中,當(dāng)某一應(yīng)用節(jié)點(diǎn)連接不上某個(gè)數(shù)據(jù)節(jié)點(diǎn)后,通過(guò)多個(gè)應(yīng)用節(jié)點(diǎn)向該數(shù)據(jù)節(jié)點(diǎn)發(fā)出連接請(qǐng)求以確定是否能夠連接該數(shù)據(jù)節(jié)點(diǎn),進(jìn)而確定該數(shù)據(jù)節(jié)點(diǎn)是否失效,由于各個(gè)應(yīng)用節(jié)點(diǎn)分屬于不同IP,進(jìn)而可避免現(xiàn)有技術(shù)中通過(guò)同一個(gè)IP向數(shù)據(jù)節(jié)點(diǎn)發(fā)送同步請(qǐng)求時(shí)由于網(wǎng)絡(luò)波動(dòng)對(duì)該單一 IP造成的影響。本發(fā)明比現(xiàn)有技術(shù)更加準(zhǔn)確的判斷數(shù)據(jù)節(jié)點(diǎn)是因網(wǎng)絡(luò)引起的暫時(shí)性失效,還是硬件原因引起的永久失效。
【專利附圖】
【附圖說(shuō)明】
[0030]圖1為本發(fā)明的確定數(shù)據(jù)節(jié)點(diǎn)失效的方法流程圖;
[0031]圖2為本發(fā)明實(shí)施例流程圖。
【具體實(shí)施方式】[0032]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉實(shí)施例,對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。
[0033]本發(fā)明的確定數(shù)據(jù)節(jié)點(diǎn)失效的方法用于分布式數(shù)據(jù)庫(kù),如圖1所示,該方法包括:
[0034]在訪問(wèn)所述分布式數(shù)據(jù)庫(kù)的所有應(yīng)用節(jié)點(diǎn)中,當(dāng)任意一個(gè)應(yīng)用節(jié)點(diǎn)連接不上所述分布式數(shù)據(jù)庫(kù)中的某個(gè)數(shù)據(jù)節(jié)點(diǎn)時(shí),向其它應(yīng)用節(jié)點(diǎn)發(fā)出連接不上該數(shù)據(jù)節(jié)點(diǎn)的廣播;
[0035]其它應(yīng)用節(jié)點(diǎn)收到所述廣播后,向該數(shù)據(jù)節(jié)點(diǎn)發(fā)出連接請(qǐng)求,以確定是否能夠連接該數(shù)據(jù)節(jié)點(diǎn);
[0036]當(dāng)無(wú)法連接該數(shù)據(jù)節(jié)點(diǎn)的應(yīng)用節(jié)點(diǎn)數(shù)量達(dá)到所設(shè)定的閾值時(shí),確定該數(shù)據(jù)節(jié)點(diǎn)失效。
[0037]其中,統(tǒng)計(jì)無(wú)法連接該數(shù)據(jù)節(jié)點(diǎn)的應(yīng)用節(jié)點(diǎn)的數(shù)量是在一仲裁節(jié)點(diǎn)中進(jìn)行。仲裁節(jié)點(diǎn)的選擇是:在訪問(wèn)所述分布式數(shù)據(jù)庫(kù)的所有應(yīng)用節(jié)點(diǎn)中,任意選出的一個(gè)應(yīng)用節(jié)點(diǎn)作為仲裁節(jié)點(diǎn)。
[0038]所述仲裁節(jié)點(diǎn)統(tǒng)計(jì)無(wú)法連接該數(shù)據(jù)節(jié)點(diǎn)通過(guò)如下方法進(jìn)行:
[0039]在所述仲裁節(jié)點(diǎn)中設(shè)定一判定值,并將所述判定值初始化為O ;
[0040]當(dāng)所述其它應(yīng)用節(jié)點(diǎn)向該數(shù)據(jù)節(jié)點(diǎn)發(fā)出連接請(qǐng)求后,均將是否能夠連接該數(shù)據(jù)節(jié)點(diǎn)的信息發(fā)送給所述仲裁節(jié)點(diǎn);
[0041]所述仲裁節(jié)點(diǎn)接收所有應(yīng)用節(jié)點(diǎn)發(fā)來(lái)的是否能夠連接該數(shù)據(jù)節(jié)點(diǎn)的信息,且所述仲裁節(jié)點(diǎn)每收到一個(gè)應(yīng)用節(jié)點(diǎn)發(fā)來(lái)的無(wú)法連接該數(shù)據(jù)節(jié)點(diǎn)的消息,便將所述判定值做一次加I操作;
[0042]當(dāng)所述仲裁節(jié)點(diǎn)接收完所有應(yīng)用節(jié)點(diǎn)發(fā)來(lái)的是否能夠連接該數(shù)據(jù)節(jié)點(diǎn)的信息后:
[0043]若所述判定值達(dá)到所設(shè)定的閾值,則確定該數(shù)據(jù)節(jié)點(diǎn)失效;
[0044]若所述判定值未達(dá)到所設(shè)定的閾值,則確定該數(shù)據(jù)節(jié)點(diǎn)有效。
[0045]與現(xiàn)有技術(shù)不同的是,本發(fā)明的方法是當(dāng)某一應(yīng)用節(jié)點(diǎn)連接不上某個(gè)數(shù)據(jù)節(jié)點(diǎn)后,通過(guò)多個(gè)應(yīng)用節(jié)點(diǎn)向該數(shù)據(jù)節(jié)點(diǎn)發(fā)出連接請(qǐng)求以確定是否能夠連接該數(shù)據(jù)節(jié)點(diǎn),進(jìn)而確定該數(shù)據(jù)節(jié)點(diǎn)是否失效,各個(gè)應(yīng)用節(jié)點(diǎn)分屬于不同IP,進(jìn)而可避免現(xiàn)有技術(shù)中通過(guò)同一個(gè)IP向數(shù)據(jù)節(jié)點(diǎn)發(fā)送同步請(qǐng)求時(shí)由于網(wǎng)絡(luò)波動(dòng)對(duì)該單一 IP造成的影響,進(jìn)而比現(xiàn)有技術(shù)更加準(zhǔn)確的判斷數(shù)據(jù)節(jié)點(diǎn)是因網(wǎng)絡(luò)引起的暫時(shí)性失效,還是硬件原因引起的永久失效。
[0046]本發(fā)明的上述方法中,當(dāng)確定該數(shù)據(jù)節(jié)點(diǎn)失效之后,還包括:
[0047]將該數(shù)據(jù)節(jié)點(diǎn)從所述分布式數(shù)據(jù)庫(kù)中刪除;
[0048]啟用該數(shù)據(jù)節(jié)點(diǎn)的備份節(jié)點(diǎn)。
[0049]進(jìn)而實(shí)現(xiàn)了對(duì)失效數(shù)據(jù)節(jié)點(diǎn)替換。
[0050]當(dāng)確定該數(shù)據(jù)節(jié)點(diǎn)有效之后,本發(fā)明的方法還包括:
[0051 ] 將所述判定值恢復(fù)為初始值O ;
[0052]連接不上該數(shù)據(jù)節(jié)點(diǎn)的應(yīng)用節(jié)點(diǎn)定時(shí)向該數(shù)據(jù)節(jié)點(diǎn)發(fā)送連接請(qǐng)求,以等待該數(shù)據(jù)節(jié)點(diǎn)恢復(fù)連接。
[0053]在實(shí)際網(wǎng)絡(luò)應(yīng)用時(shí),訪問(wèn)分布式數(shù)據(jù)庫(kù)的應(yīng)用節(jié)點(diǎn)的數(shù)量龐大,每個(gè)應(yīng)用節(jié)點(diǎn)的IP地址各不相同,而分布式數(shù)據(jù)庫(kù)中具有大量的數(shù)據(jù)節(jié)點(diǎn)。以下結(jié)合一個(gè)具體實(shí)施例,對(duì)本發(fā)明的方法進(jìn)行說(shuō)明。該實(shí)施例中,假設(shè)訪問(wèn)分布式數(shù)據(jù)庫(kù)的應(yīng)用節(jié)點(diǎn)共有N個(gè),N>1,分布式數(shù)據(jù)庫(kù)中具有M個(gè)數(shù)據(jù)節(jié)點(diǎn)(M>1),其中出現(xiàn)N個(gè)應(yīng)用節(jié)點(diǎn)中的應(yīng)用節(jié)點(diǎn)i(l < i < N)連接不上分布式數(shù)據(jù)庫(kù)中的數(shù)據(jù)節(jié)點(diǎn)j (數(shù)據(jù)節(jié)點(diǎn)j為M個(gè)數(shù)據(jù)節(jié)點(diǎn)中的任意一個(gè))。如圖2所示,該實(shí)施例包括以下步驟:
[0054]步驟1、從N個(gè)應(yīng)用節(jié)點(diǎn)中任意選出一個(gè)應(yīng)用節(jié)點(diǎn)作為仲裁節(jié)點(diǎn),并在仲裁節(jié)點(diǎn)中設(shè)定一判定值,并將判定值初始化為“0”,設(shè)定一閾值,并將閾值設(shè)置為N/2,之后進(jìn)入步驟2。
[0055]步驟2、當(dāng)應(yīng)用節(jié)點(diǎn)i連接不上分布式數(shù)據(jù)庫(kù)中的數(shù)據(jù)節(jié)點(diǎn)j時(shí),向其它應(yīng)用節(jié)點(diǎn)發(fā)出連接不上數(shù)據(jù)節(jié)點(diǎn)j的廣播,之后進(jìn)入步驟3。
[0056]所有應(yīng)用節(jié)點(diǎn)中的任意一個(gè)應(yīng)用節(jié)點(diǎn)連接不上分布式數(shù)據(jù)庫(kù)中的某個(gè)數(shù)據(jù)節(jié)點(diǎn)時(shí),還可進(jìn)一步包括,屏蔽掉該應(yīng)用節(jié)點(diǎn)到該數(shù)據(jù)節(jié)點(diǎn)的連接。例如本步驟2中,當(dāng)應(yīng)用節(jié)點(diǎn)i連接不上數(shù)據(jù)節(jié)點(diǎn)j時(shí),應(yīng)用節(jié)點(diǎn)i屏蔽掉其到數(shù)據(jù)節(jié)點(diǎn)j的連接,進(jìn)而可避免應(yīng)用節(jié)點(diǎn)i 一直發(fā)起對(duì)數(shù)據(jù)節(jié)點(diǎn)j的連接但連接不上數(shù)據(jù)節(jié)點(diǎn)j所造成的網(wǎng)絡(luò)資源開(kāi)銷。
[0057]步驟3、其它應(yīng)用節(jié)點(diǎn)收到連接不上數(shù)據(jù)節(jié)點(diǎn)j的廣播后,向數(shù)據(jù)節(jié)點(diǎn)j發(fā)出連接請(qǐng)求,之后進(jìn)入步驟4。
[0058]步驟4、其它應(yīng)用節(jié)點(diǎn)均將是否能夠連接數(shù)據(jù)節(jié)點(diǎn)j的信息發(fā)送給所述仲裁節(jié)點(diǎn),之后進(jìn)入步驟5。
[0059]步驟5、仲裁節(jié)點(diǎn)接收所有應(yīng)用節(jié)點(diǎn)發(fā)來(lái)的是否能夠連接數(shù)據(jù)節(jié)點(diǎn)j的信息,且仲裁節(jié)點(diǎn)每收到I個(gè)應(yīng)用節(jié)點(diǎn)發(fā)來(lái)的無(wú)法連接數(shù)據(jù)節(jié)點(diǎn)j的消息,便將判定值進(jìn)行加I操作,之后進(jìn)入步驟6。
[0060]步驟6、仲裁節(jié)點(diǎn)判定累加的判定值是否達(dá)到設(shè)定的閾值N/2:若累加的判定值達(dá)到設(shè)定的閾值N/2,則確定數(shù)據(jù)節(jié)點(diǎn)j失效,之后進(jìn)入步驟7;若累加的判定值未達(dá)到所設(shè)定的閾值N/2,則確定該數(shù)據(jù)節(jié)點(diǎn)有效,之后進(jìn)入步驟9。
[0061]步驟7、將數(shù)據(jù)節(jié)點(diǎn)j從所述分布式數(shù)據(jù)庫(kù)中刪除,之后進(jìn)入步驟8。
[0062]步驟8、啟用數(shù)據(jù)節(jié)點(diǎn)j的備份節(jié)點(diǎn)j’,以替代數(shù)據(jù)節(jié)點(diǎn)j。
[0063]步驟9、仲裁節(jié)點(diǎn)將所述判定值恢復(fù)為初始值0,并通知應(yīng)用節(jié)點(diǎn)i數(shù)據(jù)節(jié)點(diǎn)j有效,之后進(jìn)入步驟10;
[0064]步驟10、應(yīng)用節(jié)點(diǎn)i接收到仲裁節(jié)點(diǎn)發(fā)來(lái)的數(shù)據(jù)節(jié)點(diǎn)j有效的消息后,定時(shí)向數(shù)據(jù)節(jié)點(diǎn)j發(fā)送連接請(qǐng)求,以等待數(shù)據(jù)節(jié)點(diǎn)j恢復(fù)連接。
[0065]采用本發(fā)明的確定數(shù)據(jù)節(jié)點(diǎn)失效的方法,當(dāng)某一應(yīng)用節(jié)點(diǎn)連接不上某個(gè)數(shù)據(jù)節(jié)點(diǎn)后,通過(guò)多個(gè)應(yīng)用節(jié)點(diǎn)向該數(shù)據(jù)節(jié)點(diǎn)發(fā)出連接請(qǐng)求以確定是否能夠連接該數(shù)據(jù)節(jié)點(diǎn),進(jìn)而確定該數(shù)據(jù)節(jié)點(diǎn)是否失效,由于各個(gè)應(yīng)用節(jié)點(diǎn)分屬于不同IP,進(jìn)而可避免現(xiàn)有技術(shù)中通過(guò)同一個(gè)IP向數(shù)據(jù)節(jié)點(diǎn)發(fā)送同步請(qǐng)求時(shí)由于網(wǎng)絡(luò)波動(dòng)對(duì)該單一 IP造成的影響。本發(fā)明比現(xiàn)有技術(shù)更加準(zhǔn)確的判斷數(shù)據(jù)節(jié)點(diǎn)是因網(wǎng)絡(luò)引起的暫時(shí)性失效,還是硬件原因引起的永久失效。
[0066]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
【權(quán)利要求】
1.一種確定數(shù)據(jù)節(jié)點(diǎn)失效的方法,用于分布式數(shù)據(jù)庫(kù),該方法包括: 在訪問(wèn)所述分布式數(shù)據(jù)庫(kù)的所有應(yīng)用節(jié)點(diǎn)中,當(dāng)任意一個(gè)應(yīng)用節(jié)點(diǎn)連接不上所述分布式數(shù)據(jù)庫(kù)中的某個(gè)數(shù)據(jù)節(jié)點(diǎn)時(shí),向其它應(yīng)用節(jié)點(diǎn)發(fā)出連接不上該數(shù)據(jù)節(jié)點(diǎn)的廣播; 其它應(yīng)用節(jié)點(diǎn)收到所述廣播后,均向該數(shù)據(jù)節(jié)點(diǎn)發(fā)出連接請(qǐng)求,以確定是否能夠連接該數(shù)據(jù)節(jié)點(diǎn); 當(dāng)無(wú)法連接該數(shù)據(jù)節(jié)點(diǎn)的應(yīng)用節(jié)點(diǎn)數(shù)量達(dá)到所設(shè)定的閾值時(shí),確定該數(shù)據(jù)節(jié)點(diǎn)失效。
2.根據(jù)權(quán)利要求1所述的確定數(shù)據(jù)節(jié)點(diǎn)失效的方法,其特征在于: 在訪問(wèn)所述分布式數(shù)據(jù)庫(kù)的所有應(yīng)用節(jié)點(diǎn)中,選出任意一個(gè)應(yīng)用節(jié)點(diǎn)作為仲裁節(jié)點(diǎn),以統(tǒng)計(jì)無(wú)法連接該數(shù)據(jù)節(jié)點(diǎn)的應(yīng)用節(jié)點(diǎn)的數(shù)量。
3.根據(jù)權(quán)利要求2所述的確定數(shù)據(jù)節(jié)點(diǎn)失效的方法,其特征在于: 在所述仲裁節(jié)點(diǎn)中設(shè)定一判定值,并將所述判定值初始化為O ; 當(dāng)所述其它應(yīng)用節(jié)點(diǎn)向該數(shù)據(jù)節(jié)點(diǎn)發(fā)出連接請(qǐng)求后,均將是否能夠連接該數(shù)據(jù)節(jié)點(diǎn)的信息發(fā)送給所述仲裁節(jié)點(diǎn); 所述仲裁節(jié)點(diǎn)接收所有應(yīng)用節(jié)點(diǎn)發(fā)來(lái)的是否能夠連接該數(shù)據(jù)節(jié)點(diǎn)的信息,且所述仲裁節(jié)點(diǎn)每收到一個(gè)應(yīng)用節(jié)點(diǎn)發(fā)來(lái)的無(wú)法連接該數(shù)據(jù)節(jié)點(diǎn)的消息,便將所述判定值做一次加I操作; 當(dāng)所述仲裁節(jié)點(diǎn)接收完所有應(yīng)用節(jié)點(diǎn)發(fā)來(lái)的是否能夠連接該數(shù)據(jù)節(jié)點(diǎn)的信息后: 若所述判定值達(dá)到所設(shè)定的閾值,則確定該數(shù)據(jù)節(jié)點(diǎn)失效; 若所述判定值未達(dá)到所設(shè)定的閾值,則確定該數(shù)據(jù)節(jié)點(diǎn)有效。
4.根據(jù)權(quán)利要求1所述的確定數(shù)據(jù)節(jié)點(diǎn)失效的方法,其特征在于:所述閾值為訪問(wèn)所述分布式數(shù)據(jù)庫(kù)的所有應(yīng)用節(jié)點(diǎn)數(shù)量的一半。
5.根據(jù)權(quán)利要求1所述的確定數(shù)據(jù)節(jié)點(diǎn)失效的方法,其特征在于,確定該數(shù)據(jù)節(jié)點(diǎn)失效之后,所述方法還包括: 將該數(shù)據(jù)節(jié)點(diǎn)從所述分布式數(shù)據(jù)庫(kù)中刪除; 啟用該數(shù)據(jù)節(jié)點(diǎn)的備份節(jié)點(diǎn)。
6.根據(jù)權(quán)利要求3所述的確定數(shù)據(jù)節(jié)點(diǎn)失效的方法,其特征在于,確定該數(shù)據(jù)節(jié)點(diǎn)有效之后,所述方法還包括: 將所述判定值恢復(fù)為初始值O ; 連接不上該數(shù)據(jù)節(jié)點(diǎn)的應(yīng)用節(jié)點(diǎn)定時(shí)向該數(shù)據(jù)節(jié)點(diǎn)發(fā)送連接請(qǐng)求,以等待該數(shù)據(jù)節(jié)點(diǎn)恢復(fù)連接。
7.根據(jù)權(quán)利要求1所述的確定數(shù)據(jù)節(jié)點(diǎn)失效的方法,其特征在于,當(dāng)任意一個(gè)應(yīng)用節(jié)點(diǎn)連接不上所述分布式數(shù)據(jù)庫(kù)中的某個(gè)數(shù)據(jù)節(jié)點(diǎn)時(shí),屏蔽掉該應(yīng)用節(jié)點(diǎn)到該數(shù)據(jù)節(jié)點(diǎn)的連接。
8.根據(jù)權(quán)利要求1所述的確定數(shù)據(jù)節(jié)點(diǎn)失效的方法,其特征在于,各個(gè)應(yīng)用節(jié)點(diǎn)分屬于不同IP。
【文檔編號(hào)】G06F17/30GK103995901SQ201410254980
【公開(kāi)日】2014年8月20日 申請(qǐng)日期:2014年6月10日 優(yōu)先權(quán)日:2014年6月10日
【發(fā)明者】趙曉平, 唐超, 馬麗偉, 秦波, 王 鋒 申請(qǐng)人:北京京東尚科信息技術(shù)有限公司, 北京京東世紀(jì)貿(mào)易有限公司