本發(fā)明涉及分布式存儲
技術(shù)領(lǐng)域:
,更具體而言,涉及一種數(shù)據(jù)更新方法、裝置及相關(guān)系統(tǒng)。
背景技術(shù):
:隨著網(wǎng)絡滲透社會的各行各業(yè),網(wǎng)絡后端需要存儲的數(shù)據(jù)量越來越大,通常每天都會產(chǎn)生大量需要存儲的數(shù)據(jù)。傳統(tǒng)的網(wǎng)絡存儲為將數(shù)據(jù)集中存儲在一臺服務器中,不僅造成存儲負荷,而且存在安全隱患。為了滿足大規(guī)模數(shù)據(jù)存儲的需求,目前普遍采用的存儲方式為分布式存儲。分布式存儲是指,將數(shù)據(jù)存儲為多個副本,每個數(shù)據(jù)副本對應存儲在一臺副本服務器中,通過多臺副本服務器分擔存儲負荷,同時能夠提高存儲的可靠性。由于數(shù)據(jù)副本存儲在多臺副本服務器中,客戶端維護著一個副本列表,該副本列表中記錄了數(shù)據(jù)的每個副本信息,及每條副本信息對應的副本服務器地址,當數(shù)據(jù)更新時,客戶端需要向副本列表中存儲的所有副本服務器地址發(fā)送更新請求,將所有數(shù)據(jù)副本同時進行更新,其中,每臺副本服務器中的數(shù)據(jù)副本更新完成后,該副本服務器向客戶端發(fā)送包含有數(shù)據(jù)副本版本號的響應信息。而在讀/寫數(shù)據(jù)時,其中任意一臺或者幾臺副本服務器發(fā)生故障、網(wǎng)絡故障或者磁盤故障等造成I/O性能抖動,均會造成部分副本服務器中的數(shù)據(jù)副本無法成功更新,從而造成數(shù)據(jù)無法更新成功。為了解決該問題,現(xiàn)有的數(shù)據(jù)更新方法為,客戶端將數(shù)據(jù)更新請求發(fā)送到各個副本服務器后開始計時,如果預設(shè)更新時間內(nèi),客戶端接收到響應信息的數(shù)量X大于或者等于預設(shè)閾值M時,視為數(shù)據(jù)更新成功,將X個更新成功的副本作為有效副本。其中,預設(shè)閾值M小于數(shù)據(jù)副本所存儲的副本服務器總數(shù)量N,M、N和X為自然數(shù)。這樣,系統(tǒng)就能夠容忍(N-M)臺副本服務器的性能抖動。由于客戶端通過內(nèi)存存儲數(shù)據(jù)的副本列表,如果客戶端死機,其所存儲的數(shù)據(jù)將全部丟失,導致客戶端無法確定數(shù)據(jù)的當前版本號,從而無法繼續(xù)更新數(shù)據(jù)。而再次進行數(shù)據(jù)更新時,客戶端只需要向數(shù)據(jù)副本為當前版本號的副本服務器發(fā)送更新請求,因此,需要通過當前版本號將數(shù)據(jù)副本未更新成功的副本服務器排除,當客戶端發(fā)生死機時, 需要將數(shù)據(jù)的當前版本號進行恢復。現(xiàn)有的處理方式為,當X小于N時,將X個有效副本對應的當前版本號存儲在中心服務器中,當客戶端死機后,從中心服務器中將當前版本號讀出,從而通過當前版本號確定出有效副本及其對應的副本服務器,將未更新成功的數(shù)據(jù)副本對應的服務器排除。鑒于I/O性能抖動對系統(tǒng)的影響較大,為了保證系統(tǒng)的平穩(wěn)性,常用的做法是通過將更新時間設(shè)置的較短來盡量削弱I/O性能抖動,這樣一方面能夠降低產(chǎn)生I/O性能抖動的概率,另一方面,能夠在產(chǎn)生I/O性能抖動之前完成數(shù)據(jù)更新。然而,更新時間越短,每次數(shù)據(jù)更新時,產(chǎn)生未更新完成數(shù)據(jù)副本的概率就越大,進而需要更加頻繁的向中心服務器寫入數(shù)據(jù),從而造成中心服務器的存儲壓力和性能瓶頸,降低了系統(tǒng)可用性。技術(shù)實現(xiàn)要素:有鑒于此,本發(fā)明實施例提供一種數(shù)據(jù)更新方法、裝置及相關(guān)系統(tǒng),在減小I/O性能抖動的基礎(chǔ)上,能夠降低向中心服務器寫入數(shù)據(jù)的頻率,從而能夠減小中心服務器的壓力,提高系統(tǒng)可用性。第一方面,本發(fā)明實施例提供了一種數(shù)據(jù)更新方法,包括:在向副本列表中所存儲的副本服務器發(fā)送更新請求之后,接收每臺所述副本服務器中數(shù)據(jù)副本更新完成后的響應信息;當預設(shè)更新時間內(nèi)所接收的響應信息數(shù)量小于所述副本服務器的總數(shù)量時,將未發(fā)送響應信息的副本服務器對應的副本信息修改為繼續(xù)更新狀態(tài);當預設(shè)繼續(xù)更新時間內(nèi)仍未接收到所述繼續(xù)更新的副本服務器發(fā)送的響應信息時,將所述副本信息從所述副本列表中刪除;更新所述副本列表的列表屬性值,并將更新后的所述列表屬性值發(fā)送并存儲在中心服務器中。在第一方面的第一種可能的實現(xiàn)方式中,在接收每臺所述副本服務器中數(shù)據(jù)副本更新完成后的響應信息之前,還包括:生成數(shù)據(jù)更新請求和屬性更新請求;其中,所述屬性更新請求為更新版本號的請求信息;分別向所述副本列表中存儲數(shù)據(jù)副本的數(shù)據(jù)副本服務器發(fā)送所述數(shù)據(jù)更新請求;分別向所述副本列表中存儲屬性信息的屬性副本服務器發(fā)送所述屬性更新請求。結(jié)合上述第一方面,在第二種可能的實現(xiàn)方式中,當預設(shè)更新時間內(nèi)所接收的響應信息數(shù)量小于所述副本服務器的總數(shù)量時,還包括:根據(jù)所述響應信息對應的副本的版本號生成屬性更新請求;將所述屬性更新請求分別發(fā)送到屬性副本服務器中。結(jié)合上述第一方面,在第三種可能的實現(xiàn)方式中,在更新所述副本列表的列表屬性值之后,在將更新后的所述列表屬性值發(fā)送并存儲在中心服務器中之前,還包括:將更新后的所述列表屬性值分別發(fā)送并存儲到所述副本列表所存儲的副本服務器中。結(jié)合上述第一方面,在第四種可能的實現(xiàn)方式中,還包括:從所述中心服務器中獲取歷史列表屬性值和歷史副本服務器地址,其中,所述歷史副本服務器地址為按照預設(shè)周期所發(fā)送的副本列表中存儲的副本服務器地址;分別向所述歷史副本服務器地址對應的副本服務器發(fā)送查詢信息;接收所述副本服務器響應所述查詢信息所發(fā)送的預存儲列表屬性值;當所述預存儲列表屬性值大于或者等于所述歷史列表屬性值時,將所述副本服務器對應的地址存儲在所述副本列表中。結(jié)合上述第一方面,在第五種可能的實現(xiàn)方式中,在將所述副本服務器對應的地址存儲在所述副本列表中之后,還包括:獲取每條所述副本信息中的版本號;將所述版本號最高的副本信息對應的數(shù)據(jù)副本確定為有效副本;將所述版本號小于所述最高版本號的副本信息對應的副本信息從所述副本列表中刪除;更新所述副本列表的列表屬性值得到新列表屬性值;將所述新列表屬性值發(fā)送并存儲在所述中心服務器中。第二方面,本發(fā)明實施例還提供了一種數(shù)據(jù)更新裝置,包括:接收模塊,用于在向副本列表中所存儲的副本服務器發(fā)送更新請求之后,接收每臺所述副本服務器中數(shù)據(jù)副本更新完成后的響應信息;狀態(tài)修改模塊,用于當所述接收模塊在預設(shè)更新時間內(nèi)所接收的響應信息數(shù)量小于所述副本服務器的總數(shù)量時,將未發(fā)送響應信息的副本服務器對應的副本信息修改為繼續(xù)更新狀態(tài);刪除模塊,用于當所述接收模塊在預設(shè)繼續(xù)更新時間內(nèi)仍未接收到所述繼續(xù)更新的副本服務器發(fā)送的響應信息時,將所述副本信息從所述副本列表中刪除;更新模塊,用于所述刪除模塊將所述副本信息從所述副本列表中刪除后,更新所述副本列表的列表屬性值;發(fā)送模塊,用于將所述更新模塊所更新的列表屬性值發(fā)送并存儲在中心服務器中。在第二方面的第一種可能的實現(xiàn)方式中,還包括:生成模塊,其中,所述生成模塊,用于生成數(shù)據(jù)更新請求和屬性更新請求;其中,所述屬性更新請求為更新版本號的請求信息;所述發(fā)送模塊,還用于分別向所述副本列表中存儲數(shù)據(jù)副本的數(shù)據(jù)副本服務器發(fā)送所述數(shù)據(jù)更新請求;分別向所述副本列表中存儲屬性信息的屬性副本服務器發(fā)送所述屬性更新請求。結(jié)合上述第二方面,在第二種可能的實現(xiàn)方式中,所述生成模塊,還用于根據(jù)所述響應信息對應的副本的版本號生成屬性更新請求。結(jié)合上述第二方面,在第三種可能的實現(xiàn)方式中,所述發(fā)送模塊,還用于將更新后 的所述列表屬性值分別發(fā)送并存儲到所述副本列表所存儲的副本服務器中。結(jié)合上述第二方面,在第四種可能的實現(xiàn)方式中,還包括:獲取模塊和存儲模塊,其中,所述獲取模塊,用于從所述中心服務器中獲取歷史列表屬性值和歷史副本服務器地址,其中,所述歷史副本服務器地址為按照預設(shè)周期所發(fā)送的副本列表中存儲的副本服務器地址;所述發(fā)送模塊,還用于分別向所述歷史副本服務器地址對應的副本服務器發(fā)送查詢信息;所述接收模塊,還用于接收所述副本服務器響應所述查詢信息所發(fā)送的預存儲列表屬性值;所述存儲模塊,用于當所述預存儲列表屬性值大于或者等于所述歷史列表屬性值時,將所述副本服務器對應的地址存儲在所述副本列表中。結(jié)合上述第二方面,在第五種可能的實現(xiàn)方式中,還包括確定模塊,其中,所述獲取模塊,還用于獲取每條所述副本信息中的版本號;所述確定模塊,用于將所述版本號最高的副本信息對應的數(shù)據(jù)副本確定為有效副本;所述刪除模塊,還用于將所述版本號小于所述最高版本號的副本信息對應的副本信息從所述副本列表中刪除;所述更新模塊,還用于更新所述副本列表的列表屬性值得到新列表屬性值;所述發(fā)送模塊,還用于更新所述副本列表的列表屬性值得到新列表屬性值。第三方面,本發(fā)明實施例還提供了一種數(shù)據(jù)更新系統(tǒng),包括客戶端、副本服務器和中心服務器,其中,所述客戶端如第二方面所述;所述副本服務器,用于接收所述客戶端發(fā)送的列表屬性值;所述中心服務器,用于接收所述客戶端發(fā)送的列表屬性值。在第三方面的第一種可能的實現(xiàn)方式中,所述中心服務器,還用于向所述副本服務器發(fā)送獲取副本信息請求,并接收所述副本服務器發(fā)送的副本信息,根據(jù)所述副本信息確定地址列表;將所存儲的列表屬性值及地址列表發(fā)送到所述客戶端;所述副本服務器,還用于接收所述中心服務器發(fā)送的獲取副本信息請求,并將所述副本信息發(fā)送到所述中心服務器。由以上技術(shù)方案可知,為了解決系統(tǒng)可用性低的問題,本發(fā)明實施例所提供的數(shù)據(jù)更新方法、裝置及相關(guān)系統(tǒng),在客戶端分別向副本列表中所存儲的副本服務器發(fā)送更新請求后,接收每臺副本服務器中數(shù)據(jù)副本更新完成后的響應信息,當預設(shè)更新時間內(nèi)接收的響應信息數(shù)量小于副本服務器總數(shù)量時,說明存在未更新成功的副本服務器,此時,本發(fā)明實施例中,并不將該副本服務器排除,而是將未發(fā)送響應信息的副本服務器對應的副本信息修改為繼續(xù)更新狀態(tài),保持該副本服務器繼續(xù)更新。如果在預設(shè)繼續(xù)更新時間內(nèi),依然未接收到繼續(xù)更新的副本服務器發(fā)送的響應信息,那么將該副本服務器對應的副本信息從副本列表中 刪除,從而將該數(shù)據(jù)副本從更新成功的數(shù)據(jù)副本中排除。由于刪除副本信息改變了副本列表的列表屬性,本發(fā)明實施例更新副本列表的列表屬性值,并將更新后的列表屬性值發(fā)送并存儲在中心服務器中。與現(xiàn)有技術(shù)相比,當更新時間內(nèi)存在未更新成功的副本服務器時,無需將該副本服務器排除,因此,無需將當前版本號存儲在中心服務器中。而當排除副本服務器時,必然會造成副本列表的變化,因此,本發(fā)明實施例僅在副本列表發(fā)生變化時,將列表屬性值存儲到中心服務器,從而能夠在減小I/O性能抖動的基礎(chǔ)上,降低向中心服務器寫數(shù)據(jù)的頻率,進而能夠減小中心服務器的壓力,提高系統(tǒng)可用性。附圖說明為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。通過附圖所示,本發(fā)明的上述及其它目的、特征和優(yōu)勢將更加清晰。在全部附圖中相同的附圖標記指示相同的部分。并未刻意按實際尺寸等比例縮放繪制附圖,重點在于示出本發(fā)明的主旨。圖1為本發(fā)明實施例提供的數(shù)據(jù)更新方法的方法流程圖;圖2為本發(fā)明實施例提供的數(shù)據(jù)恢復的信息交互示意圖;圖3為本發(fā)明實施例提供的另一種數(shù)據(jù)更新方法的方法流程圖;圖4為本發(fā)明實施例提供的數(shù)據(jù)更新裝置的結(jié)構(gòu)示意圖;圖5為本發(fā)明實施例提供的數(shù)據(jù)更新系統(tǒng)的結(jié)構(gòu)示意圖。具體實施方式由于客戶端維護著數(shù)據(jù)的副本列表,副本列表中記錄了每個副本對應的副本信息,當客戶端需要排除未更新成功的副本服務器時,可以通過刪除副本服務器對應的副本信息的方式進行。因此,為了解決現(xiàn)有技術(shù)存在的技術(shù)問題,本發(fā)明實施例的技術(shù)方案通過利用該特性實現(xiàn)。下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整的描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;? 于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍?,F(xiàn)有技術(shù)中,更新時間對系統(tǒng)的I/O性能和向中心服務器存儲數(shù)據(jù)的頻率均能夠產(chǎn)生直接影響,然而,更新時間越長,雖然向中心服務器存儲數(shù)據(jù)的頻率會降低,但是I/O性能抖動對數(shù)據(jù)更新的影響會增大;而更新時間越短,雖然能夠盡量削弱I/O性能的影響,但是可能會造成頻繁的存儲操作,造成中心服務器的存儲壓力和性能瓶頸。即,I/O性能和中心服務器的存儲壓力無法達到平衡,從而會降低系統(tǒng)的可用性。因此,請參見圖1,圖1為本發(fā)明實施例提供的數(shù)據(jù)更新方法的方法流程圖。所述方法包括以下步驟:步驟S101,在向副本列表中所存儲的副本服務器發(fā)送更新請求之后,接收每臺所述副本服務器中數(shù)據(jù)副本更新完成后的響應信息。其中,由于分布式存儲將數(shù)據(jù)存儲為多個數(shù)據(jù)副本,每個副本對應存儲在一個副本服務器中,為了便于管理,客戶端通過維護副本列表對數(shù)據(jù)的副本及副本服務器進行管理。其中,副本列表的格式如表1所示,每條副本信息均包括列表標識、副本服務器地址、副本版本號和副本狀態(tài)等信息。當然,表1僅僅是為了對副本列表的格式進行說明所提供的示例,實際存儲時,每個數(shù)據(jù)所對應的副本數(shù)量可以不為3,本發(fā)明實施例此處不再詳述。表1列表標識副本服務器地址副本版本號副本狀態(tài)1地址15.0正常2地址25.0正常3地址35.0繼續(xù)更新需要說明的是,副本列表中的副本狀態(tài)為相應副本服務器地址對應的副本服務器中副本的狀態(tài),因此,可以根據(jù)客戶端發(fā)送的指令信息隨時調(diào)整。例如,本實施例中,當客戶端向地址1對應的副本服務器發(fā)送更新請求之后,副本服務器中存儲的副本需要根 據(jù)更新請求進行更新,客戶端可以將地址1對應的副本狀態(tài)修改為更新中;當更新完成,將副本狀態(tài)更新為正常。當然,當副本服務器中的副本狀態(tài)為其他狀態(tài)時,客戶端也進行對應更改,本發(fā)明對此不再贅述。當數(shù)據(jù)更新時,客戶端生成更新請求,并將更新請求發(fā)送到副本服務器地址對應的副本服務器中。副本服務器接收到更新請求之后,讀取更新請求中的版本號,并與所存儲的數(shù)據(jù)副本的版本號進行對比,當所存儲的數(shù)據(jù)副本的版本號小于所讀取的版本號時,按照更新請求更新所存儲的數(shù)據(jù)副本,即將更新的數(shù)據(jù)寫入副本服務器的磁盤中,更新完成后,向客戶端發(fā)送更新成功的響應信息,以通知客戶端該數(shù)據(jù)副本更新成功。因此,本發(fā)明實施例中,響應信息可以為一個不包含任何數(shù)據(jù)的信號,本發(fā)明對此不做限制。由于副本服務器中的副本已經(jīng)更新,對應的版本號也應當更新,因此,客戶端接收到副本服務器發(fā)送的響應信息之后,讀取響應信息對應的副本服務器地址,根據(jù)副本服務器地址在副本列表中查找對應的副本版本號,將相應的副本版本號修改為當前版本號,并將相應的副本狀態(tài)修改為正常。此外,分布式存儲可以設(shè)置多個客戶端,每個客戶端均與多個副本服務器相對應,但是,不同客戶端所存儲的數(shù)據(jù)不同,而且每個客戶端中數(shù)據(jù)更新的方法和步驟完全相同,本發(fā)明此處不再贅述。然而,分布式存儲中不同客戶端可能使用相同的副本服務器,因此,當其中一個副本服務器同時為另外一個或者幾個客戶端的副本服務器時,為了能夠向發(fā)送更新請求的客戶端發(fā)送響應信息,在接收更新請求的同時,建立與相應客戶端的通信鏈接,副本更新完成后,復用所建立的通信鏈接,從而能夠?qū)㈨憫畔⑼ㄟ^該通信鏈接發(fā)送到相應的客戶端。步驟S102,當預設(shè)更新時間內(nèi)所接收的響應信息數(shù)量小于所述副本服務器的總數(shù)量時,將未發(fā)送響應信息的副本服務器對應的副本信息修改為繼續(xù)更新狀態(tài)。其中,根據(jù)現(xiàn)有技術(shù)可知,為了減小I/O性能抖動,在更新時間內(nèi)接收的響應信息的數(shù)量等于預設(shè)閾值即認為更新成功,而更新時間預先進行設(shè)置。通常,所設(shè)置的更新時間為預設(shè)閾值個副本能夠更新完成的時間,可以根據(jù)歷史經(jīng)驗值進行設(shè)定。因此,通常情況下,預設(shè)更新時間內(nèi)能夠更新完成的副本數(shù)量至少為預設(shè)閾值的數(shù)量,也就是說,本實施例中,預設(shè)更新時間內(nèi)所接收的響應信息數(shù)量小于副本服務器總數(shù)量的情況包括:響應信息的數(shù)量大于或者等于預設(shè)閾值。當然,在極特別的情況下,例如系統(tǒng)網(wǎng)絡卡頓,在更新時間內(nèi)接收的響應信息數(shù)量可能小于預設(shè)閾值,此時,客戶端進入等待狀態(tài),直到 接收的響應信息的數(shù)量等于預設(shè)閾值。本發(fā)明實施例中,當更新時間內(nèi)接收響應信息數(shù)量大于或者等于預設(shè)閾值,小于副本服務器總數(shù)時,將未響應的副本服務器對應的副本狀態(tài)修改為繼續(xù)更新狀態(tài),并開始記錄繼續(xù)更新時間。由于在未更新成功的副本繼續(xù)更新時間內(nèi),本次已經(jīng)更新成功的副本可能需要進行下次數(shù)據(jù)更新,因此,客戶端可以向未發(fā)送響應信息的副本服務器發(fā)送異步寫命令,將該副本服務器轉(zhuǎn)為后臺異步寫,與已經(jīng)更新成功發(fā)副本服務器形成兩個線程,從而避免二者的進程相互影響。本實施例中,當預設(shè)更新時間內(nèi)存在未更新完成的副本時,并不將該副本對應的副本服務器排除,而是更改該副本的狀態(tài),為該副本提供繼續(xù)更新的機會,從而能夠降低向中心服務器寫入數(shù)據(jù)的概率。步驟S103,當預設(shè)繼續(xù)更新時間內(nèi)仍未接收到所述繼續(xù)更新的副本服務器發(fā)送的響應信息時,將所述副本信息從所述副本列表中刪除。其中,根據(jù)上述描述可知,在繼續(xù)更新時間內(nèi),本次已經(jīng)更新成功的副本可能會進行下次或者更多次更新,導致繼續(xù)更新的副本落后當前版本一個甚至多個版本。為了保持版本一致性,減少操作流程,在繼續(xù)更新時間內(nèi),如果再次進行數(shù)據(jù)更新,客戶端依然會將更新請求發(fā)送到該副本服務器,而處于繼續(xù)更新狀態(tài)的副本服務器在繼續(xù)更新時間內(nèi)更新到當前最高版本時視為繼續(xù)更新成功,此時再向客戶端發(fā)送響應信息。例如,本次更新后的版本號為5.0,地址3對應的副本服務器在預設(shè)更新時間內(nèi)未發(fā)送響應信息,將其對應的副本狀態(tài)修改為繼續(xù)更新狀態(tài),在地址3對應存儲的副本的繼續(xù)更新時間內(nèi),版本號為5.0的副本再次更新,更新后的版本號為5.5,此時,地址3對應存儲的副本繼續(xù)更新為版本號為5.5的數(shù)據(jù)時再向客戶端發(fā)送響應信息。如果預設(shè)繼續(xù)更新時間內(nèi),處于繼續(xù)更新狀態(tài)的副本服務器依然未發(fā)送響應信息,則說明繼續(xù)更新狀態(tài)的副本未更新成功,為保持副本列表中副本版本的一致性,本發(fā)明實施例通過將該副本服務器對應的副本信息刪除將該副本服務器排除。例如,地址3對應存儲的副本未能在繼續(xù)更新時間內(nèi)更新為版本號5.5對應的版本,那么客戶端將刪除地址3對應的副本信息,從而將該副本丟棄。需要說明的是,為了便于客戶端進行有效副本恢復,中心服務器中還存儲有與客戶端副本列表對應的副本服務器的地址列表,當客戶端需要進行數(shù)據(jù)恢復時,可以從地址列表中獲取副本服務器的地址,從而獲取對應的副本服務器中的副本版本。由于客戶端 的副本列表經(jīng)常更改,而且中心服務器中存儲有分布式系統(tǒng)所有客戶端對應的地址列表,如果確保中心服務器與客戶端中的副本服務器地址完全一致,任何一個客戶端中的副本列表更改一次,中心服務器均需要更新一次地址列表,那么中心服務器將一直處于數(shù)據(jù)更新的狀態(tài),造成極大的存儲壓力,因此,為了能夠及時更新中心服務器中的地址列表,并降低中心服務器的存儲壓力,中心服務器以一定的時間為周期,定期向所有的副本服務器發(fā)送獲取副本信息命令,副本服務器根據(jù)該命令將本地存儲的所有副本信息發(fā)送到中心服務器,中心服務器可以根據(jù)所接收的信息對所存儲的地址列表進行對應修改。步驟S104,更新所述副本列表的列表屬性值,并將更新后的所述列表屬性值發(fā)送并存儲在中心服務器中。其中,本發(fā)明實施例中,為副本列表設(shè)置有列表屬性值,列表屬性值用于標識副本列表的屬性,副本列表每更改一次,列表屬性值更新一次。由于在數(shù)據(jù)更新過程中,副本列表可能會發(fā)生多次更改,為了明確的表示副本列表的更改,列表屬性值可以設(shè)置為時間戳的方式,或者通過單調(diào)遞增的數(shù)字標識進行標注等,本發(fā)明實施例對此不做限制。副本列表每更改一次,列表屬性值在原來的基礎(chǔ)可以單調(diào)遞增一定量,從而能夠明確的表示出副本列表的更改信息。本實施例中,當客戶端刪除副本列表中的部分副本信息時,造成副本列表中副本順序發(fā)生變化,因此,更新副本列表的列表屬性值。由于副本列表發(fā)生變化,說明原副本列表中的副本版本號不一致,為了便于客戶端死機后進行數(shù)據(jù)恢復,本發(fā)明實施例將更新后的列表屬性值,和更新后副本列表中存儲的副本服務器地址發(fā)送并存儲到中心服務器中。例如,將副本列表中地址3對應存儲的副本信息刪除后,副本列表中存儲的副本信息減少,副本列表發(fā)生變化,假設(shè)副本列表變化前列表屬性值為a10,那么刪除地址3對應的副本信息后,將列表屬性值更新為a11,并將地址1、地址2與a11發(fā)送并保存到中心服務器中。此外,由于將無法完成更新的副本所對應的副本信息從副本列表刪除后,該副本依然在繼續(xù)更新,當該副本更新成功后,其版本號與有效版本的版本號相同,而該副本對應的副本信息已經(jīng)不存儲在副本列表中,而當客戶端進行數(shù)據(jù)恢復時,僅通過版本號進行識別,可能會造成識別錯誤,將已經(jīng)刪除的副本信息重新添加到副本列表中。因此,為了能夠明確存儲在副本列表中的副本信息,當客戶端更新列表屬性值時,首先,將更新后的列表屬性值分別發(fā)送到當前副本列表存儲的副本服務器中,以通過更新后的列表屬性值識別該副本服務器中 的副本是否應當存儲在副本列表中,然后,再將更新后的列表屬性值發(fā)送并存儲到中心服務器中。本實施例的技術(shù)方案,為數(shù)據(jù)恢復提供了多種識別依據(jù),從而能夠在客戶端死機之后,快速、準確的將有效副本對應的副本信息識別出,并恢復到客戶端。通過本實施例可以看出,本發(fā)明實施例所述的數(shù)據(jù)更新方法,當更新時間內(nèi)存在未更新成功的副本服務器時,無需將該副本服務器排除,因此,無需將當前版本號存儲在中心服務器中。而當排除副本服務器時,必然會造成副本列表的變化,因此,本發(fā)明實施例僅在副本列表發(fā)生變化時,將列表屬性值存儲到中心服務器,從而能夠在減小I/O性能抖動的基礎(chǔ)上,降低向中心服務器寫數(shù)據(jù)的頻率,進而能夠減小中心服務器的壓力,提高系統(tǒng)可用性。上述實施例詳細描述了本發(fā)明在數(shù)據(jù)更新時的處理方法,由上述描述可知,為了在客戶端死機之后能夠?qū)⒂行Ц北净謴?,將列表屬性值存儲到中心服務器,而且中心服務器按照預設(shè)周期更新所存儲的副本服務器地址列表。為了使本領(lǐng)域技術(shù)人員更加清楚的了解本發(fā)明的技術(shù)方案,在上述實施例的基礎(chǔ)上,下面將詳細介紹客戶端的數(shù)據(jù)恢復過程。請參見圖2,圖2為本發(fā)明實施例提供的數(shù)據(jù)恢復信息交互示意圖。當客戶端死機重啟后,首先,執(zhí)行步驟01,客戶端向中心服務器發(fā)送獲取信息。其中,該獲取信息中包括客戶端的標識信息。中心服務器接收到該獲取信息后,根據(jù)客戶端標識信息查找與該客戶端對應的歷史列表屬性值和歷史副本服務器地址,并執(zhí)行步驟02,將歷史列表屬性值和歷史副本服務器地址發(fā)送到該客戶端。其中,歷史列表屬性值為客戶端最后一次發(fā)送到中心服務器的列表屬性值,歷史副本服務器地址為客戶端最后一次發(fā)送到中心服務器的地址列表。步驟03,客戶端向歷史副本服務器地址對應的副本服務器發(fā)送查詢信息;步驟04,副本服務器響應查詢信息,將當前列表屬性值和當前副本的版本號發(fā)送到客戶端;步驟05,客戶端分別將當前列表屬性值與歷史列表屬性值進行比對。由上述描述可知,中心服務器中的地址列表按照預設(shè)周期更新,而預設(shè)周期的時長可能大于數(shù)據(jù)更新的時間間隔,當更新列表屬性值的時刻在更新地址列表的周期之內(nèi)時,歷史副本服務器地址中會包含已丟棄的副本對應的副本服務器地址,而已丟棄的副本對應的當前列表屬性值小于歷史列表屬性值,因此,客戶端可以將當前列表屬性值小于歷史列表屬性值的副本服務器排除。例如,歷史列表屬性值為a10,為客戶端刪除地址3對應的副本信息后所更新,而中心服務器中的地址列表還有1分鐘達到下一個更新周期,則歷史副本服務器地址中包含地址3對應的副本服務器地址,而地址3對應的副本服務器的當前列表屬性值為a09,因此,將地址3對應存儲的副本信息排除。此外,當更新列表屬性值之后,客戶端先將該列表屬性值分別發(fā)送到副本列表對應的副本服務器中,然后再將該列表屬性值發(fā)送到中心服務器,如果客戶端在將更新后的列表屬性值發(fā)送到副本服務器端之后死機,則無法將更新后的列表屬性值發(fā)送到中心服務器,那么歷史列表屬性值可能小于部分副本服務器對應的當前列表屬性值。此時,將當前列表屬性值大于歷史列表屬性值的副本服務器列入副本列表。例如,當列表屬性值更新為a11,客戶端將a11發(fā)送到副本服務器后死機,那么當前列表屬性值大于歷史列表屬性值a10的副本服務器屬于副本列表,當前列表屬性值小于或者等于a10的副本服務器為被排除的副本對應的副本服務器。此外,當客戶端將列表屬性值發(fā)送到中心服務器之后,再次或者更多次進行數(shù)據(jù)更新,在最后一次數(shù)據(jù)更新過程中,某一個或者幾個副本服務器正處于繼續(xù)更新時間內(nèi)客戶端死機,而列表屬性值并未更新,但是卻產(chǎn)生了新的需要排除的副本。此時,將當前列表屬性值等于歷史列表屬性值的副本服務器列入副本列表中,獲取副本列表中每條副本信息對應的當前版本號,并將當前版本號最高的副本確定為有效副本,刪除當前版本號低于最高版本號的副本信息,并再次更新列表屬性值得到新列表屬性值,然后執(zhí)行步驟06,將該新列表屬性值發(fā)送并存儲到中心服務器。例如,歷史列表屬性值為a10,將列表屬性值更新為a10時有效副本的版本號為5.5,之后客戶端又進行了兩次數(shù)據(jù)更新,第一次數(shù)據(jù)更新時,對應的版本號為5.7,第二次數(shù)據(jù)更新時,對應的版本號為6.0。在第二次數(shù)據(jù)更新的預設(shè)更新時間后,地址5所存儲的副本處于繼續(xù)更新狀態(tài),此時,客戶端掉電,而地址5對應存儲的副本版本號為5.7。那么,根據(jù)列表屬性值恢復得到的副本列表中包括地址5對應的副本信息。然后,再對比副本列表中所對應的副本版本號,可以得到版本號6.0對應的副本為有效副本,因此,將地址5對應的副本信息刪除,將列表屬性值更新為a11,并發(fā)送到中心服務器。由上述技術(shù)方案可知,本發(fā)明實施例在降低向中心服務器存儲數(shù)據(jù)的頻率的基礎(chǔ)上,依然能夠通過列表屬性值和當前版本號將數(shù)據(jù)精確、快速的恢復到客戶端,從而在不影響系統(tǒng)其它性能的基礎(chǔ)上,能夠很好的降低系統(tǒng)的存儲壓力和性能瓶頸。此外,由上述實施例可知,為了保證數(shù)據(jù)更新的正常進行,對更新的副本數(shù)量設(shè)置有預設(shè)閾值。而數(shù)據(jù)更新過程中,在一段時間內(nèi)可能會需要連續(xù)數(shù)次更新,由于不同副本服務器的I/O性能不同,當數(shù)據(jù)連續(xù)數(shù)次更新時,很可能會出現(xiàn)預設(shè)更新時間內(nèi)無副本更新到最高版本的情況,即沒有有效副本產(chǎn)生。如果此時客戶端死機,則無法通過數(shù)據(jù)恢復確定出當前有效副本,進而無法進行數(shù)據(jù)的后續(xù)更新,因此,現(xiàn)有技術(shù)中,預設(shè)閾值的數(shù)量設(shè)定為大于副本總數(shù)量的一半,例如,副本總數(shù)量為2N+1,那么預設(shè)閾值最小為N+1。然而,這樣的設(shè)定降低了系統(tǒng)能夠容忍的I/O性能抖動,從而降低了系統(tǒng)的可用性,因此,在上述實施例的基礎(chǔ)上,本發(fā)明實施例還提供了數(shù)據(jù)更新方法的第二種實施方式。由于本實施例是對上述實施例的補充,因此,本實施例中與上述實施例相同的部分,可以參見上述實施例的描述,本實施例不再贅述。請參見圖3,圖3為本發(fā)明實施例提供的另一種數(shù)據(jù)更新方法的方法流程圖,所述方法包括下列步驟:步驟S201:生成數(shù)據(jù)更新請求和屬性更新請求。其中,為了增加系統(tǒng)能夠容忍的I/O性能抖動,提高系統(tǒng)的可用性,本實施例中預先設(shè)置數(shù)據(jù)的屬性副本,所述屬性副本中只包含有效副本對應的版本號和副本列表的列表屬性值,每個屬性副本對應存儲在一個屬性副本服務器中。在本發(fā)明實施例中,屬性副本能夠代替數(shù)據(jù)副本參與有效副本的確定,副本列表中存儲有與屬性副本對應的副本信息,其更新方式、存儲方式與數(shù)據(jù)副本相同,本發(fā)明實施例對此不再贅述。需要說明的是,本實施例中,每個數(shù)據(jù)可以對應設(shè)置至少一個屬性副本,本發(fā)明對此不做限制。在本發(fā)明的一個優(yōu)選示例中,假設(shè)數(shù)據(jù)副本總數(shù)為2N+1,預設(shè)閾值為N+1,那么可以設(shè)置N個屬性副本。由于副本列表中的副本信息對應兩類副本,而屬性副本所存儲的是數(shù)據(jù)的版本號和副本列表的列表屬性值,因此,當數(shù)據(jù)更新時,客戶端會對應生成兩類更新請求,一種是數(shù)據(jù)更新請求,包括更新的數(shù)據(jù)信息和版本號;另一種是屬性更新請求,與數(shù)據(jù)更新請求相比,不包括更新的數(shù)據(jù)信息,其他信息與數(shù)據(jù)更新請求相同。本實施例中,通過增設(shè)數(shù)據(jù)的屬性副本,能夠增加系統(tǒng)能夠容忍的I/O性能抖動,將屬性副本作為確定有效副本的副本,能夠增加產(chǎn)生有效副本的概率,從而能夠提高系 統(tǒng)的可用性。步驟S202,分別向所述副本列表中存儲數(shù)據(jù)副本的數(shù)據(jù)副本服務器發(fā)送所述數(shù)據(jù)更新請求;分別向所述副本列表中存儲屬性信息的屬性副本服務器發(fā)送所述屬性更新請求。其中,由上述實施例的描述可知,副本信息包括列表標識和副本服務器地址,本實施例中,可以通過列表標識區(qū)分該副本信息對應的副本的性質(zhì),然后將對應的更新請求發(fā)送到相應的列表標識對應的副本服務器地址。例如,數(shù)據(jù)副本對應的列表標識為“a1,a2”,屬性副本對應的列表標識為“b1,b2”,當客戶端生成兩種更新請求后,將數(shù)據(jù)更新請求分別發(fā)送到列表標識中帶有“a”的副本服務器地址,將屬性更新請求發(fā)送到列表標識中帶有“b”的副本服務器地址。當然,上述僅為本發(fā)明的一個優(yōu)選示例,本發(fā)明實施例中,還可以使用其他方式將數(shù)據(jù)副本和屬性副本對應的副本信息進行標示,本發(fā)明對此不做限制。步驟S203,接收每臺所述副本服務器中數(shù)據(jù)副本更新完成后的響應信息。其中,與數(shù)據(jù)副本更新的方式類似,屬性副本服務器接收屬性更新請求后,讀取屬性更新請求中的當前版本號,并比對所存儲的版本號是否小于當前版本號,如果小于,將所存儲的版本號更新為當前版本號,并向客戶端發(fā)送響應信息。步驟S204,當預設(shè)更新時間內(nèi)所接收的響應信息數(shù)量小于所述副本服務器的總數(shù)量時,將未發(fā)送響應信息的副本服務器對應的副本信息修改為繼續(xù)更新狀態(tài)。其中,由上述描述可知,當客戶端接收到響應信息數(shù)量為預設(shè)閾值時,則認為數(shù)據(jù)更新成功,本實施例中,響應信息包括數(shù)據(jù)副本服務器的響應信息和屬性副本服務器的響應信息。步驟S205,當預設(shè)繼續(xù)更新時間內(nèi)仍未接收到所述繼續(xù)更新的副本服務器發(fā)送的響應信息時,將所述副本信息從所述副本列表中刪除。步驟S206,更新所述副本列表的列表屬性值,并將更新后的所述列表屬性值發(fā)送并存儲在中心服務器中。其中,當客戶端更新列表屬性值后,同樣將更新后的列表屬性值發(fā)送并存儲到副本列表中對應的屬性副本服務器中,本發(fā)明此處不再贅述。需要說明的是,上述描述將數(shù)據(jù)副本更新和屬性副本更新子通過一個線程執(zhí)行,本發(fā)明 實施例的技術(shù)方案不限于此,其中,步驟S201中生成屬性更新請求,和步驟S202中將屬性更新請求發(fā)送的屬性副本服務器,可以在步驟S204之后,與數(shù)據(jù)副本更新通過兩個線程執(zhí)行。具體的,將數(shù)據(jù)更新請求發(fā)送到數(shù)據(jù)副本服務器,并接收數(shù)據(jù)副本服務器發(fā)送的響應信息,當在預設(shè)更新時間內(nèi)接收的響應信息數(shù)量小于數(shù)據(jù)副本服務器總數(shù)時,生成屬性更新請求,并將屬性更新請求分別發(fā)送到屬性副本服務器。本發(fā)明實施例對此不做限制。由于本實施例中增設(shè)了屬性副本,而且當客戶端接收到數(shù)據(jù)副本和屬性副本的響應信息數(shù)量大于等于預設(shè)閾值時,認為數(shù)據(jù)更新成功,從而增加了能夠容忍的I/O性能抖動,能夠提高系統(tǒng)的可用性。此外,本實施例中,客戶端進行數(shù)據(jù)恢復的過程與上述實施例相似,信息交互的過程也與上述實施例相似,本發(fā)明此處不再贅述。由于本實施例中引入數(shù)據(jù)的屬性副本,而屬性副本僅包括數(shù)據(jù)的有效版本號和列表屬性值,因此,即使數(shù)據(jù)連續(xù)數(shù)次更新,屬性副本更新的速度也較快,所以,只要有一個屬性副本服務器中的屬性副本更新成功即可確定有效版本的版本號。當客戶端進行數(shù)據(jù)恢復時,只要有一個數(shù)據(jù)副本的版本號等于副本列表中屬性副本的版本號,即可將該數(shù)據(jù)副本確定為有效副本。根據(jù)上述描述,本發(fā)明實施例所提供的數(shù)據(jù)更新方法,在客戶端分別向副本列表中所存儲的副本服務器發(fā)送更新請求后,接收每臺副本服務器中數(shù)據(jù)副本更新完成后的響應信息,當預設(shè)更新時間內(nèi)接收的響應信息數(shù)量小于副本服務器總數(shù)量時,說明存在未更新成功的副本服務器,此時,本發(fā)明實施例中,并不將該副本服務器排除,而是將未發(fā)送響應信息的副本服務器對應的副本信息修改為繼續(xù)更新狀態(tài),保持該副本服務器繼續(xù)更新。如果在預設(shè)繼續(xù)更新時間內(nèi),依然未接收到繼續(xù)更新的副本服務器發(fā)送的響應信息,那么將該副本服務器對應的副本信息從副本列表中刪除,從而將該數(shù)據(jù)副本從更新成功的數(shù)據(jù)副本中排除。由于刪除副本信息改變了副本列表的列表屬性,本發(fā)明實施例更新副本列表的列表屬性值,并將更新后的列表屬性值發(fā)送并存儲在中心服務器中。與現(xiàn)有技術(shù)相比,當更新時間內(nèi)存在未更新成功的副本服務器時,無需將該副本服務器排除,因此,無需將當前版本號存儲在中心服務器中。而當排除副本服務器時,必然會造成副本列表的變化,因此,本發(fā)明實施例僅在副本列表發(fā)生變化時,將列表屬性值存儲到中心服務器,從而能夠在減小I/O性能抖動的基礎(chǔ)上,降低向中心服務器寫數(shù)據(jù)的頻率,進而能夠減小中心服務器的壓力,提高系統(tǒng)可用性。與上述實現(xiàn)方法相對應的,本發(fā)明實施例還提供了相應的數(shù)據(jù)更新裝置。請參見圖4,圖4為本發(fā)明實施例提供的數(shù)據(jù)更新裝置的結(jié)構(gòu)示意圖。所述裝置包括:接收模塊11,狀態(tài)修改模塊12,刪除模塊13,更新模塊14和發(fā)送模塊15,其中,所述接收模塊11,用于在向副本列表中所存儲的副本服務器發(fā)送更新請求之后,接收每臺所述副本服務器中數(shù)據(jù)副本更新完成后的響應信息;所述狀態(tài)修改模塊12,用于當所述接收模塊11在預設(shè)更新時間內(nèi)所接收的響應信息數(shù)量小于所述副本服務器的總數(shù)量時,將未發(fā)送響應信息的副本服務器對應的副本信息修改為繼續(xù)更新狀態(tài);所述刪除模塊13,用于當所述接收模塊12在預設(shè)繼續(xù)更新時間內(nèi)仍未接收到所述繼續(xù)更新的副本服務器發(fā)送的響應信息時,將所述副本信息從所述副本列表中刪除;所述更新模塊14,用于所述刪除模塊13將所述副本信息從所述副本列表中刪除后,更新所述副本列表的列表屬性值;所述發(fā)送模塊15,用于將所述更新模塊14所更新的列表屬性值發(fā)送并存儲在中心服務器中。所述裝置中各個模塊的功能和作用的實現(xiàn)過程詳見上述方法中對應的實現(xiàn)過程,在此不再贅述。通過本實施例可以看出,本發(fā)明實施例所述的數(shù)據(jù)更新裝置,當更新時間內(nèi)存在未更新成功的副本服務器時,無需將該副本服務器排除,因此,無需將當前版本號存儲在中心服務器中。而當排除副本服務器時,必然會造成副本列表的變化,因此,本發(fā)明實施例僅在副本列表發(fā)生變化時,將列表屬性值存儲到中心服務器,從而能夠在減小I/O性能抖動的基礎(chǔ)上,降低向中心服務器寫數(shù)據(jù)的頻率,進而能夠減小中心服務器的壓力,提高系統(tǒng)可用性。在上述實施例的基礎(chǔ)上,所述數(shù)據(jù)更新裝置還包括生成模塊,所述生成模塊,用于生成數(shù)據(jù)更新請求和屬性更新請求,其中,所述屬性更新請求為更新版本號的請求信息;本實施例中,所述發(fā)送模塊15,還用于分別向所述副本列表中存儲數(shù)據(jù)副本的數(shù)據(jù)副本服務器發(fā)送所述數(shù)據(jù)更新請求;分別向所述副本列表中存儲屬性信息的屬性副本服務器發(fā)送所述屬性更新請求。在上述實施例的基礎(chǔ)上,在本實施例中,所述生成模塊,具體可以用于根據(jù)所述響應信息對應的副本的版本號生成屬性更新請求。所述發(fā)送模塊15,還用于將更新后的所述列表屬性值分別發(fā)送并存儲到所述副本列表所存儲的副本服務器中。在上述實施例的基礎(chǔ)上,所述裝置還包括獲取模塊和存儲模塊,其中,所述獲取模塊,用于從所述中心服務器中獲取歷史列表屬性值和歷史副本服務器地址,其中,所述歷史 副本服務器地址為按照預設(shè)周期所發(fā)送的副本列表中存儲的副本服務器地址;所述存儲模塊,用于當所述預存儲列表屬性值大于或者等于所述歷史列表屬性值時,將所述副本服務器對應的地址存儲在所述副本列表中。在本實施例中,所述發(fā)送模塊15,還用于分別向所述歷史副本服務器地址對應的副本服務器發(fā)送查詢信息;所述接收模塊11,還用于接收所述副本服務器響應所述查詢信息所發(fā)送的預存儲列表屬性值。在另一個實施例中,所述裝置還包括確定模塊,所述確定模塊,用于將所述版本號最高的副本信息對應的數(shù)據(jù)副本確定為有效副本。本實施例中,所述獲取模塊,還用于獲取每條所述副本信息中的版本號;所述刪除模塊13,還用于將所述版本號小于所述最高版本號的副本信息對應的副本信息從所述副本列表中刪除;所述更新模塊14,還用于更新所述副本列表的列表屬性值得到新列表屬性值;所述發(fā)送模塊15,還用于更新所述副本列表的列表屬性值得到新列表屬性值。所述裝置中各個模塊的功能和作用的實現(xiàn)過程詳見上述方法中對應的實現(xiàn)過程,在此不再贅述。由上述描述可知,本發(fā)明實施例所提供的數(shù)據(jù)更新裝置,與現(xiàn)有技術(shù)相比,當更新時間內(nèi)存在未更新成功的副本服務器時,無需將該副本服務器排除,因此,無需將當前版本號存儲在中心服務器中。而當排除副本服務器時,必然會造成副本列表的變化,因此,本發(fā)明實施例僅在副本列表發(fā)生變化時,將列表屬性值存儲到中心服務器,從而能夠在減小I/O性能抖動的基礎(chǔ)上,降低向中心服務器寫數(shù)據(jù)的頻率,進而能夠減小中心服務器的壓力,提高系統(tǒng)可用性。與上述方法和裝置相對應的,本發(fā)明實施例還提供了一種數(shù)據(jù)更新系統(tǒng),如圖5所示,圖5為本發(fā)明實施例提供的數(shù)據(jù)更新系統(tǒng)的結(jié)構(gòu)示意圖。所述系統(tǒng)包括客戶端1、副本服務器2和中心服務器3,其中,客戶端1包括上述的數(shù)據(jù)更新裝置,其功能和作用本發(fā)明實施例不再贅述;副本服務器2,用于接收所述客戶端1發(fā)送的列表屬性值;中心服務器3,用于接收所述客戶端1發(fā)送的列表屬性值。由上述描述可知,中心服務器3,還用于向所述副本服務器2發(fā)送獲取副本信息請求,并接收所述副本服務器2發(fā)送的副本信息,根據(jù)所述副本信息確定地址列表;將所存儲的列表屬性值及地址列表發(fā)送到所述客戶端1;副本服務器2,還用于接收所述中心服務器3發(fā)送的獲取副本信息請求,并將所述副本信息發(fā)送到所述中心服務器3。其具體實現(xiàn)方法詳見上述描述,本發(fā)明實施例此處不再贅述。可以理解的是,本發(fā)明可用于眾多通用或?qū)S玫囊苿咏K端中,例如:手機、平板型設(shè)備電腦等等。綜上,為了解決系統(tǒng)可用性低的問題,本發(fā)明實施例所提供的數(shù)據(jù)更新方法、裝置及相關(guān)系統(tǒng),在客戶端分別向副本列表中所存儲的副本服務器發(fā)送更新請求后,接收每臺副本服務器中數(shù)據(jù)副本更新完成后的響應信息,當預設(shè)更新時間內(nèi)接收的響應信息數(shù)量小于副本服務器總數(shù)量時,說明存在未更新成功的副本服務器,此時,本發(fā)明實施例中,并不將該副本服務器排除,而是將未發(fā)送響應信息的副本服務器對應的副本信息修改為繼續(xù)更新狀態(tài),保持該副本服務器繼續(xù)更新。如果在預設(shè)繼續(xù)更新時間內(nèi),依然未接收到繼續(xù)更新的副本服務器發(fā)送的響應信息,那么將該副本服務器對應的副本信息從副本列表中刪除,從而將該數(shù)據(jù)副本從更新成功的數(shù)據(jù)副本中排除。由于刪除副本信息改變了副本列表的列表屬性,本發(fā)明實施例更新副本列表的列表屬性值,并將更新后的列表屬性值發(fā)送并存儲在中心服務器中。與現(xiàn)有技術(shù)相比,當更新時間內(nèi)存在未更新成功的副本服務器時,無需將該副本服務器排除,因此,無需將當前版本號存儲在中心服務器中。而當排除副本服務器時,必然會造成副本列表的變化,因此,本發(fā)明實施例僅在副本列表發(fā)生變化時,將列表屬性值存儲到中心服務器,從而能夠在減小I/O性能抖動的基礎(chǔ)上,降低向中心服務器寫數(shù)據(jù)的頻率,進而能夠減小中心服務器的壓力,提高系統(tǒng)可用性。以上所述僅是本發(fā)明的具體實施方式,應當指出,對于本
技術(shù)領(lǐng)域:
的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。當前第1頁1 2 3