一種數(shù)據(jù)存儲(chǔ)方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001 ]本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是涉及一種數(shù)據(jù)存儲(chǔ)方法及裝置。
【背景技術(shù)】
[0002]伴隨著信用卡業(yè)務(wù)的飛速發(fā)展,提供交易服務(wù)的開(kāi)放平臺(tái)后端服務(wù)系統(tǒng)變得越來(lái)越重要。傳統(tǒng)的開(kāi)放平臺(tái)后端服務(wù)系統(tǒng)基本采用應(yīng)用層和數(shù)據(jù)庫(kù)層組成的兩層架構(gòu)。
[0003]近今年來(lái)雖然應(yīng)用層通過(guò)服務(wù)化和無(wú)狀態(tài)的處理實(shí)現(xiàn)了分布式、具備了橫向擴(kuò)展能力。但是,數(shù)據(jù)庫(kù)層卻仍然依賴(lài)單一集中的數(shù)據(jù)庫(kù),尤其是信用卡業(yè)務(wù)飛速發(fā)展、交易數(shù)據(jù)庫(kù)的記錄數(shù)據(jù)已達(dá)到100億級(jí)別的今天,數(shù)據(jù)庫(kù)層存儲(chǔ)數(shù)據(jù)的瓶頸現(xiàn)象越來(lái)越嚴(yán)重,只能通過(guò)擴(kuò)容來(lái)支持業(yè)務(wù)量的增長(zhǎng),然而,通過(guò)擴(kuò)容來(lái)支持業(yè)務(wù)量增長(zhǎng)的方式,往往導(dǎo)致數(shù)據(jù)存儲(chǔ)成本增高、不能有效實(shí)現(xiàn)數(shù)據(jù)迀移的問(wèn)題。
[0004]因此,提供一種數(shù)據(jù)存儲(chǔ)方法及裝置,以便有效實(shí)現(xiàn)數(shù)據(jù)迀移、降低數(shù)據(jù)存儲(chǔ)成本,是亟待解決的問(wèn)題。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本申請(qǐng)實(shí)施例提供一種數(shù)據(jù)存儲(chǔ)方法及裝置,以便有效實(shí)現(xiàn)數(shù)據(jù)迀移、降低數(shù)據(jù)存儲(chǔ)成本。
[0006]為了實(shí)現(xiàn)上述目的,本申請(qǐng)實(shí)施例提供的技術(shù)方案如下:
[0007]—種數(shù)據(jù)存儲(chǔ)方法,應(yīng)用于至少一個(gè)物理節(jié)點(diǎn),包括:
[0008]將待存儲(chǔ)數(shù)據(jù)劃分為多個(gè)數(shù)據(jù)元組,所述數(shù)據(jù)元組包括與所述待存儲(chǔ)數(shù)據(jù)中唯一的客戶(hù)信息指示的客戶(hù)相關(guān)聯(lián)的待存儲(chǔ)信息;
[0009]利用預(yù)先設(shè)置的一致性哈希算法,分別將每個(gè)所述數(shù)據(jù)元組映射到由哈希值空間組織成的虛擬圓環(huán)中;
[0010]根據(jù)所述數(shù)據(jù)元組在所述虛擬圓環(huán)中的位置,以及預(yù)先定義的與所述物理節(jié)點(diǎn)對(duì)應(yīng)的虛擬節(jié)點(diǎn)通過(guò)所述一致性哈希算法映射在所述虛擬圓環(huán)中的位置,確定分別與每個(gè)所述物理節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)元組,以將所述數(shù)據(jù)元組中的待存儲(chǔ)信息存儲(chǔ)到與所述數(shù)據(jù)元組對(duì)應(yīng)的物理節(jié)點(diǎn)中。
[0011 ]優(yōu)選的,當(dāng)所述待存儲(chǔ)信息包括與所述待存儲(chǔ)信息相關(guān)聯(lián)的客戶(hù)對(duì)應(yīng)的客戶(hù)信息時(shí),
[0012]所述利用預(yù)先設(shè)置的一致性哈希算法,分別將每個(gè)所述數(shù)據(jù)元組映射到由哈希值空間組織成的虛擬圓環(huán)中的過(guò)程,包括:
[0013]利用預(yù)先設(shè)置的一致性哈希算法及所述數(shù)據(jù)元組中的待存儲(chǔ)信息中的客戶(hù)信息,分別計(jì)算每個(gè)所述數(shù)據(jù)元組的數(shù)據(jù)元組哈希值;
[0014]根據(jù)所述數(shù)據(jù)元組的數(shù)據(jù)元組哈希值,分別將每個(gè)所述數(shù)據(jù)元組映射到由哈希值空間組織成的虛擬圓環(huán)中。
[0015]優(yōu)選的,所述根據(jù)所述數(shù)據(jù)元組在所述虛擬圓環(huán)中的位置,以及預(yù)先定義的與所述物理節(jié)點(diǎn)對(duì)應(yīng)的虛擬節(jié)點(diǎn)通過(guò)所述一致性哈希算法映射在所述虛擬圓環(huán)中的位置,確定分別與每個(gè)所述物理節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)元組,以將所述數(shù)據(jù)元組中的待存儲(chǔ)信息存儲(chǔ)到與所述數(shù)據(jù)元組對(duì)應(yīng)的物理節(jié)點(diǎn)中的過(guò)程,包括:
[0016]利用所述數(shù)據(jù)元組在所述虛擬圓環(huán)中的位置,以及虛擬節(jié)點(diǎn)通過(guò)所述一致性哈希算法映射在所述虛擬圓環(huán)中的位置,確定分別與每個(gè)所述虛擬節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)元組,所述虛擬節(jié)點(diǎn)為預(yù)先定義的與所述物理節(jié)點(diǎn)對(duì)應(yīng)的節(jié)點(diǎn);
[0017]根據(jù)物理節(jié)點(diǎn)與虛擬節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系,確定分別與每個(gè)所述物理節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)元組,以將所述數(shù)據(jù)元組中的待存儲(chǔ)信息存儲(chǔ)到與所述數(shù)據(jù)元組對(duì)應(yīng)的物理節(jié)點(diǎn)中。
[0018]優(yōu)選的,所述利用所述數(shù)據(jù)元組在所述虛擬圓環(huán)中的位置,以及虛擬節(jié)點(diǎn)通過(guò)所述一致性哈希算法映射在所述虛擬圓環(huán)中的位置,確定分別與每個(gè)所述虛擬節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)元組的過(guò)程,包括:
[0019]根據(jù)預(yù)先設(shè)置的中間節(jié)點(diǎn)在所述虛擬圓環(huán)中的位置,以及所述數(shù)據(jù)元組在所述虛擬圓環(huán)中的位置,確定分別與每個(gè)所述中間節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)元組;
[0020]利用所述中間節(jié)點(diǎn)在所述虛擬圓環(huán)中的位置,以及虛擬節(jié)點(diǎn)通過(guò)所述一致性哈希算法映射在所述虛擬圓環(huán)中的位置,確定分別與每個(gè)所述虛擬節(jié)點(diǎn)對(duì)應(yīng)的中間節(jié)點(diǎn);
[0021 ]針對(duì)每個(gè)所述虛擬節(jié)點(diǎn),將與所述虛擬節(jié)點(diǎn)對(duì)應(yīng)的中間節(jié)點(diǎn)對(duì)應(yīng)的各個(gè)數(shù)據(jù)元組,確定為與所述虛擬節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)元組。
[0022]優(yōu)選的,將虛擬節(jié)點(diǎn)通過(guò)所述一致性哈希算法映射在所述虛擬圓環(huán)中的過(guò)程,包括:
[0023]利用所述一致性哈希算法以及指示所述虛擬節(jié)點(diǎn)的唯一的虛擬節(jié)點(diǎn)信息,計(jì)算所述虛擬節(jié)點(diǎn)的虛擬節(jié)點(diǎn)哈希值;
[0024]根據(jù)所述虛擬節(jié)點(diǎn)的虛擬節(jié)點(diǎn)哈希值,將所述虛擬節(jié)點(diǎn)映射到所述虛擬圓環(huán)中。
[0025]一種數(shù)據(jù)存儲(chǔ)裝置,應(yīng)用于至少一個(gè)物理節(jié)點(diǎn),包括:
[0026]劃分單元,用于將待存儲(chǔ)數(shù)據(jù)劃分為多個(gè)數(shù)據(jù)元組,所述數(shù)據(jù)元組包括與所述待存儲(chǔ)數(shù)據(jù)中唯一的客戶(hù)信息指示的客戶(hù)相關(guān)聯(lián)的待存儲(chǔ)信息;
[0027]第一映射單元,用于利用預(yù)先設(shè)置的一致性哈希算法,分別將每個(gè)所述數(shù)據(jù)元組映射到由哈希值空間組織成的虛擬圓環(huán)中;
[0028]確定單元,用于根據(jù)所述數(shù)據(jù)元組在所述虛擬圓環(huán)中的位置,以及預(yù)先定義的與所述物理節(jié)點(diǎn)對(duì)應(yīng)的虛擬節(jié)點(diǎn)通過(guò)所述一致性哈希算法映射在所述虛擬圓環(huán)中的位置,確定分別與每個(gè)所述物理節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)元組,以將所述數(shù)據(jù)元組中的待存儲(chǔ)信息存儲(chǔ)到與所述數(shù)據(jù)元組對(duì)應(yīng)的物理節(jié)點(diǎn)中。
[0029]優(yōu)選的,當(dāng)所述待存儲(chǔ)信息包括與所述待存儲(chǔ)信息相關(guān)聯(lián)的客戶(hù)對(duì)應(yīng)的客戶(hù)信息時(shí),所述第一映射單元包括:
[0030]數(shù)據(jù)元組哈希值計(jì)算單元,用于利用預(yù)先設(shè)置的一致性哈希算法及所述數(shù)據(jù)元組中的待存儲(chǔ)信息中的客戶(hù)信息,分別計(jì)算每個(gè)所述數(shù)據(jù)元組的數(shù)據(jù)元組哈希值;
[0031]第一映射子單元,用于根據(jù)所述數(shù)據(jù)元組的數(shù)據(jù)元組哈希值,分別將每個(gè)所述數(shù)據(jù)元組映射到由哈希值空間組織成的虛擬圓環(huán)中。
[0032]優(yōu)選的,所述確定單元,包括:
[0033]第一確定單元,用于利用所述數(shù)據(jù)元組在所述虛擬圓環(huán)中的位置,以及虛擬節(jié)點(diǎn)通過(guò)所述一致性哈希算法映射在所述虛擬圓環(huán)中的位置,確定分別與每個(gè)所述虛擬節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)元組,所述虛擬節(jié)點(diǎn)為預(yù)先定義的與所述物理節(jié)點(diǎn)對(duì)應(yīng)的節(jié)點(diǎn);
[0034]第二確定單元,用于根據(jù)物理節(jié)點(diǎn)與虛擬節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系,確定分別與每個(gè)所述物理節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)元組,以將所述數(shù)據(jù)元組中的待存儲(chǔ)信息存儲(chǔ)到與所述數(shù)據(jù)元組對(duì)應(yīng)的物理節(jié)點(diǎn)中。
[0035]優(yōu)選的,所述第一確定單元,包括:
[0036]中間節(jié)點(diǎn)確定單元,用于根據(jù)預(yù)先設(shè)置的中間節(jié)點(diǎn)在所述虛擬圓環(huán)中的位置,以及所述數(shù)據(jù)元組在所述虛擬圓環(huán)中的位置,確定分別與每個(gè)所述中間節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)元組;
[0037]第一虛擬節(jié)點(diǎn)確定單元,用于利用所述中間節(jié)點(diǎn)在所述虛擬圓環(huán)中的位置,以及虛擬節(jié)點(diǎn)通過(guò)所述一致性哈希算法映射在所述虛擬圓環(huán)中的位置,確定分別與每個(gè)所述虛擬節(jié)點(diǎn)對(duì)應(yīng)的中間節(jié)點(diǎn);
[0038]第二虛擬節(jié)點(diǎn)確定單元,用于針對(duì)每個(gè)所述虛擬節(jié)點(diǎn),將與所述虛擬節(jié)點(diǎn)對(duì)應(yīng)的中間節(jié)點(diǎn)對(duì)應(yīng)的各個(gè)數(shù)據(jù)元組,確定為與所述虛擬節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)元組。
[0039]優(yōu)選的,還包括第二映射單元,所述第二映射單元,包括:
[0040]虛擬節(jié)點(diǎn)哈希值計(jì)算單元,用于利用所述一致性哈希算法以及指示所述虛擬節(jié)點(diǎn)的唯一的虛擬節(jié)點(diǎn)信息,計(jì)算所述虛擬節(jié)點(diǎn)的虛擬節(jié)點(diǎn)哈希值;
[0041]第二映射子單元,用于根據(jù)所述虛擬節(jié)點(diǎn)的虛擬節(jié)點(diǎn)哈希值,將所述虛擬節(jié)點(diǎn)映射到所述虛擬圓環(huán)中。
[0042]本申請(qǐng)?zhí)峁┮环N數(shù)據(jù)存儲(chǔ)方法及裝置,通過(guò)將待存儲(chǔ)數(shù)據(jù)劃分為多個(gè)數(shù)據(jù)元組,并利用一致性哈希算法將各個(gè)數(shù)據(jù)元組映射到由哈希值空間組織成的虛擬圓環(huán)中,進(jìn)而利用數(shù)據(jù)元組及預(yù)先定義的與物理節(jié)點(diǎn)對(duì)應(yīng)的虛擬節(jié)點(diǎn)在虛擬圓環(huán)中的位置,確定分別與每個(gè)物理節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)元組,以將數(shù)據(jù)元組中的待存儲(chǔ)信息存儲(chǔ)到與該數(shù)據(jù)元組對(duì)應(yīng)的物理節(jié)點(diǎn)中的方式實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ),不僅能夠在數(shù)據(jù)存儲(chǔ)的基礎(chǔ)上通過(guò)移動(dòng)虛擬節(jié)點(diǎn)的方式有效實(shí)現(xiàn)數(shù)據(jù)迀移,而且避免了通過(guò)擴(kuò)容實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)時(shí)導(dǎo)致的數(shù)據(jù)存儲(chǔ)成本增加的問(wèn)題。
【附圖說(shuō)明】
[0043]為了更清楚地說(shuō)明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技