TW201640352A - 資料處理方法和流計算系統 - Google Patents

資料處理方法和流計算系統 Download PDF

Info

Publication number
TW201640352A
TW201640352A TW104142282A TW104142282A TW201640352A TW 201640352 A TW201640352 A TW 201640352A TW 104142282 A TW104142282 A TW 104142282A TW 104142282 A TW104142282 A TW 104142282A TW 201640352 A TW201640352 A TW 201640352A
Authority
TW
Taiwan
Prior art keywords
data
checkpoint
valid
batch number
valid data
Prior art date
Application number
TW104142282A
Other languages
English (en)
Other versions
TWI710897B (zh
Inventor
Mei-Fang Li
Pu-Meng Wei
Pei-Le Duan
Shan Li
Original Assignee
Alibaba Group Services Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Services Ltd filed Critical Alibaba Group Services Ltd
Publication of TW201640352A publication Critical patent/TW201640352A/zh
Application granted granted Critical
Publication of TWI710897B publication Critical patent/TWI710897B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Retry When Errors Occur (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申請提出一種資料處理方法和流計算系統,該資料處理方法包括資料接收模組接收到要處理的資料後,將所述資料寫入檔案系統中,並在所述資料被寫入檔案系統後,發送所述資料給邏輯處理模組;邏輯處理模組根據對資料的接收情況獲取有效資料,並且,定期對預設的檢查點進行更新;以及,在發生失效轉移時,確定最新的檢查點,獲取與所述最新的檢查點對應的有效資料,並恢復所述有效資料。該方法能夠滿足對外服務化的訴求,以及在發生失效轉移時避免資料來源頭重發。

Description

資料處理方法和流計算系統
本申請涉及資料處理技術領域,尤其涉及一種資料處理方法和流計算系統。
流計算是指利用分散式的思想和方法,對海量“流”式資料進行即時處理,它源自對海量資料“時效”價值上的挖掘訴求。流計算針對的資料可以稱為流資料,流資料是沒有邊界的、未知的,而計算是事先定義(已知)的,流計算系統按照已定義的計算邏輯來處理流資料。
現在最常用的流計算系統是Storm,在實際應用中常常和消息中間軟體(如Kafka)或儲存系統(如HBase)結合,通過拉資料模式來獲取資料,其缺點在於和消息中間軟體緊耦合,難以滿足對外服務化的訴求。此外,Storm在失效轉移(Failover)時,採用“源頭重發”的消息機制,這種方式的缺點是故障恢復代價高,在某些場景下可能會造成雪崩效應,集群規模在水準擴展性上有較多局限。
本申請旨在至少在一定程度上解決相關技術中的技術問題之一。
為此,本申請的一個目的在於提出一種資料處理方法,該方法在處理流資料時可以滿足對外服務化的訴求,以及在發生失效轉移時避免資料來源頭重發。
本申請的另一個目的在於提出一種流計算系統。
為達到上述目的,本申請第一方面實施例提出的資料處理方法,包括:資料接收模組接收到要處理的資料後,將所述資料寫入檔案系統中,並在所述資料被寫入檔案系統後,發送所述資料給邏輯處理模組;邏輯處理模組根據對資料的接收情況獲取有效資料,並且,定期對預設的檢查點進行更新;以及,在發生失效轉移時,確定最新的檢查點,獲取與所述最新的檢查點對應的有效資料,並恢復所述有效資料。
本申請第一方面實施例提出的資料處理方法,通過不設置消息中間軟體,從而滿足對外服務化的訴求;通過將資料寫入檔案系統中,實現資料落地,進而實現資料與後續的流計算分離,落地的資料可以應用到其他系統;通過記錄檢查點和有效資料,可以在發生失效轉移時,恢復相應的有效資料,避免資料來源頭重發。
為達到上述目的,本申請第二方面實施例提出的流計算系統,包括:資料接收模組和邏輯處理模組;所述資料接收模組用於接收到要處理的資料後,將所述資料寫入檔 案系統中,並在所述資料被寫入檔案系統後,發送所述資料給邏輯處理模組;所述邏輯處理模組用於根據對資料的接收情況獲取有效資料,並且,定期對預設的檢查點進行更新;以及,在發生失效轉移時,確定最新的檢查點,獲取與所述最新的檢查點對應的有效資料,並恢復所述有效資料。
本申請第二方面實施例提出的流計算系統,通過不設置消息中間軟體,從而滿足對外服務化的訴求;通過將資料寫入檔案系統中,實現資料落地,進而實現資料與後續的流計算分離,落地的資料可以應用到其他系統;通過記錄檢查點和有效資料,可以在發生失效轉移時,恢復相應的有效資料,避免資料來源頭重發。
本申請附加的方面和優點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本申請的實踐瞭解到。
31‧‧‧Shard
32‧‧‧AppContainer
33‧‧‧Processors
34‧‧‧分散式檔案系統
50‧‧‧系統
51‧‧‧資料接收模組
52‧‧‧邏輯處理模組
521‧‧‧父單元
522‧‧‧子單元
本申請上述的和/或附加的方面和優點從下面結合附圖對實施例的描述中將變得明顯和容易理解,其中:圖1是本申請一實施例提出的資料處理方法的流程示意圖;圖2是本申請另一實施例提出的資料處理方法的流程示意圖;圖3是圖2對應的流計算系統的結構示意圖; 圖4是本申請實施例中檢查點的示意圖;圖5是本申請另一實施例提出的流計算系統的結果示意圖;圖6是本申請另一實施例提出的流計算系統的結果示意圖。
下面詳細描述本申請的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的模組或具有相同或類似功能的模組。下面通過參考附圖描述的實施例是示例性的,僅用於解釋本申請,而不能理解為對本申請的限制。相反,本申請的實施例包括落入所附加申請專利範圍的精神和內涵範圍內的所有變化、修改和等同物。
圖1是本申請一實施例提出的資料處理方法的流程示意圖,該方法可以應用到流計算系統中,用於流資料的處理,該方法包括:S11:資料接收模組接收到要處理的資料後,將所述資料寫入檔案系統中,並在所述資料被寫入檔案系統後,發送所述資料給邏輯處理模組。
要處理的資料可以是流資料。
檔案系統可以具體是指分散式檔案系統,分散式檔案系統(Distributed File System)是指檔案系統管理的物理儲存資源不一定直接連接在本地節點上,而是通過電腦網 路與節點相連。
現有技術中,流資料通過消息中間軟體傳輸給流計算系統,而本實施例中,沒有設置消息中間軟體,支援兩種資料接入方式,一種是推,用戶從自己的資料來源,通過Restful API把資料推(push)過來,此時邏輯由使用者在外部實現;另一種是拉,此時用戶只需要在自己的資料來源開放拉資料的介面,在本系統的拓撲(topology)中實現拉資料的邏輯即可獲取資料。無論哪種方式都不依賴特定的消息中間軟體,不同使用者可以使用不同的資料來源。資料接收模組通過提供Restful API實現對外服務。
另外,本實施例通過將資料寫入檔案系統中,可以實現資料落地,寫入檔案系統中的資料還可以用於其他系統,例如,寫入檔案系統的資料作為批量計算的來源資料。
資料接收模組在將資料寫入檔案系統後,將資料發送給邏輯處理模組進行具體的流計算。
可選的,所述將所述資料寫入檔案系統中,包括:將所述資料以記錄為細微性進行劃分,得到至少一條記錄,並為每條記錄生成版本號,以及將所述記錄與所述版本號對應寫入檔案系統中。
可選的,所述發送所述資料給邏輯處理模組,包括:將所述資料以塊為細微性進行劃分,得到至少一個塊,並為每個塊生成塊標識,以及將所述塊與所述塊標識對應發送給邏輯處理模組,其中,每個塊包括至少一條記 錄。
S12:邏輯處理模組根據對資料的接收情況獲取有效資料,並且,定期對預設的檢查點進行更新;以及,在發生失效轉移時,確定最新的檢查點,獲取與所述最新的檢查點對應的有效資料,並恢復所述有效資料。
其中,有效資料是指未發生丟失且不重複(簡稱為不丟不重)的資料。
接收情況可以包括:接收到未發生丟失且不重複的資料,發生資料丟失或者發生資料重複。其中,當發生資料丟失時,可以通過補資料保證不丟失,發生資料重複時,通過資料去重保證不重複。
可選的,所述根據對資料的接收情況獲取有效資料,包括:判斷是否發生資料丟失和資料重複中的至少一項;如果未發生資料丟失和資料重複中的任一項,則將接收的未丟失且不重複的資料,確定為有效資料;如果發生資料丟失和資料重複中的至少一項,則對應執行如下項中的至少一項,並將處理後的資料確定為有效資料:如果發生資料丟失,則確定丟失的版本號,並從所述檔案系統中補入所述丟失的版本號對應的資料;如果發生資料重複,則去掉重複的資料。
可選的,所述記錄所述有效資料,包括:將所述有效資料記錄在重做日誌檔中,所述重做日誌 檔中還包含所述有效資料對應的重做日誌檔中繼資料;且,所述檢查點中包含重做日誌檔中繼資料;所述獲取與所述最新的檢查點對應的有效資料,包括:根據所述最新的檢查點中包含的重做日誌檔中繼資料,從所述重做日誌檔中,獲取與所述重做日誌檔中繼資料對應的有效資料。
具體的,本實施例中可以設置檢查點(CheckPoint),檢查點中可以記錄重做日誌檔中繼資料(RedoLogMeta),以及有效資料可以記錄在重做日誌檔(RedoLog)中,並與RedoLogMeta對應記錄。因此,在發生失效轉移(Failover)時,可以先查找到CheckPoint中記錄的RedoLogMeta,再在RedoLog中查找到與查找到的RedoLogMeta對應的有效資料,並恢復查找到的有效資料,從而可以避免源頭重發。
本實施例中,通過不設置消息中間軟體,從而滿足對外服務化的訴求;通過將資料寫入檔案系統中,實現資料落地,進而實現資料與後續的流計算分離,落地的資料可以應用到其他系統;通過記錄檢查點和有效資料,可以在發生失效轉移時,恢復相應的有效資料,避免資料來源頭重發。
圖2是本申請另一實施例提出的資料處理方法的流程示意圖,圖3是圖2對應的流計算系統的結構示意圖。
通常流計算系統包括作為前端(frontend)的超文字 傳輸協定(HyperText Transfer Protocol,HTTP)伺服器,以及作為後端(backend)的用於處理資料以及應用邏輯的伺服器。
本實施例中主要針對用於處理資料以及應用邏輯的伺服器進行優化,因此,為了簡化說明,本實施例中的流計算系統具體是指用於處理資料以及應用邏輯的伺服器。
本實施例的流計算系統可以包括資料接收模組和邏輯處理模組,資料接收模組和邏輯處理模組可以由軟體實現,當然,可以理解的是,該軟體也可以基於硬體資源安裝以及運行。參見圖3,資料接收模組用Shard 31表示,邏輯處理模組包括:AppContainer 32和Processors 33。AppContainer(作業容器)包含多個Task運行實例,Processors(處理器組)包含多個Processor(處理器),每個Processor對應一個Task運行實例,Task是資料和應用邏輯處理的抽象單元。
另外,參見圖3,流計算系統還包括:分散式檔案系統34。
流計算中,每個應用實現的計算邏輯稱為拓撲(Topology),一個Topology可以包含多級任務(Task),Task是流計算中的邏輯處理單元,一個Task可以有多個物理運行實例(instance)。
本實施例的流計算系統支援多級Task,由於通常首級Task處理的資料格式和處理邏輯比較特殊,因此,本實施例中,將Task分為首級Task和非首級Task,相應 的,邏輯處理模組分為用於處理首級Task的邏輯處理模組和用於處理非首級Task的邏輯處理模組。如圖3所示,用於處理首級Task的邏輯處理模組用AppContainer表示,用於處理非首級Task的邏輯處理模組用Processors表示。
資料處理涉及三個功能元件:Shard、AppContainer和Processors。Shard用於接收用戶端資料,它先把資料寫到分散式檔案系統中,保證資料正常落地(這一層落地的資料同時可以用於其他服務,比如離線計算),然後再發送給AppContainer。一個AppContainer包含一個或多個Task的運行實例。Task是流計算中的邏輯處理單元,一個Task可以有多個實體運行實例(Instance)。由於首級Task處理的資料格式和處理邏輯的特殊性,所以把它和其他Task區別開。其他的Task都在功能模組Processors中。每個Processor接收到資料後,會先寫RedoLog(通常稱為重做日誌檔),該RedoLog類似於傳統資料庫的RedoLog,它包含資料及其元資訊,可以在發生失效轉移(failover)時用於恢復系統,再把資料發給Task執行計算處理。Task之間的資料流程稱為Pipe(資料管道)。
參見圖2,本實施例的資料處理流程包括:
S201:Shard接收到資料後,為資料分配版本號,並將資料與版本號對應寫入分散式檔案系統中。
其中,資料可以具體是指流資料,參見圖3,流資料 可以來自上游業務。
版本號可以用<BatchID,SequenceID>表示。BatchID和時間軸相關,比如每100ms遞增一次,SequenceID表示一條記錄在這個Batch中的序號。分散式檔案系統中,可以以記錄(record)為細微性記錄資料,每條記錄由一個版本號<BatchID,SequenceID>唯一標識。
S202:Shard將資料寫入分散式檔案系統後,將資料發送給AppContainer。
本實施例中,Shard將資料發送給AppContainer時,可以以塊(Block)為單位進行資料傳輸,每個塊包括一條或者多條記錄(record),每個塊對應唯一的塊標識(BlockID)。
Shard在傳輸資料之前,可以將一條或多條記錄封裝為一個資料塊(Block)(以下可以簡稱為塊),並為每個塊分配唯一的塊標識。Shard還可以維護一個塊緩衝區(Block Buffer),塊緩衝區用於緩衝資料塊,例如,Shard在將資料封裝為塊後,可以將塊(Block)緩衝到記憶體中,背景執行緒會不斷讀取緩衝到記憶體中的塊並廣播發給AppContainer。
Shard先把資料寫到分散式檔案系統中,落地成功後再發給流計算處理,這種方式可以實現資料落地和流計算處理分離,保證資料正常落地,不會受到後續流計算的影響(比如系統Failover)。
S203:AppContainer獲取不丟不重的資料後,發送給 本機的Task進行處理。
其中,AppContainer會保存已接收的最新塊標識(LatestBlockID),當接收到的BlockID<=LatestBlockID時,它會判斷該Block為重復資料,直接丟棄,保證資料不重。
BlockID是連續值,當BlockID>LatestBlockID+1時,則表示中間資料丟失(在兩種情況下會發生,一是buffer滿時會丟掉部分資料,二是網路異常),AppContainer會通過讀取Shard落地的資料來補資料,保證資料不丟。例如,AppContainer接收的資料不僅包括BlockID,還包括版本號<BatchID,SequenceID>,在發現資料丟失後,可以先確定丟失資料的<BatchID,SequenceID>,之後再從分散式檔案系統中獲取丟失資料的<BatchID,SequenceID>對應的資料,實現補資料。
AppContainer可以通過檔案控制代碼將不丟不重的資料發送給本機的Task。
S204:Task對資料進行處理,把處理後的需要發送給下一級Task的資料向上發送給Appcontainer。
由於系統對外服務,Task中運行著使用者代碼,為了保證系統安全,Task是在受限的沙箱環境中運行,禁止存取網路,所以每級Task是通過把資料向上發送給本機的AppContainer或Processor進行中轉,再發送給下一級Task。
由於Task的資料是來自本機的AppContainer,在 AppContainer保證資料不丟後,Task也可以保證資料不丟,該步驟只需再保證資料不重。Task會持有已接收的最新版本號<LatestBatchID,LastetSequenceID>。類似地,通過比較接收到版本號的和最新版本號,可以判斷資料是否重複並去重。
S205:如果下一級Task位於processor內,AppContainer將資料發送給Processor。
S206:Processor對資料進行去重處理,把去重後的資料寫入分散式檔案系統內的RedoLog中。
由於對一條記錄的處理,系統支援輸出多條記錄,因此對版本號添加一個標記OutputID,即版本號<BatchID,SequenceID,OutputID>可以唯一標識輸出的一條資料。Processor保存了最新的版本號<LatestBatchID,LatestSequenceID,LatestOutputID>,在接收到資料後,它會先通過版本號進行去重,然後寫RedoLog。
另外,Shard在寫資料時,具體也可以是寫入分散式檔案系統內的Shard對應的RedoLog中。
Processor保存了接收到的資料的<BatchID,SequenceID,OutputID>,這個三元組是有序遞增的。當Processor接收資料時,會先通過版本號<BatchID,SequenceID,OutputID>判斷資料是否重複,如果重複則丟棄,保證不重;如果是新資料,則會把資料寫到分散式檔案系統中,然後返回給AppContainer成功,保證不丟。基於以上分析,RedoLog可以保證資料不丟不重。
S207:Processor在將資料寫入RedoLog後,將資料發送給本機的Task進行處理。
另外,在發生失效轉移(Failover)時,如果Processor發現資料丟失,則可以從之前記錄的RedoLog中讀取資料。
S208:Task對資料進行處理,把處理後的需要發送給下一級Task的資料向上發送給Processor。
S209:如果下一級Task位於Processor內,Processor將資料發送給下一級的Processor。
S207-S209的具體內容可以參照AppContainer的流程類似處理。
需要說明的是,由於Task是運行在AppContainer或Processor中的,因此,本實施例中接收到資料並將資料發送給本機Task的AppContainer可以具體是指AppContainer內的父進程(或者稱為父單元),AppContainer內的Task是子進程(或者稱為子單元),類似的,接收到資料並將資料發送給本機Task的Processor可以具體是指Processor內的父進程(或者稱為父單元),Processor內的task是子進程(或者稱為子單元)。
另外,在上述的資料處理過程中,Shard會定時寫CheckPoint,比如Shard的CheckPoint資訊如下: { "BlockID": 10, "BatchID": 1, "SequenceID": 1, "TimestampForBatch": 1426622776, "ShardID": 123, "RedoLogMeta": { "DirID": 12, "DirName": "/stream_demo/test", "FileID": 17, "Offset": 134217728 } }
另外,邏輯處理模組內部包括父單元和子單元,例如,上述的AppContainer是父單元,AppContainer內的Task是對應AppContainer的子單元,上述的Processor是父單元,Processor內的Task是對應Processor的子單元。
對應父單元,所述定期對預設的檢查點進行更新,包括:定期生成檢查點,並判斷是否需要對生成的檢查點進行持久化;如果確定需要對生成的檢查點進行持久化,將預設的檢查點更新為需要持久化的檢查點。
可選的,在記錄所述有效資料時還記錄所述有效資料的版本號,所述版本號包括批編號,所述判斷是否需要對生成的檢查點進行持久化,包括: 獲取第一批編號和第二批編號,所述第一批編號是所述父單元自身記錄的最新的有效資料的批編號,所述第二批編號是所述子單元記錄的最新的有效資料的批編號;如果所述第一批編號小於或等於所述第二批編號,確定需要對生成的檢查點進行持久化。
可選的,當所述第一批編號大於所述第二批編號時,所述方法還包括:所述父單元在恢復自身的有效資料後,繼續獲取新資料,並將所述新資料發送給所述子單元;所述子單元在恢復自身的有效資料後,對接收的新資料中的重復資料進行去重處理。
具體的,Task會根據使用者邏輯,寫CheckPoint。AppContainter會定時生成CheckPoint,它會依賴Task的CheckPoint中BatchID,判斷是否要對自己的CheckPoint持久化。當AppContainer的CheckPoint BatchID<=TaskCheckPoint BatchID時,AppContainer會寫CheckPoint;否則判斷生成的CheckPoint無效,不做持久化。
這樣在Failover時,AppContainer和Task分別載入自己的CheckPoint恢復快照,AppContainer會重複發送部分資料(如圖4中重發部分),Task通過比較版本號,丟棄重復資料。
Processor的寫CheckPoint機制和AppContainer類似。
這樣在整個過程中,通過RedoLog、CheckPoint和版 本號,保證流資料處理的不丟不重,並且在Failover時,可以通過RedoLog和CheckPoint快速恢復,避免了從源頭重發資料。
本實施例中,Shard將資料寫入分散式檔案系統,實現資料落地;通過為資料分配版本號以及塊標識,保證資料不丟不重;通過CheckPoint和RedoLog避免源頭重發。
圖5是本申請另一實施例提出的流計算系統的結果示意圖,該系統50包括:資料接收模組51和邏輯處理模組52。
所述資料接收模組51用於接收到要處理的資料後,將所述資料寫入檔案系統中,並在所述資料被寫入檔案系統後,發送所述資料給邏輯處理模組52;要處理的資料可以是流資料。
檔案系統可以具體是指分散式檔案系統,分散式檔案系統(Distributed File System)是指檔案系統管理的實體儲存資源不一定直接連接在本地節點上,而是通過電腦網路與節點相連。
現有技術中,流資料通過消息中間軟體傳輸給流計算系統,而本實施例中,沒有設置消息中間軟體,支援兩種資料接入方式,一種是推,用戶從自己的資料來源,通過Restful API把資料推(push)過來,此時邏輯由使用者在外部實現;另一種是拉,此時用戶只需要在自己的資料來源開放拉資料的介面,在本系統的拓撲(topology)中實 現拉資料的邏輯即可獲取資料。無論哪種方式都不依賴特定的消息中間軟體,不同使用者可以使用不同的資料來源。資料接收模組通過提供Restful API實現對外服務。
另外,本實施例通過將資料寫入檔案系統中,可以實現資料落地,寫入檔案系統中的資料還可以用於其他系統,例如,寫入檔案系統的資料作為批量計算的來源資料。
資料接收模組在將資料寫入檔案系統後,將資料發送給邏輯處理模組進行具體的流計算。
可選的,所述資料接收模組51用於將所述資料寫入檔案系統中,包括:將所述資料以記錄為細微性進行劃分,得到至少一條記錄,並為每條記錄生成版本號,以及將所述記錄與所述版本號對應寫入檔案系統中。
可選的,所述資料接收模組51用於發送所述資料給邏輯處理模組,包括:將所述資料以塊為細微性進行劃分,得到至少一個塊,並為每個塊生成塊標識,以及將所述塊與所述塊標識對應發送給邏輯處理模組,其中,每個塊包括至少一條記錄。
本實施例中的資料接收模組對應上述方法實施例中的Shard,具體流程可以參見方法實施例,在此不再贅述。
所述邏輯處理模組52用於根據對資料的接收情況獲取有效資料,並且,定期對預設的檢查點進行更新;以 及,在發生失效轉移時,確定最新的檢查點,獲取與所述最新的檢查點對應的有效資料,並恢復所述有效資料。
其中,有效資料是指未發生丟失且不重複(簡稱為不丟不重)的資料。
接收情況可以包括:接收到未發生丟失且不重複的資料,發生資料丟失或者發生資料重複。其中,當發生資料丟失時,可以通過補資料保證不丟失,發生資料重複時,通過資料去重保證不重複。
可選的,所述邏輯處理模組52用於根據對資料的接收情況獲取有效資料,包括:判斷是否發生資料丟失和資料重複中的至少一項;如果未發生資料丟失和資料重複中的任一項,則將接收的未丟失且不重複的資料,確定為有效資料;如果發生資料丟失和資料重複中的至少一項,則對應執行如下項中的至少一項,並將處理後的資料確定為有效資料:如果發生資料丟失,則確定丟失的版本號,並從所述檔案系統中補入所述丟失的版本號對應的資料;如果發生資料重複,則去掉重複的資料。
可選的,所述邏輯處理模組52用於記錄所述有效資料,包括:將所述有效資料記錄在重做日誌檔中,所述重做日誌檔中還包含所述有效資料對應的重做日誌檔中繼資料;且,所述檢查點中包含重做日誌檔中繼資料; 所述邏輯處理模組用於獲取與所述最新的檢查點對應的有效資料,包括:根據所述最新的檢查點中包含的重做日誌檔中繼資料,從所述重做日誌檔中,獲取與所述重做日誌檔中繼資料對應的有效資料。
具體的,本實施例中可以設置檢查點(CheckPoint),檢查點中可以記錄重做日誌檔中繼資料(RedoLogMeta),以及有效資料可以記錄在重做日誌檔(RedoLog)中,並與RedoLogMeta對應記錄。因此,在發生失效轉移(Failover)時,可以先查找到CheckPoint中記錄的RedoLogMeta,再在RedoLog中查找到與查找到的RedoLogMeta對應的有效資料,並恢復查找到的有效資料,從而可以避免源頭重發。
參見圖6,所述邏輯處理模組52內部包括父單元521和子單元522,所述父單元521用於定期對預設的檢查點進行更新,包括:定期生成檢查點,並判斷是否需要對生成的檢查點進行持久化;如果確定需要對生成的檢查點進行持久化,將預設的檢查點更新為需要持久化的檢查點。
可選的,所述父單元521用於判斷是否需要對生成的檢查點進行持久化,包括:獲取第一批編號和第二批編號,所述第一批編號是所述父單元自身記錄的最新的有效資料的批編號,所述第二 批編號是所述子單元記錄的最新的有效資料的批編號;如果所述第一批編號小於或等於所述第二批編號,確定需要對生成的檢查點進行持久化。
可選的,當所述第一批編號大於所述第二批編號時,所述父單元521還用於:在恢復自身的有效資料後,繼續獲取新資料,並將所述新資料發送給所述子單元;所述子單元522還用於:在恢復自身的有效資料後,對接收的新資料中的重復資料進行去重處理。
本實施例中的邏輯處理模組可以對應方法實施例中的AppContainer和Processors,父單元和子單元分別是指AppContainer和本機內的Task,以及Processor和本機內的Task,具體流程可以參見方法實施例,在此不再贅述。
本實施例中,通過不設置消息中間軟體,從而滿足對外服務化的訴求;通過將資料寫入檔案系統中,實現資料落地,進而實現資料與後續的流計算分離,落地的資料可以應用到其他系統;通過記錄檢查點和有效資料,可以在發生失效轉移時,恢復相應的有效資料,避免資料來源頭重發。
需要說明的是,在本申請的描述中,術語“第一”、“第二”等僅用於描述目的,而不能理解為指示或暗示相對重要性。此外,在本申請的描述中,除非另有說明,“多個”的含義是指至少兩個。
流程圖中或在此以其他方式描述的任何過程或方法描 述可以被理解為,表示包括一個或更多個用於實現特定邏輯功能或過程的步驟的可執行指令的代碼的模組、片段或部分,並且本申請的優選實施方式的範圍包括另外的實現,其中可以不按所示出或討論的順序,包括根據所涉及的功能按基本同時的方式或按相反的順序,來執行功能,這應被本申請的實施例所屬技術領域的技術人員所理解。
應當理解,本申請的各部分可以用硬體、軟體、韌體或它們的組合來實現。在上述實施方式中,多個步驟或方法可以用儲存在記憶體中且由合適的指令執行系統執行的軟體或韌體來實現。例如,如果用硬體來實現,和在另一實施方式中一樣,可用本領域公知的下列技術中的任一項或他們的組合來實現:具有用於對資料信號實現邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用積體電路,可程式設計閘陣列(PGA),現場可程式設計閘陣列(FPGA)等。
所屬技術領域中具有通常知識者可以理解實現上述實施例方法攜帶的全部或部分步驟是可以通過程式來指令相關的硬體完成,所述的程式可以儲存於一種電腦可讀儲存媒介中,該程式在執行時,包括方法實施例的步驟之一或其組合。
此外,在本申請各個實施例中的各功能單元可以整合在一個邏輯處理模組中,也可以是各個單元單獨實體存在,也可以兩個或兩個以上單元整合在一個模組中。上述整合的模組既可以採用硬體的形式實現,也可以採用軟體 功能模組的形式實現。所述整合的模組如果以軟體功能模組的形式實現並作為獨立的產品銷售或使用時,也可以儲存在一個電腦可讀取儲存媒介中。
上述提到的儲存媒介可以是唯讀記憶體,磁片或光碟等。
在本說明書的描述中,參考術語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結合該實施例或示例描述的具體特徵、結構、材料或者特點包含於本申請的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特徵、結構、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結合。
儘管上面已經示出和描述了本申請的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本申請的限制,本領域的普通技術人員在本申請的範圍內可以對上述實施例進行變化、修改、替換和變型。

Claims (15)

  1. 一種資料處理方法,其特徵在於,包括:資料接收模組接收到要處理的資料後,將所述資料寫入檔案系統中,並在所述資料被寫入檔案系統後,發送所述資料給邏輯處理模組;邏輯處理模組根據對資料的接收情況獲取有效資料,並且,定期對預設的檢查點進行更新;以及,在發生失效轉移時,確定最新的檢查點,獲取與所述最新的檢查點對應的有效資料,並恢復所述有效資料。
  2. 根據請求項1所述的方法,其中,所述將所述資料寫入檔案系統中,包括:將所述資料以記錄為細微性進行劃分,得到至少一條記錄,並為每條記錄生成版本號,以及將所述記錄與所述版本號對應寫入檔案系統中。
  3. 根據請求項2所述的方法,其中,所述發送所述資料給邏輯處理模組,包括:將所述資料以塊為細微性進行劃分,得到至少一個塊,並為每個塊生成塊標識,以及將所述塊與所述塊標識對應發送給邏輯處理模組,其中,每個塊包括至少一條記錄。
  4. 根據請求項1所述的方法,其中,所述根據對資料的接收情況獲取有效資料,包括:判斷是否發生資料丟失和資料重複中的至少一項;如果未發生資料丟失和資料重複中的任一項,則將接 收的未丟失且不重複的資料,確定為有效資料;如果發生資料丟失和資料重複中的至少一項,則對應執行如下項中的至少一項,並將處理後的資料確定為有效資料:如果發生資料丟失,則確定丟失的版本號,並從所述檔案系統中補入所述丟失的版本號對應的資料;如果發生資料重複,則去掉重複的資料。
  5. 根據請求項1所述的方法,其中,所述邏輯處理模組內部包括父單元和子單元,對應父單元,所述定期對預設的檢查點進行更新,包括:定期生成檢查點,並判斷是否需要對生成的檢查點進行持久化;如果確定需要對生成的檢查點進行持久化,將預設的檢查點更新為需要持久化的檢查點。
  6. 根據請求項5所述的方法,其中,在記錄所述有效資料時還記錄所述有效資料的版本號,所述版本號包括批編號,所述判斷是否需要對生成的檢查點進行持久化,包括:獲取第一批編號和第二批編號,所述第一批編號是所述父單元自身記錄的最新的有效資料的批編號,所述第二批編號是所述子單元記錄的最新的有效資料的批編號;如果所述第一批編號小於或等於所述第二批編號,確定需要對生成的檢查點進行持久化。
  7. 根據請求項6所述的方法,其中,當所述第一批 編號大於所述第二批編號時,所述方法還包括:所述父單元在恢復自身的有效資料後,繼續獲取新資料,並將所述新資料發送給所述子單元;所述子單元在恢復自身的有效資料後,對接收的新資料中的重復資料進行去重處理。
  8. 根據請求項1所述的方法,其中,所述記錄所述有效資料,包括:將所述有效資料記錄在重做日誌檔中,所述重做日誌檔中還包含所述有效資料對應的重做日誌檔中繼資料;且,所述檢查點中包含重做日誌檔中繼資料;所述獲取與所述最新的檢查點對應的有效資料,包括:根據所述最新的檢查點中包含的重做日誌檔中繼資料,從所述重做日誌檔中,獲取與所述重做日誌檔中繼資料對應的有效資料。
  9. 一種流計算系統,其特徵在於,包括:資料接收模組和邏輯處理模組;所述資料接收模組用於接收到要處理的資料後,將所述資料寫入檔案系統中,並在所述資料被寫入檔案系統後,發送所述資料給邏輯處理模組;所述邏輯處理模組用於根據對資料的接收情況獲取有效資料,並且,定期對預設的檢查點進行更新;以及,在發生失效轉移時,確定最新的檢查點,獲取與所述最新的檢查點對應的有效資料,並恢復所述有效資料。
  10. 根據請求項9所述的系統,其中,所述資料接收模組用於將所述資料寫入檔案系統中,包括:將所述資料以記錄為細微性進行劃分,得到至少一條記錄,並為每條記錄生成版本號,以及將所述記錄與所述版本號對應寫入檔案系統中。
  11. 根據請求項10所述的系統,其中,所述資料接收模組用於發送所述資料給邏輯處理模組,包括:將所述資料以塊為細微性進行劃分,得到至少一個塊,並為每個塊生成塊標識,以及將所述塊與所述塊標識對應發送給邏輯處理模組,其中,每個塊包括至少一條記錄。
  12. 根據請求項9所述的系統,其中,所述邏輯處理模組用於根據對資料的接收情況獲取有效資料,包括:判斷是否發生資料丟失和資料重複中的至少一項;如果未發生資料丟失和資料重複中的任一項,則將接收的未丟失且不重複的資料,確定為有效資料;如果發生資料丟失和資料重複中的至少一項,則對應執行如下項中的至少一項,並將處理後的資料確定為有效資料:如果發生資料丟失,則確定丟失的版本號,並從所述檔案系統中補入所述丟失的版本號對應的資料;如果發生資料重複,則去掉重複的資料。
  13. 根據請求項9所述的系統,其中,所述邏輯處理模組內部包括父單元和子單元,所述父單元用於定期對預 設的檢查點進行更新,包括:定期生成檢查點,並判斷是否需要對生成的檢查點進行持久化;如果確定需要對生成的檢查點進行持久化,將預設的檢查點更新為需要持久化的檢查點。
  14. 根據請求項13所述的系統,其中,所述父單元用於判斷是否需要對生成的檢查點進行持久化,包括:獲取第一批編號和第二批編號,所述第一批編號是所述父單元自身記錄的最新的有效資料的批編號,所述第二批編號是所述子單元記錄的最新的有效資料的批編號;如果所述第一批編號小於或等於所述第二批編號,確定需要對生成的檢查點進行持久化。
  15. 根據請求項14所述的系統,其中,當所述第一批編號大於所述第二批編號時,所述父單元還用於:在恢復自身的有效資料後,繼續獲取新資料,並將所述新資料發送給所述子單元;所述子單元還用於:在恢復自身的有效資料後,對接收的新資料中的重復資料進行去重處理。
TW104142282A 2015-05-14 2015-12-16 資料處理方法和流計算系統 TWI710897B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201510246697.5 2015-05-14
CN201510246697.5A CN106294357B (zh) 2015-05-14 2015-05-14 数据处理方法和流计算***

Publications (2)

Publication Number Publication Date
TW201640352A true TW201640352A (zh) 2016-11-16
TWI710897B TWI710897B (zh) 2020-11-21

Family

ID=57249533

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104142282A TWI710897B (zh) 2015-05-14 2015-12-16 資料處理方法和流計算系統

Country Status (5)

Country Link
US (1) US10877935B2 (zh)
EP (1) EP3295294A4 (zh)
CN (1) CN106294357B (zh)
TW (1) TWI710897B (zh)
WO (1) WO2016183507A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108073642A (zh) * 2016-11-18 2018-05-25 阿里巴巴集团控股有限公司 数据写入和读取的方法、装置及***、数据交互***
TWI626548B (zh) * 2017-03-31 2018-06-11 東森信息科技股份有限公司 資料收集與儲存系統及其方法

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106817295B (zh) * 2016-12-08 2020-06-05 上海有孚网络股份有限公司 一种消息处理装置和方法
US10447763B2 (en) * 2016-12-08 2019-10-15 Nanning Fugui Precision Industrial Co., Ltd. Distributed storage method and system
CN106775989B (zh) * 2016-12-31 2019-07-02 北京神州绿盟信息安全科技股份有限公司 一种job控制方法及装置
CN106874133B (zh) * 2017-01-17 2020-06-23 北京百度网讯科技有限公司 流式计算***中计算节点的故障处理
CN107689958B (zh) * 2017-09-03 2021-07-13 中国南方电网有限责任公司 一种应用于云审计***的网络审计子***
CN108270860A (zh) * 2018-01-16 2018-07-10 宇星科技发展(深圳)有限公司 环境质量在线监测数据的采集***及方法
CN108600300B (zh) * 2018-03-06 2021-11-12 北京思空科技有限公司 日志数据处理方法及装置
CN110213317B (zh) * 2018-07-18 2021-10-29 腾讯科技(深圳)有限公司 消息存储的方法、装置及存储介质
US10965750B2 (en) * 2018-09-27 2021-03-30 International Business Machines Corporation Distributed management of dynamic processing element connections in streaming applications
CN110032569B (zh) * 2019-01-17 2023-06-27 创新先进技术有限公司 变更数据检查方法、装置、设备及***
CN110046131A (zh) * 2019-01-23 2019-07-23 阿里巴巴集团控股有限公司 数据的流式处理方法、装置及分布式文件***hdfs
CN111125121B (zh) * 2020-03-30 2020-07-03 四川新网银行股份有限公司 基于HBase表的实时数据显示方法
CN111209299A (zh) * 2020-04-20 2020-05-29 四川新网银行股份有限公司 金融反欺诈的实时判断方法
CN113064869B (zh) * 2021-03-23 2023-06-13 网易(杭州)网络有限公司 日志处理方法、装置、发送端、接收端设备及存储介质
CN113821407B (zh) * 2021-09-15 2023-08-01 浙江浙大网新软件产业集团有限公司 一种Storm分布式实时计算方法及***
CN116662325B (zh) * 2023-07-24 2023-11-10 宁波森浦信息技术有限公司 一种数据处理方法及***

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5403639A (en) * 1992-09-02 1995-04-04 Storage Technology Corporation File server having snapshot application data groups
US5913927A (en) * 1995-12-15 1999-06-22 Mylex Corporation Method and apparatus for management of faulty data in a raid system
EP0936617A1 (en) 1998-02-12 1999-08-18 Hewlett-Packard Company Write pass identifier
US6144999A (en) * 1998-05-29 2000-11-07 Sun Microsystems, Incorporated Method and apparatus for file system disaster recovery
CN1691643B (zh) * 1999-03-30 2010-05-12 松下电器产业株式会社 数据处理***、数据发送/接收设备和记录媒体
US20030088807A1 (en) * 2001-11-07 2003-05-08 Mathiske Bernd J.W. Method and apparatus for facilitating checkpointing of an application through an interceptor library
EP1364531B1 (en) * 2001-11-30 2005-04-06 Matsushita Electric Industrial Co., Ltd. A method and an apparatus for stream conversion, a method and an apparatus for data recording, and data recording medium
US20030225899A1 (en) * 2002-05-28 2003-12-04 Murphy Walter Vincent Enhancing system performance using a network-based multi-processing technique
US7627688B1 (en) 2002-07-09 2009-12-01 Vignette Corporation Method and system for detecting gaps in a data stream
JP3974538B2 (ja) * 2003-02-20 2007-09-12 株式会社日立製作所 情報処理システム
US8452929B2 (en) * 2005-04-21 2013-05-28 Violin Memory Inc. Method and system for storage of data in non-volatile media
US20060271457A1 (en) * 2005-05-26 2006-11-30 Romain Martin R Identity theft monitoring and prevention
WO2008126493A1 (ja) * 2007-04-09 2008-10-23 Mitsubishi Electric Corporation 情報記録装置、情報記録方法、情報記録媒体、情報再生装置、情報再生方法、情報伝送装置、及び情報伝送方法
US9047305B2 (en) * 2012-11-12 2015-06-02 Quantum Corporation Methods and systems for vectored data de-duplication
CN100583051C (zh) * 2008-03-10 2010-01-20 清华大学 检查点容错技术中文件状态一致性维护的实现方法
US20090276476A1 (en) 2008-05-05 2009-11-05 Chris Jolly Peer-to-peer data archiving and retrieval system
US8639592B1 (en) * 2008-06-20 2014-01-28 Card Compliant, LLC Methods and systems for optimizing escheat and derecognition of prepaid cards, stored value cards, credit memos and electronic payment instruments
US8099571B1 (en) * 2008-08-06 2012-01-17 Netapp, Inc. Logical block replication with deduplication
US9178935B2 (en) * 2009-03-05 2015-11-03 Paypal, Inc. Distributed steam processing
US8731190B2 (en) * 2009-06-09 2014-05-20 Emc Corporation Segment deduplication system with encryption and compression of segments
US8880725B2 (en) * 2010-05-26 2014-11-04 Microsoft Corporation Continuous replication for session initiation protocol based communication systems
US20110307444A1 (en) * 2010-06-11 2011-12-15 Microsoft Corporation Replicating server configuration data in distributed server environments
US8224780B2 (en) * 2010-06-15 2012-07-17 Microsoft Corporation Checkpoints for a file system
US8280860B2 (en) * 2010-11-15 2012-10-02 Quantum Corporation Method for increasing deduplication speed on data streams fragmented by shuffling
US8639919B2 (en) * 2011-01-18 2014-01-28 Via Technologies, Inc. Tracer configuration and enablement by reset microcode
US8713282B1 (en) 2011-03-31 2014-04-29 Emc Corporation Large scale data storage system with fault tolerance
US9251021B2 (en) 2011-05-23 2016-02-02 Bradley Gene Calder Asynchronous replication in a distributed storage environment
US8706710B2 (en) * 2011-05-24 2014-04-22 Red Lambda, Inc. Methods for storing data streams in a distributed environment
US8924366B2 (en) * 2011-09-16 2014-12-30 Symantec Corporation Data storage deduplication systems and methods
US8762718B2 (en) * 2012-08-03 2014-06-24 Palo Alto Research Center Incorporated Broadcast deduplication for satellite broadband
CN103631815B (zh) * 2012-08-27 2018-01-12 深圳市腾讯计算机***有限公司 块同步并行计算中实现检查点的方法、装置和***
CN102937964B (zh) * 2012-09-28 2015-02-11 无锡江南计算技术研究所 基于分布式***的智能数据服务方法
EP2765524B1 (en) * 2012-12-12 2017-02-22 Huawei Technologies Co., Ltd. Data processing method and device in cluster system
KR102025757B1 (ko) * 2013-07-10 2019-09-27 삼성전자주식회사 데이터 전송 방법 및 장치, 데이터 수신 방법 및 장치 및 기록 매체
US9098453B2 (en) * 2013-07-11 2015-08-04 International Business Machines Corporation Speculative recovery using storage snapshot in a clustered database
US20150178164A1 (en) * 2013-12-19 2015-06-25 Violin Memory Inc. Reconstructing an indirection table from logged media addresses
CN103984609B (zh) * 2014-05-28 2017-06-16 华为技术有限公司 一种基于写时复制的文件***中回收检查点的方法和装置
US11341288B2 (en) * 2014-06-06 2022-05-24 Ptc Inc. Methods and system for incremental exploration of design changes in large computer-aided design models
US10423498B2 (en) * 2014-06-26 2019-09-24 Sybase, Inc. Zero data loss transfer protocol
US10205670B2 (en) * 2014-09-12 2019-02-12 Qualcomm Incorporated Selective storage and deletion in mobile content delivery networks

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108073642A (zh) * 2016-11-18 2018-05-25 阿里巴巴集团控股有限公司 数据写入和读取的方法、装置及***、数据交互***
TWI626548B (zh) * 2017-03-31 2018-06-11 東森信息科技股份有限公司 資料收集與儲存系統及其方法

Also Published As

Publication number Publication date
WO2016183507A1 (en) 2016-11-17
EP3295294A1 (en) 2018-03-21
US20160335287A1 (en) 2016-11-17
EP3295294A4 (en) 2018-04-18
TWI710897B (zh) 2020-11-21
CN106294357B (zh) 2019-07-09
US10877935B2 (en) 2020-12-29
CN106294357A (zh) 2017-01-04

Similar Documents

Publication Publication Date Title
TW201640352A (zh) 資料處理方法和流計算系統
US20230350589A1 (en) Making more active use of a secondary storage system
US20210359924A1 (en) Monitoring a stale data queue for deletion events
AU2014218837B2 (en) Deduplication storage system with efficient reference updating and space reclamation
US20150113218A1 (en) Distributed Data Processing Method and Apparatus
US9483367B1 (en) Data recovery in distributed storage environments
US9838467B2 (en) Dynamically instantiating dual-queue systems
US9836358B2 (en) Ephemeral remote data store for dual-queue systems
US11321324B2 (en) Systems and methods for cross-region data management in an active-active architecture
WO2016029744A1 (zh) 一种元数据恢复方法及相关装置
JP2020518059A (ja) バックアップ失敗後のバックアップ性能の改善
US10795579B2 (en) Methods, apparatuses, system and computer program products for reclaiming storage units
US20240061752A1 (en) Integration of database with distributed storage system
US10031961B1 (en) Systems and methods for data replication
US10713216B2 (en) Using relative generation numbers to deduplicate file system events
JP6671708B2 (ja) バックアップリストアシステム及びバックアップリストア方法
US10761945B2 (en) Dynamically directing data in a deduplicated backup system
US12026132B2 (en) Storage tiering for computing system snapshots
CN109992447B (zh) 数据复制方法、装置及存储介质
US20230401337A1 (en) Two person rule enforcement for backup and recovery systems
US11474707B2 (en) Data loss recovery in a secondary storage controller from a primary storage controller
JP2015153280A (ja) レプリケーション制御システム、レプリケーション制御方法、及び、レプリケーション制御プログラム
US20240143454A1 (en) System and techniques for backing up scalable computing objects
US20240103975A1 (en) Dynamic resource scaling for large-scale backups
US20230105187A1 (en) Multi-channel backup system