檢測數(shù)據(jù)副本之間的一致性的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲領(lǐng)域,更具體地,涉及一種檢測基于鍵-值存儲的數(shù)據(jù)副本之間的一致性的方法和裝置。
【背景技術(shù)】
[0002]基于鍵-值(Key-Value)的數(shù)據(jù)存儲機(jī)制被廣泛應(yīng)用于數(shù)據(jù)存儲領(lǐng)域。在這種存儲機(jī)制中,數(shù)據(jù)以鍵值對(key-value pairs)方式存儲。鍵值對可認(rèn)為是一種映射,即鍵(key)是與每條數(shù)據(jù)唯一對應(yīng)的唯一關(guān)鍵字,值(value)是該數(shù)據(jù)實(shí)際存儲的內(nèi)容?;贙ey-Value的數(shù)據(jù)存儲機(jī)制典型采用散列函數(shù)(HASH函數(shù),也稱為哈希函數(shù))來實(shí)現(xiàn)“鍵”至IJ “值”的映射。查詢時(shí),基于“鍵”經(jīng)散列函數(shù)變換后得到的散列值來定位數(shù)據(jù),以實(shí)現(xiàn)快速查詢。通常,每個(gè)要存儲的數(shù)據(jù)塊包含多個(gè)鍵值對。
[0003]此外,為了通過數(shù)據(jù)冗余來提高數(shù)據(jù)可靠性,同一數(shù)據(jù)塊又可被復(fù)制為多個(gè)副本(replica)來進(jìn)行存儲。在這種情況下,保證同一數(shù)據(jù)塊的副本之間的一致性十分重要,而高效準(zhǔn)確地檢測副本之間是否一致通常是保證一致性的基礎(chǔ)。檢測副本之間是否一致的過程的速度、準(zhǔn)確性、是否需要鎖定或中斷系統(tǒng)操作等會顯著影響整個(gè)存儲系統(tǒng)的性能。
[0004]在現(xiàn)有技術(shù)中,提出了通過對各數(shù)據(jù)副本中的數(shù)據(jù)進(jìn)行逐一比對,來檢測數(shù)據(jù)副本之間的一致性,這種方法具有較高的準(zhǔn)確性,但由于其需要從硬盤中讀取數(shù)據(jù)并對數(shù)據(jù)進(jìn)行逐一比對,因此檢測速度較慢,導(dǎo)致在比對過程中可能需要鎖定或中斷系統(tǒng)操作。
[0005]在現(xiàn)有技術(shù)中,還提出了通過比較數(shù)據(jù)副本的版本信息等取代數(shù)據(jù)的逐一比對,來判斷數(shù)據(jù)副本之間的一致性,即如果數(shù)據(jù)副本的版本信息一致,則認(rèn)為數(shù)據(jù)副本一致。然而版本信息一致但數(shù)據(jù)副本的內(nèi)容不一致的可能性仍然較大,因此這種方法的準(zhǔn)確性相對較低。
【發(fā)明內(nèi)容】
[0006]本公開要解決的問題之一是如何在不影響存儲系統(tǒng)正常操作的情況下,高效、準(zhǔn)確地在線檢測副本之間的一致性。
[0007]根據(jù)本發(fā)明的一方面,提出了一種檢測基于鍵-值存儲的數(shù)據(jù)副本之間的一致性的方法,該方法包括:分別獲取第一數(shù)據(jù)副本和第二數(shù)據(jù)副本的特征信息,所述特征信息與相應(yīng)的數(shù)據(jù)副本的鍵相關(guān)聯(lián),并用于表征相應(yīng)的數(shù)據(jù)副本;基于判斷次數(shù)的預(yù)定閾值,判斷第一數(shù)據(jù)副本的特征信息與第二數(shù)據(jù)副本的特征信息是否相同,響應(yīng)于在判斷次數(shù)未超過所述預(yù)定閾值的情況下出現(xiàn)特征信息相同的判斷結(jié)果,確定檢測到第一數(shù)據(jù)副本和第二數(shù)據(jù)副本一致。
[0008]根據(jù)本發(fā)明的另一方面,提出了一種檢測基于鍵-值存儲的數(shù)據(jù)副本之間的一致性的裝置,該裝置包括:第一部件,被配置為分別獲取第一數(shù)據(jù)副本和第二數(shù)據(jù)副本的特征信息,所述特征信息與相應(yīng)的數(shù)據(jù)副本的鍵相關(guān)聯(lián),并用于表征相應(yīng)的數(shù)據(jù)副本;第二部件,被配置為基于判斷次數(shù)的預(yù)定閾值,判斷第一數(shù)據(jù)副本的特征信息與第二數(shù)據(jù)副本的特征信息是否相同,響應(yīng)于在判斷次數(shù)未超過所述預(yù)定閾值的情況下出現(xiàn)特征信息相同的判斷結(jié)果,確定檢測到第一數(shù)據(jù)副本和第二數(shù)據(jù)副本一致。
[0009]本發(fā)明的各方面能夠在不影響存儲系統(tǒng)正常操作的情況下,高效、準(zhǔn)確地在線檢測副本之間的一致性。
【附圖說明】
[0010]通過結(jié)合附圖對本公開示例性實(shí)施方式進(jìn)行更詳細(xì)的描述,本公開的上述以及其它目的、特征和優(yōu)勢將變得更加明顯,其中,在本公開示例性實(shí)施方式中,相同的參考標(biāo)號通常代表相同部件。
[0011]圖1示出了適于用來實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性計(jì)算機(jī)系統(tǒng)/服務(wù)器12的框圖。
[0012]圖2示出了根據(jù)本發(fā)明的第一實(shí)施例的檢測基于鍵-值存儲的數(shù)據(jù)副本之間的一致性的方法的流程圖。
[0013]圖3示出了根據(jù)本發(fā)明的第一實(shí)施例的檢測基于鍵-值存儲的數(shù)據(jù)副本之間的一致性的裝置的框圖。
[0014]圖4示出了根據(jù)本發(fā)明的第一實(shí)施例的一個(gè)示例的檢測基于鍵-值存儲的數(shù)據(jù)副本之間的一致性的方法的流程圖。
[0015]圖5示出了根據(jù)本發(fā)明的第二實(shí)施例的檢測基于鍵-值存儲的數(shù)據(jù)副本之間的一致性的方法的流程圖。
[0016]圖6示出了根據(jù)本發(fā)明的第二實(shí)施例的檢測基于鍵-值存儲的數(shù)據(jù)副本之間的一致性的裝置的框圖。
【具體實(shí)施方式】
[0017]下面將參照附圖更詳細(xì)地描述本公開的優(yōu)選實(shí)施方式。雖然附圖中顯示了本公開的優(yōu)選實(shí)施方式,然而應(yīng)該理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施方式所限制。相反,提供這些實(shí)施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的范圍完整地傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0018]圖1示出了適于用來實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性計(jì)算機(jī)系統(tǒng)/服務(wù)器12的框圖。圖1顯示的計(jì)算機(jī)系統(tǒng)/服務(wù)器12僅僅是一個(gè)示例,不應(yīng)對本發(fā)明實(shí)施例的功能和使用范圍帶來任何限制。
[0019]如圖1所示,計(jì)算機(jī)系統(tǒng)/服務(wù)器12以通用計(jì)算設(shè)備的形式表現(xiàn)。計(jì)算機(jī)系統(tǒng)/服務(wù)器12的組件可以包括但不限于:一個(gè)或者多個(gè)處理器或者處理單元16,系統(tǒng)存儲器28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲器28和處理單元16)的總線18。
[0020]總線18表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲器總線或者存儲器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉例來說,這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MAC)總線,增強(qiáng)型ISA總線、視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)局域總線以及外圍組件互連(PCI)總線。
[0021]計(jì)算機(jī)系統(tǒng)/服務(wù)器12典型地包括多種計(jì)算機(jī)系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是任何能夠被計(jì)算機(jī)系統(tǒng)/服務(wù)器12訪問的可用介質(zhì),包括易失性和非易失性介質(zhì),可移動的和不可移動的介質(zhì)。
[0022]系統(tǒng)存儲器28可以包括易失性存儲器形式的計(jì)算機(jī)系統(tǒng)可讀介質(zhì),例如隨機(jī)存取存儲器(RAM) 30和/或高速緩存存儲器32。計(jì)算機(jī)系統(tǒng)/服務(wù)器12可以進(jìn)一步包括其它可移動/不可移動的、易失性/非易失性計(jì)算機(jī)系統(tǒng)存儲介質(zhì)。僅作為舉例,存儲系統(tǒng)34可以用于讀寫不可移動的、非易失性磁介質(zhì)(圖1未顯示,通常稱為“硬盤驅(qū)動器”)。盡管圖1中未示出,可以提供用于對可移動非易失性磁盤(例如“軟盤”)讀寫的磁盤驅(qū)動器,以及對可移動非易失性光盤(例如⑶-ROM,DVD-ROM或者其它光介質(zhì))讀寫的光盤驅(qū)動器。在這些情況下,每個(gè)驅(qū)動器可以通過一個(gè)或者多個(gè)數(shù)據(jù)介質(zhì)接口與總線18相連。存儲器28可以包括至少一個(gè)程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個(gè))程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實(shí)施例的功能。
[0023]具有一組(至少一個(gè))程序模塊42的程序/實(shí)用工具40,可以存儲在例如存儲器28中,這樣的程序模塊42包括——但不限于——操作系統(tǒng)、一個(gè)或者多個(gè)應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個(gè)或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實(shí)現(xiàn)。程序模塊42通常執(zhí)行本發(fā)明所描述的實(shí)施例中的功能和/或方法。
[0024]計(jì)算機(jī)系統(tǒng)/服務(wù)器12也可以與一個(gè)或多個(gè)外部設(shè)備14 (例如鍵盤、指向設(shè)備、顯示器24等)通信,還可與一個(gè)或者多個(gè)使得用戶能與該計(jì)算機(jī)系統(tǒng)/服務(wù)器12交互的設(shè)備通信,和/或與使得該計(jì)算機(jī)系統(tǒng)/服務(wù)器12能與一個(gè)或多個(gè)其它計(jì)算設(shè)備進(jìn)行通信的任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(I/O)接口 22進(jìn)行。并且,計(jì)算機(jī)系統(tǒng)/服務(wù)器