亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

數據拖取的方法和裝置制造方法

文檔序號:6628902閱讀:158來源:國知局
數據拖取的方法和裝置制造方法【專利摘要】本發(fā)明提供了一種數據拖取的方法和裝置,該方法,包括:獲取在分布式存儲系統(tǒng)集群中增加新節(jié)點的觸發(fā)事件,計算所述新節(jié)點即將在所述分布式存儲系統(tǒng)的環(huán)形存儲空間上管理數據的第一范圍;從所述分布式存儲系統(tǒng)集群的、保存有所述第一范圍的數據副本的原始節(jié)點中選擇提供所述第一范圍的數據的拖取節(jié)點;將所述第一范圍劃分成N個細粒度的第二范圍,根據所述第二范圍的劃分狀態(tài)分別從所述拖取節(jié)點拖取每個所述第二范圍對應的數據,直至從所述拖取節(jié)點拖取N個所述第二范圍對應的數據。本發(fā)明提供的技術方案,可以節(jié)約時間資源,提高Streaming的效率?!緦@f明】數據拖取的方法和裝置【
技術領域
】[0001]本發(fā)明涉及計算機【
技術領域
】,特別是一種數據拖取的方法和裝置?!?br>背景技術
】[0002]Cassandra是依賴DHT(DistributedHashTable,分布式哈希表)技術實現的一種典型的無中心節(jié)點的環(huán)形結構的分布式存儲系統(tǒng)。Cassandra數據存儲空間可以抽象為一個環(huán)形結構,數據就是通過hash(哈希)分散在這個環(huán)形存儲空間上。每個節(jié)點負責管理這個環(huán)形存儲空間上的某一塊連續(xù)的Range(范圍),落在此Range空間上的數據就存儲在這個節(jié)點上。[0003]當Cassandra集群剩余容量不足時,貝U需要向環(huán)形結構中增加一些新節(jié)點進行擴容?;蛘?,當現有的環(huán)形結構中某個數據節(jié)點因故障無法恢復時,則需要使用一個新節(jié)點頂替故障節(jié)點。無論是增加新節(jié)點進行擴容,或是增加新節(jié)點頂替故障節(jié)點,都需要從環(huán)形結構上的其他節(jié)點拖取該新節(jié)點未來負責管理的數據,即該新節(jié)點未來負責管理的某一塊連續(xù)的Range的數據,從而對外提供數據訪問服務,這種拖取數據的過程也稱為Streaming(流)過程。[0004]相關技術中,實現上述Streaming過程如圖1所示。首先,數據索取方A節(jié)點(即新節(jié)點)計算出未來負責管理環(huán)形存儲空間上的某一塊Range,從Cassandra環(huán)形結構上的原始節(jié)點中選擇可以提供該Range的數據的節(jié)點,如B節(jié)點。接著,A節(jié)點主動與B節(jié)點建立連接,之后A節(jié)點將獲取該Range的數據請求發(fā)送給B節(jié)點,B節(jié)點根據該Range生成文件列表。隨后,B節(jié)點將文件列表中的文件(FileO,FileUFile2……)逐個發(fā)送給A節(jié)點。A節(jié)點在收到文件后進行校驗,如果文件數據有錯誤或異常,則向B節(jié)點發(fā)送RETRY(重試)指令告知B節(jié)點重傳該文件;反之,發(fā)送NEXT(下一個)指令告知B節(jié)點傳輸下一文件。當B節(jié)點向A節(jié)點發(fā)送完最后一個文件,并且收到A節(jié)點回復的NEXT指令,則B節(jié)點向A節(jié)點發(fā)送FINISHED(完成)指令,并斷開連接,從而完成數據拖取。最后,A節(jié)點接收完所有的文件后,遍歷讀取文件數據建立索引。圖1所示的Streaming過程,雖然是由A節(jié)點發(fā)起,但是A節(jié)點只是被動接收文件數據,它只知道某個文件數據是否正確的傳輸過來,并根據傳輸正確與否來給出相應的回復。然而A節(jié)點并不清楚到底有多少文件數據需要接收,即其無法記錄斷點信息,無法獲知Streaming進度。如果在Streaming過程中發(fā)生機器故障或網絡異常,導致A節(jié)點與B節(jié)點的連接斷開,由于沒有斷點信息,即使恢復了連接也無法恢復Streaming過程,因而只能從頭開始Streaming。而在大容量的分布式存儲系統(tǒng)的集群中,單節(jié)點存儲容量往往有幾十TB,從頭開始Streaming是完全不可以接受的?!?br/>發(fā)明內容】[0005]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的數據拖取的方法和相應的裝置。[0006]依據本發(fā)明的一個方面,提供了一種數據拖取的方法,包括:獲取在分布式存儲系統(tǒng)集群中增加新節(jié)點的觸發(fā)事件,計算所述新節(jié)點即將在所述分布式存儲系統(tǒng)的環(huán)形存儲空間上管理數據的第一范圍;從所述分布式存儲系統(tǒng)集群的、保存有所述第一范圍的數據副本的原始節(jié)點中選擇提供所述第一范圍的數據的拖取節(jié)點;將所述第一范圍劃分成N個細粒度的第二范圍,根據所述第二范圍的劃分狀態(tài)分別從所述拖取節(jié)點拖取每個所述第二范圍對應的數據,直至從所述拖取節(jié)點拖取N個所述第二范圍對應的數據。[0007]可選地,根據所述第二范圍的劃分狀態(tài)分別從所述拖取節(jié)點拖取每個所述第二范圍對應的數據,包括:對N個所述第二范圍進行排序,根據所述第二范圍的劃分狀態(tài)依序從所述拖取節(jié)點拖取每個所述第二范圍對應的數據。[0008]可選地,根據所述第二范圍的劃分狀態(tài)依序從所述拖取節(jié)點拖取每個所述第二范圍對應的數據,包括:根據所述第二范圍的劃分狀態(tài)依序從所述拖取節(jié)點拖取每個所述第二范圍對應的結構化數據,其中,所述結構化數據是由所述拖取節(jié)點獲取所述第二范圍對應的文件列表、并利用所述文件列表中的文件生成。[0009]可選地,依序從所述拖取節(jié)點拖取每個所述第二范圍對應的結構化數據,包括:在所述新節(jié)點與所述拖取節(jié)點之間建立長連接;依序向所述拖取節(jié)點發(fā)送拖取每個所述第二范圍的數據的拖取請求,其中,所述拖取請求中攜帶有所述第二范圍;接收所述拖取節(jié)點返回的每個所述第二范圍對應的結構化數據。[0010]可選地,每次從所述拖取節(jié)點拖取所述第二范圍對應的結構化數據之后,還包括:判斷從所述拖取節(jié)點拖取的所述第二范圍對應的結構化數據是否存在錯誤;若是,重新從所述拖取節(jié)點拖取所述第二范圍對應的結構化數據;若否,記錄所述第二范圍的序號,以表明已從所述拖取節(jié)點拖取該序號的第二范圍對應的結構化數據。[0011]可選地,若依序從所述拖取節(jié)點拖取每個所述第二范圍對應的結構化數據的過程中,所述新節(jié)點與所述拖取節(jié)點之間的長連接斷開,且重新建立所述新節(jié)點與所述拖取節(jié)點之間的長連接后,還包括:確定N個所述第二范圍中未記錄序號的第二范圍;依序從所述拖取節(jié)點拖取每個所述未記錄序號的第二范圍對應的結構化數據,直至從所述拖取節(jié)點拖取所有的所述未記錄序號的第二范圍對應的結構化數據。[0012]可選地,每次從所述拖取節(jié)點拖取所述第二范圍對應的結構化數據之后,還包括:將所述結構化數據寫入內存表Memtable;當所述Memtable管理的數據達到預設閾值時,將所述結構化數據刷新到所述新節(jié)點的磁盤上,生成有序字符串表SSTable文件。[0013]可選地,所述方法還包括:接收訪問所述新節(jié)點的數據的訪問請求,其中,所述訪問請求中攜帶有待訪問數據的標識;從所述新節(jié)點的SSTable文件中,查詢與所述待訪問數據的標識對應的待訪問數據,進行訪問操作。[0014]可選地,所述觸發(fā)事件包括:在所述分布式存儲系統(tǒng)集群中增加新節(jié)點以對所述分布式存儲系統(tǒng)集群進行擴容;或者在所述分布式存儲系統(tǒng)集群中增加新節(jié)點以頂替所述分布式存儲系統(tǒng)集群的原始節(jié)點中的故障節(jié)點。[0015]可選地,計算所述新節(jié)點在所述分布式存儲系統(tǒng)的環(huán)形存儲空間上管理數據的第一范圍,包括:對所述新節(jié)點分配令牌token;根據所述token計算所述新節(jié)點在所述分布式存儲系統(tǒng)的環(huán)形存儲空間上管理數據的第一范圍。[0016]可選地,所述分布式存儲系統(tǒng)為Cassandra系統(tǒng)。[0017]依據本發(fā)明的另一個方面,還提供了一種數據拖取的裝置,包括:[0018]計算模塊,適于獲取在分布式存儲系統(tǒng)集群中增加新節(jié)點的觸發(fā)事件,計算所述新節(jié)點即將在所述分布式存儲系統(tǒng)的環(huán)形存儲空間上管理數據的第一范圍;[0019]選擇模塊,適于從所述分布式存儲系統(tǒng)集群的、保存有所述第一范圍的數據副本的原始節(jié)點中選擇提供所述第一范圍的數據的拖取節(jié)點;[0020]拖取模塊,適于將所述第一范圍劃分成N個細粒度的第二范圍,根據所述第二范圍的劃分狀態(tài)分別從所述拖取節(jié)點拖取每個所述第二范圍對應的數據,直至從所述拖取節(jié)點拖取N個所述第二范圍對應的數據。[0021]可選地,所述拖取模塊還適于:對N個所述第二范圍進行排序,根據所述第二范圍的劃分狀態(tài)依序從所述拖取節(jié)點拖取每個所述第二范圍對應的數據。[0022]可選地,所述拖取模塊還適于:根據所述第二范圍的劃分狀態(tài)依序從所述拖取節(jié)點拖取每個所述第二范圍對應的結構化數據,其中,所述結構化數據是由所述拖取節(jié)點獲取所述第二范圍對應的文件列表、并利用所述文件列表中的文件生成。[0023]可選地,所述拖取模塊還適于:在所述新節(jié)點與所述拖取節(jié)點之間建立長連接;依序向所述拖取節(jié)點發(fā)送拖取每個所述第二范圍的數據的拖取請求,其中,所述拖取請求中攜帶有所述第二范圍;接收所述拖取節(jié)點返回的每個所述第二范圍對應的結構化數據。[0024]可選地,所述裝置還包括判斷模塊,適于:在所述拖取模塊每次從所述拖取節(jié)點拖取所述第二范圍對應的結構化數據之后,判斷從所述拖取節(jié)點拖取的所述第二范圍對應的結構化數據是否存在錯誤;若是,重新從所述拖取節(jié)點拖取所述第二范圍對應的結構化數據;若否,記錄所述第二范圍的序號,以表明已從所述拖取節(jié)點拖取該序號的第二范圍對應的結構化數據。[0025]可選地,若所述拖取模塊依序從所述拖取節(jié)點拖取每個所述第二范圍對應的結構化數據的過程中,所述新節(jié)點與所述拖取節(jié)點之間的長連接斷開,且重新建立所述新節(jié)點與所述拖取節(jié)點之間的長連接后,所述拖取模塊還適于:確定N個所述第二范圍中未記錄序號的第二范圍;依序從所述拖取節(jié)點拖取每個所述未記錄序號的第二范圍對應的結構化數據,直至從所述拖取節(jié)點拖取所有的所述未記錄序號的第二范圍對應的結構化數據。[0026]可選地,所述裝置還包括生成模塊,適于:在所述拖取模塊每次從所述拖取節(jié)點拖取所述第二范圍對應的結構化數據之后,將所述結構化數據寫入內存表Memtable;當所述Memtable管理的數據達到預設閾值時,將所述結構化數據刷新到所述新節(jié)點的磁盤上,生成有序字符串表SSTable文件。[0027]可選地,所述裝置還包括訪問模塊,適于:接收訪問所述新節(jié)點的數據的訪問請求,其中,所述訪問請求中攜帶有待訪問數據的標識;從所述新節(jié)點的SSTable文件中,查詢與所述待訪問數據的標識對應的待訪問數據,進行訪問操作。[0028]可選地,所述觸發(fā)事件包括:在所述分布式存儲系統(tǒng)集群中增加新節(jié)點以對所述分布式存儲系統(tǒng)集群進行擴容;或者在所述分布式存儲系統(tǒng)集群中增加新節(jié)點以頂替所述分布式存儲系統(tǒng)集群的原始節(jié)點中的故障節(jié)點。[0029]可選地,所述計算模塊還適于:對所述新節(jié)點分配令牌token;根據所述token計算所述新節(jié)點在所述分布式存儲系統(tǒng)的環(huán)形存儲空間上管理數據的第一范圍。[0030]可選地,所述分布式存儲系統(tǒng)為Cassandra系統(tǒng)。[0031]依據本發(fā)明的技術方案,獲取在分布式存儲系統(tǒng)集群中增加新節(jié)點的觸發(fā)事件,計算新節(jié)點即將在分布式存儲系統(tǒng)的環(huán)形存儲空間上管理數據的第一范圍,隨后從分布式存儲系統(tǒng)集群的、保存有第一范圍的數據副本的原始節(jié)點中選擇提供第一范圍的數據的拖取節(jié)點,之后將第一范圍劃分成N個細粒度的第二范圍,根據第二范圍的劃分狀態(tài)分別從拖取節(jié)點拖取每個第二范圍對應的數據,直至從拖取節(jié)點拖取N個第二范圍對應的數據。由于第一范圍被劃分成N個細粒度的第二范圍,因而新節(jié)點可以主動根據第二范圍的劃分狀態(tài)分別從拖取節(jié)點拖取每個第二范圍對應的數據,直至從拖取節(jié)點拖取N個第二范圍對應的數據,也就是說,新節(jié)點可以知道哪些第二范圍對應的數據已從拖取節(jié)點拖取或者還未從拖取節(jié)點拖取,即能夠獲知Streaming進度,解決了相關技術中無法獲知Streaming進度的問題。并且,相關技術中由于無法獲知Streaming進度,如果在Streaming過程中發(fā)生機器故障或網絡異常,導致新節(jié)點與拖取節(jié)點的連接斷開,由于沒有斷點信息,即使恢復了連接也無法恢復Streaming過程,因而只能從頭開始Streaming。而本發(fā)明能夠獲知Streaming進度,因而在恢復連接后能夠恢復Streaming過程,無需從頭開始Streaming,可以節(jié)約時間資源,提高Streaming的效率。[0032]上述說明僅是本發(fā)明技術方案的概述,為了能夠更清楚了解本發(fā)明的技術手段,而可依照說明書的內容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的【具體實施方式】。[0033]根據下文結合附圖對本發(fā)明具體實施例的詳細描述,本領域技術人員將會更加明了本發(fā)明的上述以及其他目的、優(yōu)點和特征?!緦@綀D】【附圖說明】[0034]通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:[0035]圖1示出了相關技術中Streaming過程的示意圖;[0036]圖2示出了根據本發(fā)明一個實施例的數據拖取的方法的流程圖;[0037]圖3示出了采用本發(fā)明實施例提供的數據拖取方法的Streaming過程的示意圖;[0038]圖4示出了根據本發(fā)明一個實施例的數據拖取的裝置的一種結構示意圖;以及[0039]圖5示出了根據本發(fā)明一個實施例的數據拖取的裝置的另一種結構示意圖?!揪唧w實施方式】[0040]下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠將本公開的范圍完整的傳達給本領域的技術人員。[0041]為解決上述技術問題,本發(fā)明實施例提供了一種數據拖取的方法,圖2示出了根據本發(fā)明一個實施例的數據拖取的方法的流程圖。如圖2所示,該方法至少包括以下步驟S202至步驟S206。[0042]步驟S202、獲取在分布式存儲系統(tǒng)集群中增加新節(jié)點的觸發(fā)事件,計算新節(jié)點即將在分布式存儲系統(tǒng)的環(huán)形存儲空間上管理數據的第一范圍。[0043]步驟S204、從分布式存儲系統(tǒng)集群的、保存有第一范圍的數據副本的原始節(jié)點中選擇提供第一范圍的數據的拖取節(jié)點。[0044]步驟S206、將第一范圍劃分成N個細粒度的第二范圍,根據第二范圍的劃分狀態(tài)分別從拖取節(jié)點拖取每個第二范圍對應的數據,直至從拖取節(jié)點拖取N個第二范圍對應的數據。[0045]依據本發(fā)明的技術方案,獲取在分布式存儲系統(tǒng)集群中增加新節(jié)點的觸發(fā)事件,計算新節(jié)點即將在分布式存儲系統(tǒng)的環(huán)形存儲空間上管理數據的第一范圍,隨后從分布式存儲系統(tǒng)集群的、保存有第一范圍的數據副本的原始節(jié)點中選擇提供第一范圍的數據的拖取節(jié)點,之后將第一范圍劃分成N個細粒度的第二范圍,根據第二范圍的劃分狀態(tài)分別從拖取節(jié)點拖取每個第二范圍對應的數據,直至從拖取節(jié)點拖取N個第二范圍對應的數據。由于第一范圍被劃分成N個細粒度的第二范圍,因而新節(jié)點可以主動根據第二范圍的劃分狀態(tài)分別從拖取節(jié)點拖取每個第二范圍對應的數據,直至從拖取節(jié)點拖取N個第二范圍對應的數據,也就是說,新節(jié)點可以知道哪些第二范圍對應的數據已從拖取節(jié)點拖取或者還未從拖取節(jié)點拖取,即能夠獲知Streaming進度,解決了相關技術中無法獲知Streaming進度的問題。并且,相關技術中由于無法獲知Streaming進度,如果在Streaming過程中發(fā)生機器故障或網絡異常,導致新節(jié)點與拖取節(jié)點的連接斷開,由于沒有斷點信息,即使恢復了連接也無法恢復Streaming過程,因而只能從頭開始Streaming。而本發(fā)明能夠獲知Streaming進度,因而在恢復連接后能夠恢復Streaming過程,無需從頭開始Streaming,可以節(jié)約時間資源,提高Streaming的效率。[0046]本發(fā)明實施例中的分布式存儲系統(tǒng)是一種分布式非關系型數據系統(tǒng),可以是Cassandra系統(tǒng),還可以是其他分布式非關系型數據系統(tǒng)。[0047]前文步驟S202提及的觸發(fā)事件可以是分布式存儲系統(tǒng)集群中節(jié)點增加或減少所引起的任意事件,例如,在分布式存儲系統(tǒng)集群中增加新節(jié)點以對分布式存儲系統(tǒng)集群進行擴容,在分布式存儲系統(tǒng)集群中增加新節(jié)點以頂替分布式存儲系統(tǒng)集群的原始節(jié)點中的故障節(jié)點,等等。進一步地,步驟S202中計算新節(jié)點即將在分布式存儲系統(tǒng)的環(huán)形存儲空間上管理數據的第一范圍,本實施例提供了一種新節(jié)點管理數據的優(yōu)選的技術手段,在該手段中,對新節(jié)點分配token(令牌),進而根據token計算新節(jié)點在分布式存儲系統(tǒng)的環(huán)形存儲空間上管理數據的第一范圍。這里的token決定了節(jié)點在環(huán)中的位置,從而也決定了節(jié)點負責管理數據的范圍。當然,實施時,新節(jié)點也可以采用其他手段,能夠實現這一管理目的即可。[0048]步驟S206中將第一范圍劃分成N個細粒度的第二范圍,根據第二范圍的劃分狀態(tài)分別從步驟S204選擇的、提供第一范圍的數據的拖取節(jié)點拖取每個第二范圍對應的數據,直至從拖取節(jié)點拖取N個第二范圍對應的數據。這里,可以對N個第二范圍進行排序,根據第二范圍的劃分狀態(tài)依序從拖取節(jié)點拖取每個第二范圍對應的數據。這樣,根據排序情況,按序進行拖取每個第二范圍對應的數據,可以知道哪些第二范圍對應的數據已從拖取節(jié)點拖取或者還未從拖取節(jié)點拖取,即能夠獲知Streaming進度。[0049]進一步地,可以根據第二范圍的劃分狀態(tài)依序從拖取節(jié)點拖取每個第二范圍對應的結構化數據,其中,結構化數據是由拖取節(jié)點獲取第二范圍對應的文件列表、并利用文件列表中的文件生成。也就是說,新節(jié)點直接從拖取節(jié)點拖取了結構化數據,由于這些結構化數據本身就包含了索引信息,因而不需要再遍歷文件建立索引,省去了建立索引的過程,并保證新節(jié)點在Streaming過程完畢后即能提供數據訪問服務。此外,依序從拖取節(jié)點拖取每個第二范圍對應的結構化數據,本實施例提供了一種拖取結構化數據的優(yōu)選的技術手段,在該手段中,首先在新節(jié)點與拖取節(jié)點之間建立長連接,隨后依序向拖取節(jié)點發(fā)送拖取每個第二范圍的數據的拖取請求,其中,拖取請求中攜帶有第二范圍,之后接收拖取節(jié)點返回的每個第二范圍對應的結構化數據。[0050]另外,每次從拖取節(jié)點拖取第二范圍對應的結構化數據之后,判斷從拖取節(jié)點拖取的第二范圍對應的結構化數據是否存在錯誤,若存在錯誤,則重新從拖取節(jié)點拖取第二范圍對應的結構化數據;反之,則記錄第二范圍的序號,以表明已從拖取節(jié)點拖取該序號的第二范圍對應的結構化數據。這樣,一方面保證了數據傳輸的準確性,另一方面可以根據記錄的序號知道哪些第二范圍對應的數據已從拖取節(jié)點拖取或者還未從拖取節(jié)點拖取,即能夠獲知Streaming進度。如果依序從拖取節(jié)點拖取每個第二范圍對應的結構化數據的過程中發(fā)生機器故障、網絡異常等情況,導致新節(jié)點與拖取節(jié)點之間的長連接斷開,那么在重新建立新節(jié)點與拖取節(jié)點之間的長連接后,可以確定N個第二范圍中未記錄序號的第二范圍,進而依序從拖取節(jié)點拖取每個未記錄序號的第二范圍對應的結構化數據,直至從拖取節(jié)點拖取所有的未記錄序號的第二范圍對應的結構化數據,無需從頭開始Streaming,可以節(jié)約時間資源,提高Streaming的效率。[0051]此外,每次從拖取節(jié)點拖取第二范圍對應的結構化數據之后,將結構化數據寫入Memtable(內存表),當Memtable管理的數據達到預設閾值時,將結構化數據刷新到新節(jié)點的磁盤上,生成SSTable(SortedStringTable,有序字符串表)文件。進一步地,在執(zhí)行步驟S206之后(即新節(jié)點在Streaming過程完畢后),能夠提供數據訪問服務。即接收訪問新節(jié)點的數據的訪問請求,其中,訪問請求中攜帶有待訪問數據的標識,隨后從新節(jié)點的SSTable文件中,查詢與待訪問數據的標識對應的待訪問數據,進行訪問操作。再者,數據是以SSTable文件格式存儲在新節(jié)點的磁盤上,每個SSTable文件在系統(tǒng)啟動時將會加載到內存中,并在內存中創(chuàng)建一個唯一的SSTable內存對象與其一一對應。當讀數據時候,通過內存對象中的索引來定位數據,進而訪問SSTable文件讀取對應數據。[0052]以上介紹了圖2所示的實施例中各環(huán)節(jié)的多種實現方式,下面通過具體的優(yōu)選實施例對本發(fā)明實施例提供的數據拖取的方法做進一步說明。[0053]如前文介紹的,相關技術采用圖1所示的Streaming過程實現數據拖取,然而圖1所示的數據拖取過程,無法記錄斷點信息,無法獲知Streaming進度。在Streaming過程中發(fā)生機器故障或網絡異常時,由于沒有斷點信息,即使恢復了連接也無法恢復Streaming過程,因而只能從頭開始Streaming。本發(fā)明實施例提供的數據拖取方法解決了上述的技術問題,圖3示出了采用本發(fā)明實施例提供的數據拖取方法的Streaming過程的示意圖,以分布式存儲系統(tǒng)為Cassandra系統(tǒng)為例。如圖3所示,數據索取方A節(jié)點(即新節(jié)點)計算出即將負責管理環(huán)形存儲空間上的某一塊Range,從Cassandra環(huán)形結構上的原始節(jié)點中選擇可以提供該Range的數據的節(jié)點,如B節(jié)點,詳細的Streaming過程如下。首先,A節(jié)點將負責管理環(huán)形存儲空間上的某一塊Range劃分成N個細粒度的range(rangeO>range1、……rangeN_l),這里N越大,粒度越細,效果越好。隨后,在A節(jié)點與B節(jié)點之間建立長連接,之后A節(jié)點依次將各細粒度的range作為請求發(fā)送給B節(jié)點。接著,B節(jié)點根據各細粒度的range請求,獲得其對應的所有文件列表,進而依次讀取文件中的數據塊內容,將其結構化、序列化后作為結構化數據(BlockO、Block1、……BlockN_l)發(fā)送給A節(jié)點。在A節(jié)點收到這些結構化數據后,將結構化數據反序列化寫入(Write)Memtable,當Memtable管理的數據達到預設閾值時,將結構化數據刷新到新節(jié)點的磁盤上,生成SSTable文件,其中已經包含數據的索引信息。如果A節(jié)點在接收結構化數據的過程中出現了異常,則重新發(fā)送請求該range的數據給B節(jié)點即可(圖3中所示,A節(jié)點接收rangeI異常,則向B節(jié)點重新發(fā)送rangeI的請求)。此外,在每次拖取一個range對應的結構化數據之后,A節(jié)點都會記錄當前range的序號,當所有range對應的結構化數據拖取完成之后,即完成了Streaming過程。另外,在Streaming的過程中發(fā)生機器故障或網絡異常,導致A節(jié)點與B節(jié)點的連接斷開,那么在重新建立A節(jié)點與B節(jié)點之間的長連接后,可以確定N個range中未記錄序號的range,進而依序從B節(jié)點拖取每個未記錄序號的range對應的結構化數據,直至從B節(jié)點拖取所有的未記錄序號的range對應的結構化數據,無需從頭開始Streaming,可以節(jié)約時間資源,提高Streaming的效率。[0054]需要說明的是,實際應用中,上述所有可選實施方式可以采用結合的方式任意組合,形成本發(fā)明的可選實施例,在此不再一一贅述。[0055]基于同一發(fā)明構思,本發(fā)明實施例還提供了一種數據拖取的裝置,以實現上述數據拖取的方法。[0056]圖4示出了根據本發(fā)明一個實施例的數據拖取的裝置的一種結構示意圖。參見圖4,該裝置至少包括:計算模塊410、選擇模塊420以及拖取模塊430。[0057]現介紹本發(fā)明實施例的數據拖取的裝置的各組成或器件的功能以及各部分間的連接關系:[0058]計算模塊410,適于獲取在分布式存儲系統(tǒng)集群中增加新節(jié)點的觸發(fā)事件,計算新節(jié)點即將在分布式存儲系統(tǒng)的環(huán)形存儲空間上管理數據的第一范圍;[0059]選擇模塊420,與計算模塊410相耦合,適于從分布式存儲系統(tǒng)集群的、保存有第一范圍的數據副本的原始節(jié)點中選擇提供第一范圍的數據的拖取節(jié)點;[0060]拖取模塊430,與選擇模塊420相耦合,適于將第一范圍劃分成N個細粒度的第二范圍,根據第二范圍的劃分狀態(tài)分別從拖取節(jié)點拖取每個第二范圍對應的數據,直至從拖取節(jié)點拖取N個第二范圍對應的數據。[0061]在一個實施例中,上述拖取模塊430還適于:對N個第二范圍進行排序,根據第二范圍的劃分狀態(tài)依序從拖取節(jié)點拖取每個第二范圍對應的數據。[0062]在一個實施例中,上述拖取模塊430還適于:根據第二范圍的劃分狀態(tài)依序從拖取節(jié)點拖取每個第二范圍對應的結構化數據,其中,結構化數據是由拖取節(jié)點獲取第二范圍對應的文件列表、并利用文件列表中的文件生成。[0063]在一個實施例中,上述拖取模塊430還適于:在新節(jié)點與拖取節(jié)點之間建立長連接;依序向拖取節(jié)點發(fā)送拖取每個第二范圍的數據的拖取請求,其中,拖取請求中攜帶有第二范圍;接收拖取節(jié)點返回的每個第二范圍對應的結構化數據。[0064]圖5示出了根據本發(fā)明一個實施例的數據拖取的裝置的另一種結構示意圖。如圖5所示,上述圖4展示的裝置還可以包括判斷模塊440,與拖取模塊430相耦合,適于:在拖取模塊430每次從拖取節(jié)點拖取第二范圍對應的結構化數據之后,判斷從拖取節(jié)點拖取的第二范圍對應的結構化數據是否存在錯誤;若是,重新從拖取節(jié)點拖取第二范圍對應的結構化數據;若否,記錄第二范圍的序號,以表明已從拖取節(jié)點拖取該序號的第二范圍對應的結構化數據。[0065]在一個實施例中,若拖取模塊430依序從拖取節(jié)點拖取每個第二范圍對應的結構化數據的過程中,新節(jié)點與拖取節(jié)點之間的長連接斷開,且重新建立新節(jié)點與拖取節(jié)點之間的長連接后,拖取模塊430還適于:確定N個第二范圍中未記錄序號的第二范圍;依序從拖取節(jié)點拖取每個未記錄序號的第二范圍對應的結構化數據,直至從拖取節(jié)點拖取所有的未記錄序號的第二范圍對應的結構化數據。[0066]在一個實施例中,上述裝置還可以包括生成模塊450,與拖取模塊430相稱合,適于:在拖取模塊430每次從拖取節(jié)點拖取第二范圍對應的結構化數據之后,將結構化數據寫入內存表Memtable;當Memtable管理的數據達到預設閾值時,將結構化數據刷新到新節(jié)點的磁盤上,生成有序字符串表SSTable文件。[0067]在一個實施例中,上述裝置還可以包括訪問模塊460,與生成模塊450相f禹合,適于:接收訪問新節(jié)點的數據的訪問請求,其中,訪問請求中攜帶有待訪問數據的標識;從新節(jié)點的SSTable文件中,查詢與待訪問數據的標識對應的待訪問數據,進行訪問操作。[0068]在一個實施例中,觸發(fā)事件包括:在分布式存儲系統(tǒng)集群中增加新節(jié)點以對分布式存儲系統(tǒng)集群進行擴容;或者在分布式存儲系統(tǒng)集群中增加新節(jié)點以頂替分布式存儲系統(tǒng)集群的原始節(jié)點中的故障節(jié)點。[0069]在一個實施例中,計算模塊410還適于:對新節(jié)點分配令牌token;根據token計算新節(jié)點在分布式存儲系統(tǒng)的環(huán)形存儲空間上管理數據的第一范圍。[0070]在一個實施例中,分布式存儲系統(tǒng)為Cassandra系統(tǒng)。[0071]根據上述任意一個優(yōu)選實施例或多個優(yōu)選實施例的組合,本發(fā)明實施例能夠達到如下有益效果:[0072]依據本發(fā)明的技術方案,獲取在分布式存儲系統(tǒng)分布式存儲系統(tǒng)集群中增加新節(jié)點的觸發(fā)事件,計算新節(jié)點即將在分布式存儲系統(tǒng)的環(huán)形存儲空間上管理數據的第一范圍,隨后從分布式存儲系統(tǒng)集群的、保存有第一范圍的數據副本的原始節(jié)點中選擇提供第一范圍的數據的拖取節(jié)點,之后將第一范圍劃分成N個細粒度的第二范圍,根據第二范圍的劃分狀態(tài)分別從拖取節(jié)點拖取每個第二范圍對應的數據,直至從拖取節(jié)點拖取N個第二范圍對應的數據。由于第一范圍被劃分成N個細粒度的第二范圍,因而新節(jié)點可以主動根據第二范圍的劃分狀態(tài)分別從拖取節(jié)點拖取每個第二范圍對應的數據,直至從拖取節(jié)點拖取N個第二范圍對應的數據,也就是說,新節(jié)點可以知道哪些第二范圍對應的數據已從拖取節(jié)點拖取或者還未從拖取節(jié)點拖取,即能夠獲知Streaming進度,解決了相關技術中無法獲知Streaming進度的問題。并且,相關技術中由于無法獲知Streaming進度,如果在Streaming過程中發(fā)生機器故障或網絡異常,導致新節(jié)點與拖取節(jié)點的連接斷開,由于沒有斷點信息,即使恢復了連接也無法恢復Streaming過程,因而只能從頭開始Streaming。而本發(fā)明能夠獲知Streaming進度,因而在恢復連接后能夠恢復Streaming過程,無需從頭開始Streaming,可以節(jié)約時間資源,提高Streaming的效率。[0073]在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。[0074]類似地,應當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權利要求中所明確記載的特征更多的特征。更確切地說,如下面的權利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循【具體實施方式】的權利要求書由此明確地并入該【具體實施方式】,其中每個權利要求本身都作為本發(fā)明的單獨實施例。[0075]本領域那些技術人員可以理解,可以對實施例中的設備中的模塊進行自適應性地改變并且把它們設置在與該實施例不同的一個或多個設備中。可以把實施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。[0076]此外,本領域的技術人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內并且形成不同的實施例。例如,在權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。[0077]本發(fā)明的各個部件實施例可以以硬件實現,或者以在一個或者多個處理器上運行的軟件模塊實現,或者以它們的組合實現。本領域的技術人員應當理解,可以在實踐中使用微處理器或者數字信號處理器(DSP)來實現根據本發(fā)明實施例的數據拖取的裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現為用于執(zhí)行這里所描述的方法的一部分或者全部的設備或者裝置程序(例如,計算機程序和計算機程序產品)。這樣的實現本發(fā)明的程序可以存儲在計算機可讀介質上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網網站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。[0078]應該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施例。在權利要求中,不應將位于括號之間的任何參考符號構造成對權利要求的限制。單詞“包含”不排除存在未列在權利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。[0079]至此,本領域技術人員應認識到,雖然本文已詳盡示出和描述了本發(fā)明的多個示例性實施例,但是,在不脫離本發(fā)明精神和范圍的情況下,仍可根據本發(fā)明公開的內容直接確定或推導出符合本發(fā)明原理的許多其他變型或修改。因此,本發(fā)明的范圍應被理解和認定為覆蓋了所有這些其他變型或修改。[0080]本發(fā)明還公開了Al、一種數據拖取的方法,包括:[0081]獲取在分布式存儲系統(tǒng)集群中增加新節(jié)點的觸發(fā)事件,計算所述新節(jié)點即將在所述分布式存儲系統(tǒng)的環(huán)形存儲空間上管理數據的第一范圍;[0082]從所述分布式存儲系統(tǒng)集群的、保存有所述第一范圍的數據副本的原始節(jié)點中選擇提供所述第一范圍的數據的拖取節(jié)點;[0083]將所述第一范圍劃分成N個細粒度的第二范圍,根據所述第二范圍的劃分狀態(tài)分別從所述拖取節(jié)點拖取每個所述第二范圍對應的數據,直至從所述拖取節(jié)點拖取N個所述第二范圍對應的數據。[0084]A2、根據Al所述的方法,其中,根據所述第二范圍的劃分狀態(tài)分別從所述拖取節(jié)點拖取每個所述第二范圍對應的數據,包括:[0085]對N個所述第二范圍進行排序,根據所述第二范圍的劃分狀態(tài)依序從所述拖取節(jié)點拖取每個所述第二范圍對應的數據。[0086]A3、根據A2所述的方法,其中,根據所述第二范圍的劃分狀態(tài)依序從所述拖取節(jié)點拖取每個所述第二范圍對應的數據,包括:[0087]根據所述第二范圍的劃分狀態(tài)依序從所述拖取節(jié)點拖取每個所述第二范圍對應的結構化數據,其中,所述結構化數據是由所述拖取節(jié)點獲取所述第二范圍對應的文件列表、并利用所述文件列表中的文件生成。[0088]A4、根據A3所述的方法,其中,依序從所述拖取節(jié)點拖取每個所述第二范圍對應的結構化數據,包括:[0089]在所述新節(jié)點與所述拖取節(jié)點之間建立長連接;[0090]依序向所述拖取節(jié)點發(fā)送拖取每個所述第二范圍的數據的拖取請求,其中,所述拖取請求中攜帶有所述第二范圍;[0091]接收所述拖取節(jié)點返回的每個所述第二范圍對應的結構化數據。[0092]A5、根據A3或A4所述的方法,其中,每次從所述拖取節(jié)點拖取所述第二范圍對應的結構化數據之后,還包括:[0093]判斷從所述拖取節(jié)點拖取的所述第二范圍對應的結構化數據是否存在錯誤;[0094]若是,重新從所述拖取節(jié)點拖取所述第二范圍對應的結構化數據;[0095]若否,記錄所述第二范圍的序號,以表明已從所述拖取節(jié)點拖取該序號的第二范圍對應的結構化數據。[0096]A6、根據A5所述的方法,其中,若依序從所述拖取節(jié)點拖取每個所述第二范圍對應的結構化數據的過程中,所述新節(jié)點與所述拖取節(jié)點之間的長連接斷開,且重新建立所述新節(jié)點與所述拖取節(jié)點之間的長連接后,還包括:[0097]確定N個所述第二范圍中未記錄序號的第二范圍;[0098]依序從所述拖取節(jié)點拖取每個所述未記錄序號的第二范圍對應的結構化數據,直至從所述拖取節(jié)點拖取所有的所述未記錄序號的第二范圍對應的結構化數據。[0099]A7、根據A3至A6任一項所述的方法,其中,每次從所述拖取節(jié)點拖取所述第二范圍對應的結構化數據之后,還包括:[0100]將所述結構化數據寫入內存表Memtable;[0101]當所述Memtable管理的數據達到預設閾值時,將所述結構化數據刷新到所述新節(jié)點的磁盤上,生成有序字符串表SSTable文件。[0102]AS、根據A7所述的方法,其中,還包括:[0103]接收訪問所述新節(jié)點的數據的訪問請求,其中,所述訪問請求中攜帶有待訪問數據的標識;[0104]從所述新節(jié)點的SSTable文件中,查詢與所述待訪問數據的標識對應的待訪問數據,進行訪問操作。[0105]A9、根據Al至A8任一項所述的方法,其中,所述觸發(fā)事件包括:[0106]在所述分布式存儲系統(tǒng)集群中增加新節(jié)點以對所述分布式存儲系統(tǒng)集群進行擴容;或者[0107]在所述分布式存儲系統(tǒng)集群中增加新節(jié)點以頂替所述分布式存儲系統(tǒng)集群的原始節(jié)點中的故障節(jié)點。[0108]A10、根據Al至A9任一項所述的方法,其中,計算所述新節(jié)點在所述分布式存儲系統(tǒng)的環(huán)形存儲空間上管理數據的第一范圍,包括:[0109]對所述新節(jié)點分配令牌token;[0110]根據所述token計算所述新節(jié)點在所述分布式存儲系統(tǒng)的環(huán)形存儲空間上管理數據的第一范圍。[0111]All、根據Al至AlO任一項所述的方法,其中,所述分布式存儲系統(tǒng)為Cassandra系統(tǒng)。[0112]B12、一種數據拖取的裝置,包括:[0113]計算模塊,適于獲取在分布式存儲系統(tǒng)集群中增加新節(jié)點的觸發(fā)事件,計算所述新節(jié)點即將在所述分布式存儲系統(tǒng)的環(huán)形存儲空間上管理數據的第一范圍;[0114]選擇模塊,適于從所述分布式存儲系統(tǒng)集群的、保存有所述第一范圍的數據副本的原始節(jié)點中選擇提供所述第一范圍的數據的拖取節(jié)點;[0115]拖取模塊,適于將所述第一范圍劃分成N個細粒度的第二范圍,根據所述第二范圍的劃分狀態(tài)分別從所述拖取節(jié)點拖取每個所述第二范圍對應的數據,直至從所述拖取節(jié)點拖取N個所述第二范圍對應的數據。[0116]B13、根據B12所述的裝置,其中,所述拖取模塊還適于:[0117]對N個所述第二范圍進行排序,根據所述第二范圍的劃分狀態(tài)依序從所述拖取節(jié)點拖取每個所述第二范圍對應的數據。[0118]B14、根據B13所述的裝置,其中,所述拖取模塊還適于:[0119]根據所述第二范圍的劃分狀態(tài)依序從所述拖取節(jié)點拖取每個所述第二范圍對應的結構化數據,其中,所述結構化數據是由所述拖取節(jié)點獲取所述第二范圍對應的文件列表、并利用所述文件列表中的文件生成。[0120]B15、根據B14所述的裝置,其中,所述拖取模塊還適于:[0121]在所述新節(jié)點與所述拖取節(jié)點之間建立長連接;[0122]依序向所述拖取節(jié)點發(fā)送拖取每個所述第二范圍的數據的拖取請求,其中,所述拖取請求中攜帶有所述第二范圍;[0123]接收所述拖取節(jié)點返回的每個所述第二范圍對應的結構化數據。[0124]B16、根據B14或B15所述的裝置,其中,還包括判斷模塊,適于:[0125]在所述拖取模塊每次從所述拖取節(jié)點拖取所述第二范圍對應的結構化數據之后,判斷從所述拖取節(jié)點拖取的所述第二范圍對應的結構化數據是否存在錯誤;[0126]若是,重新從所述拖取節(jié)點拖取所述第二范圍對應的結構化數據;[0127]若否,記錄所述第二范圍的序號,以表明已從所述拖取節(jié)點拖取該序號的第二范圍對應的結構化數據。[0128]B17、根據B16所述的裝置,其中,若所述拖取模塊依序從所述拖取節(jié)點拖取每個所述第二范圍對應的結構化數據的過程中,所述新節(jié)點與所述拖取節(jié)點之間的長連接斷開,且重新建立所述新節(jié)點與所述拖取節(jié)點之間的長連接后,所述拖取模塊還適于:[0129]確定N個所述第二范圍中未記錄序號的第二范圍;[0130]依序從所述拖取節(jié)點拖取每個所述未記錄序號的第二范圍對應的結構化數據,直至從所述拖取節(jié)點拖取所有的所述未記錄序號的第二范圍對應的結構化數據。[0131]B18、根據B14至B17任一項所述的裝置,其中,還包括生成模塊,適于:[0132]在所述拖取模塊每次從所述拖取節(jié)點拖取所述第二范圍對應的結構化數據之后,將所述結構化數據寫入內存表Memtable;[0133]當所述Memtable管理的數據達到預設閾值時,將所述結構化數據刷新到所述新節(jié)點的磁盤上,生成有序字符串表SSTable文件。[0134]B19、根據B18所述的裝置,其中,還包括訪問模塊,適于:[0135]接收訪問所述新節(jié)點的數據的訪問請求,其中,所述訪問請求中攜帶有待訪問數據的標識;[0136]從所述新節(jié)點的SSTable文件中,查詢與所述待訪問數據的標識對應的待訪問數據,進行訪問操作。[0137]B20、根據B12至B19任一項所述的裝置,其中,所述觸發(fā)事件包括:[0138]在所述分布式存儲系統(tǒng)集群中增加新節(jié)點以對所述分布式存儲系統(tǒng)集群進行擴容;或者[0139]在所述分布式存儲系統(tǒng)集群中增加新節(jié)點以頂替所述分布式存儲系統(tǒng)集群的原始節(jié)點中的故障節(jié)點。[0140]B21、根據B12至B20任一項所述的裝置,其中,所述計算模塊還適于:[0141]對所述新節(jié)點分配令牌token;[0142]根據所述token計算所述新節(jié)點在所述分布式存儲系統(tǒng)的環(huán)形存儲空間上管理數據的第一范圍。[0143]B22、根據B12至B22任一項所述的裝置,其中,所述分布式存儲系統(tǒng)為Cassandra系統(tǒng)。【權利要求】1.一種數據拖取的方法,包括:獲取在分布式存儲系統(tǒng)集群中增加新節(jié)點的觸發(fā)事件,計算所述新節(jié)點即將在所述分布式存儲系統(tǒng)的環(huán)形存儲空間上管理數據的第一范圍;從所述分布式存儲系統(tǒng)集群的、保存有所述第一范圍的數據副本的原始節(jié)點中選擇提供所述第一范圍的數據的拖取節(jié)點;將所述第一范圍劃分成N個細粒度的第二范圍,根據所述第二范圍的劃分狀態(tài)分別從所述拖取節(jié)點拖取每個所述第二范圍對應的數據,直至從所述拖取節(jié)點拖取N個所述第二范圍對應的數據。2.根據權利要求1所述的方法,其中,根據所述第二范圍的劃分狀態(tài)分別從所述拖取節(jié)點拖取每個所述第二范圍對應的數據,包括:對N個所述第二范圍進行排序,根據所述第二范圍的劃分狀態(tài)依序從所述拖取節(jié)點拖取每個所述第二范圍對應的數據。3.根據權利要求2所述的方法,其中,根據所述第二范圍的劃分狀態(tài)依序從所述拖取節(jié)點拖取每個所述第二范圍對應的數據,包括:根據所述第二范圍的劃分狀態(tài)依序從所述拖取節(jié)點拖取每個所述第二范圍對應的結構化數據,其中,所述結構化數據是由所述拖取節(jié)點獲取所述第二范圍對應的文件列表、并利用所述文件列表中的文件生成。4.根據權利要求3所述的方法,其中,依序從所述拖取節(jié)點拖取每個所述第二范圍對應的結構化數據,包括:在所述新節(jié)點與所述拖取節(jié)點之間建立長連接;依序向所述拖取節(jié)點發(fā)送拖取每個所述第二范圍的數據的拖取請求,其中,所述拖取請求中攜帶有所述第二范圍;接收所述拖取節(jié)點返回的每個所述第二范圍對應的結構化數據。5.根據權利要求3或4所述的方法,其中,每次從所述拖取節(jié)點拖取所述第二范圍對應的結構化數據之后,還包括:判斷從所述拖取節(jié)點拖取的所述第二范圍對應的結構化數據是否存在錯誤;若是,重新從所述拖取節(jié)點拖取所述第二范圍對應的結構化數據;若否,記錄所述第二范圍的序號,以表明已從所述拖取節(jié)點拖取該序號的第二范圍對應的結構化數據。6.根據權利要求5所述的方法,其中,若依序從所述拖取節(jié)點拖取每個所述第二范圍對應的結構化數據的過程中,所述新節(jié)點與所述拖取節(jié)點之間的長連接斷開,且重新建立所述新節(jié)點與所述拖取節(jié)點之間的長連接后,還包括:確定N個所述第二范圍中未記錄序號的第二范圍;依序從所述拖取節(jié)點拖取每個所述未記錄序號的第二范圍對應的結構化數據,直至從所述拖取節(jié)點拖取所有的所述未記錄序號的第二范圍對應的結構化數據。7.根據權利要求3至6任一項所述的方法,其中,每次從所述拖取節(jié)點拖取所述第二范圍對應的結構化數據之后,還包括:將所述結構化數據寫入內存表Memtable;當所述Memtable管理的數據達到預設閾值時,將所述結構化數據刷新到所述新節(jié)點的磁盤上,生成有序字符串表SSTable文件。8.根據權利要求7所述的方法,其中,還包括:接收訪問所述新節(jié)點的數據的訪問請求,其中,所述訪問請求中攜帶有待訪問數據的標識;從所述新節(jié)點的SSTable文件中,查詢與所述待訪問數據的標識對應的待訪問數據,進行訪問操作。9.根據權利要求1至8任一項所述的方法,其中,所述觸發(fā)事件包括:在所述分布式存儲系統(tǒng)集群中增加新節(jié)點以對所述分布式存儲系統(tǒng)集群進行擴容;或者在所述分布式存儲系統(tǒng)集群中增加新節(jié)點以頂替所述分布式存儲系統(tǒng)集群的原始節(jié)點中的故障節(jié)點。10.一種數據拖取的裝置,包括:計算模塊,適于獲取在分布式存儲系統(tǒng)集群中增加新節(jié)點的觸發(fā)事件,計算所述新節(jié)點即將在所述分布式存儲系統(tǒng)的環(huán)形存儲空間上管理數據的第一范圍;選擇模塊,適于從所述分布式存儲系統(tǒng)集群的、保存有所述第一范圍的數據副本的原始節(jié)點中選擇提供所述第一范圍的數據的拖取節(jié)點;拖取模塊,適于將所述第一范圍劃分成N個細粒度的第二范圍,根據所述第二范圍的劃分狀態(tài)分別從所述拖取節(jié)點拖取每個所述第二范圍對應的數據,直至從所述拖取節(jié)點拖取N個所述第二范圍對應的數據?!疚臋n編號】G06F17/30GK104199992SQ201410510515【公開日】2014年12月10日申請日期:2014年9月28日優(yōu)先權日:2014年9月28日【發(fā)明者】王鋒申請人:北京奇虎科技有限公司,奇智軟件(北京)有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1