TWI689181B - 資料處理方法和系統 - Google Patents

資料處理方法和系統 Download PDF

Info

Publication number
TWI689181B
TWI689181B TW106112612A TW106112612A TWI689181B TW I689181 B TWI689181 B TW I689181B TW 106112612 A TW106112612 A TW 106112612A TW 106112612 A TW106112612 A TW 106112612A TW I689181 B TWI689181 B TW I689181B
Authority
TW
Taiwan
Prior art keywords
server
slave
data
log
data storage
Prior art date
Application number
TW106112612A
Other languages
English (en)
Other versions
TW201801495A (zh
Inventor
陽振坤
趙裕眾
師文匯
Original Assignee
香港商阿里巴巴集團服務有限公司
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 香港商阿里巴巴集團服務有限公司 filed Critical 香港商阿里巴巴集團服務有限公司
Publication of TW201801495A publication Critical patent/TW201801495A/zh
Application granted granted Critical
Publication of TWI689181B publication Critical patent/TWI689181B/zh

Links

Images

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/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • 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
    • G06F16/184Distributed file systems implemented as replicated file system
    • G06F16/1844Management specifically adapted to replicated 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/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/30Decision processes by autonomous network management units using voting and bidding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/85Active fault masking without idle spares

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)

Abstract

本申請公開了一種資料處理方法和設備,接收用戶發送的資料更新請求;根據資料更新請求,分別向主伺服器以及至少兩台從伺服器發送日誌更新指令;在確定日誌更新操作完成時,分別向主伺服器以及至少兩台從伺服器中的第一從伺服器發送資料儲存指令。在接收到資料更新請求時,可以向主伺服器以及從伺服器發送日誌更新指令,使主伺服器以及從伺服器執行日誌更新操作,在確定日誌更新操作完成時,向主伺服器以及其中一個從伺服器發送資料儲存指令,在從伺服器中的資料丟失時,可以透過預先儲存的日誌恢復丟失的資料,保證主伺服器與從伺服器之間資料的一致性,針對待更新資料,只有主伺服器以及一個從伺服器對其進行儲存,有效減少資料儲存消耗的資源。

Description

資料處理方法和系統
本申請係關於電腦技術領域,尤其關於一種資料處理方法和設備。
在分散式資料儲存系統中,一台伺服器作為主伺服器,另一台伺服器作為從屬伺服器(以下簡稱從伺服器),主伺服器可以對外提供資料讀寫服務,從伺服器保持與主伺服器之間的資料同步,並在主伺服器出現故障時,從伺服器可以對外提供資料讀寫服務。
通常,主伺服器在接收到資料並將資料進行儲存時,可以將儲存的資料同步儲存至從伺服器中,這樣,可以保證主伺服器與從伺服器之間資料的一致,但是,在實際應用中,由於主伺服器和從伺服器之間的資料同步操作存在延時性,導致從伺服器中的部分資料丟失,無法保證與主伺服器中的資料一致。
為了保證主伺服器和從伺服器之間資料的一致性,現有技術中,在將主伺服器中儲存的資料同步至從伺服器時,可以將主伺服器中的資料同步至多台從伺服器中,也就是說,可以將主伺服器中的資料儲存多份資料副本,在 其中一台從伺服器中的資料丟失時,可以從其他從伺服器獲取丟失的資料,這樣,在主伺服器出現故障時,多台從伺服器可以對外提供資料讀寫服務。
但是,由於需要對主伺服器中的資料儲存多份資料副本,導致資料儲存消耗的資源比較多。
有鑑於此,本申請實施例提供了一種資料處理方法和設備,用於解決在分散式資料儲存系統中,由於需要對同一份資料儲存多份資料副本,導致資料儲存消耗的資源比較多的問題。
本申請實施例提供一種資料處理方法,所述方法應用於分散式資料儲存系統,所述分散式資料儲存系統中包含主伺服器以及至少兩台從伺服器,包括:接收用戶發送的資料更新請求,所述資料更新請求中包含待更新資料;根據所述資料更新請求,分別向所述主伺服器以及所述至少兩台從伺服器發送日誌更新指令,使所述主伺服器以及所述至少兩台從伺服器根據所述日誌更新指令執行日誌更新操作;在確定所述日誌更新操作完成時,分別向所述主伺服器以及所述至少兩台從伺服器中的第一從伺服器發送資料儲存指令,使所述主伺服器以及所述第一從伺服器根據所述資料儲存指令執行對所述待更新資料的儲存操作。
本申請實施例還提供一種資料處理方法,所述方法應用於分散式資料儲存系統,所述分散式資料儲存系統中包含主伺服器以及至少兩台從伺服器,包括:所述主伺服器接收用戶發送的資料更新請求,所述資料更新請求中包含待更新資料;所述主伺服器根據所述資料更新請求,啟動日誌更新操作,並分別向所述至少兩台從伺服器發送日誌更新指令,使所述至少兩台從伺服器根據所述日誌更新指令執行日誌更新操作;所述主伺服器在確定所述日誌更新操作完成時,啟動資料儲存操作,並向所述至少兩台從伺服器中的第一從伺服器發送資料儲存指令,使所述第一從伺服器根據所述資料儲存指令執行對所述待更新資料的儲存操作。
本申請實施例提供一種資料處理設備,所述設備應用於分散式資料儲存系統,所述分散式資料儲存系統中包含主伺服器以及至少兩台從伺服器,所述設備包括:接收單元和發送單元,其中:接收單元,接收用戶發送的資料更新請求,所述資料更新請求中包含待更新資料;發送單元,根據所述資料更新請求,分別向所述主伺服器以及所述至少兩台從伺服器發送日誌更新指令,使所述主伺服器以及所述至少兩台從伺服器根據所述日誌更新指令執行日誌更新操作;所述發送單元,在確定所述日誌更新操作完成時,分 別向所述主伺服器以及所述至少兩台從伺服器中的第一從伺服器發送資料儲存指令,使所述主伺服器以及所述第一從伺服器根據所述資料儲存指令執行對所述待更新資料的儲存操作。
本申請實施例還提供一種資料處理設備,所述設備應用於分散式資料儲存系統,所述分散式資料儲存系統中包含主伺服器以及至少兩台從伺服器,所述設備包括:接收單元和發送單元,其中:接收單元,接收用戶發送的資料更新請求,所述資料更新請求中包含待更新資料;發送單元,根據所述資料更新請求,啟動日誌更新操作,並向所述至少兩台從伺服器發送日誌更新指令,使所述至少兩台從伺服器根據所述日誌更新指令執行日誌更新操作;所述發送單元,在確定所述日誌更新操作完成時,啟動資料儲存操作,並向所述至少兩台從伺服器中的第一從伺服器發送資料儲存指令,使所述第一從伺服器根據所述資料儲存指令執行對所述待更新資料的儲存操作。
本申請實施例採用的上述至少一個技術方案能夠達到以下有益效果:分散式資料儲存系統在接收到資料更新請求時,可以分別向主伺服器以及從伺服器發送日誌更新指令,使主伺服器以及從伺服器執行日誌更新操作,並在確定日誌更新操作完成時,向主伺服器以及其中一個從伺服器發送資料儲存指令,這樣,在從伺服器中的資料丟失 時,可以透過主伺服器與從伺服器預先儲存的日誌恢復丟失的資料,保證主伺服器與從伺服器之間資料的一致性,並且,針對待更新資料,只有主伺服器以及其中一個從伺服器對其進行儲存,可以有效減少資料儲存消耗的資源。
81‧‧‧接收單元
82‧‧‧發送單元
83‧‧‧確定單元
91‧‧‧接收單元
92‧‧‧發送單元
此處所說明的附圖用來提供對本申請的進一步理解,構成本申請的一部分,本申請的示意性實施例及其說明用於解釋本申請,並不構成對本申請的不當限定。在附圖中:圖1為本申請實施例提供的一種資料處理方法的流程示意圖;圖2為本申請實施例提供的一種資料處理方法的流程示意圖;圖3為本申請實施例提供的確定主伺服器的流程示意圖;圖4為本申請實施例提供的一種伺服器故障處理的結構示意圖;圖5為本申請實施例提供的一種伺服器故障處理的結構示意圖;圖6為本申請實施例提供的一種伺服器故障處理的結構示意圖;圖7為本申請實施例提供的一種本地機房與異地機房中的伺服器的結構示意圖; 圖8為本申請實施例提供的一種資料處理設備的結構示意圖;圖9為本申請實施例提供的一種資料處理設備的結構示意圖。
通常,在分散式資料庫儲存系統中,主伺服器在接收到待更新資料並對其進行儲存時,可以將待更新資料同步儲存至從伺服器中,但是,在實際應用中,由於主伺服器與從伺服器之間的地域或者其他原因,導致主伺服器與從伺服器之間的資料同步存在延時性,也就是說,主伺服器在完成對待更新資料的儲存之後,從伺服器可能還未完成對待更新資料的儲存,此時,如果主伺服器出現故障,從伺服器將會丟失一部分資料。
在現有技術中,為了保證從伺服器不丟失資料(即保證主伺服器與從伺服器之間資料的一致性),可以將主伺服器中的資料同步至多台(至少2台)從伺服器中,但是相對於原有的分散式資料儲存系統而言,需要儲存的資料副本較多,容易造成資源的浪費。
在實際應用中,出於系統安全的考慮,主伺服器(或從伺服器)在將待更新資料進行儲存之前,需要首先執行日誌更新操作,並在完成日誌更新操作後,再對待更新資料進行儲存,這樣,可以保證主伺服器(或從伺服器)中儲存的資料與日誌之間的一致性,在主伺服器(或從伺服 器)儲存資料失敗時,可以透過預先儲存的日誌對資料進行恢復。
由此可見,在分散式資料儲存系統中,在主伺服器將待更新資料同步至從伺服器之前,如果主伺服器和從伺服器首先執行日誌更新操作,在完成日誌更新操作後,再執行待更新資料的儲存操作,那麼,在從伺服器儲存的資料丟失時,可以透過預先儲存的日誌將丟失的資料恢復,這樣,透過主伺服器與從伺服器之間日誌的一致性保證主伺服器與從伺服器之間資料的一致性,在對資料進行儲存時,可以減少對待更新資料儲存的資料副本。
基於上述思路,本申請實施例提供的技術方案,可以在保證主伺服器與從伺服器之間資料的一致性的前提下,減少對資料儲存的資料副本,進而減少資料儲存時消耗的資源。
為了實現本申請的目的,本申請實施例中提供了一種資料處理方法和設備,所述方法應用於分散式資料儲存系統,所述分散式資料儲存系統中包含主伺服器以及至少兩台從伺服器,接收用戶發送的資料更新請求,所述資料更新請求中包含待更新資料;根據所述資料更新請求,分別向所述主伺服器以及所述至少兩台從伺服器發送日誌更新指令,使所述主伺服器以及所述至少兩台從伺服器根據所述日誌更新指令執行日誌更新操作;在確定所述日誌更新操作完成時,分別向所述主伺服器以及所述至少兩台從伺服器中的第一從伺服器發送資料儲存指令,使所述主伺服 器以及所述第一從伺服器根據所述資料儲存指令執行對所述待更新資料的儲存操作。
分散式資料儲存系統在接收到資料更新請求時,可以分別向主伺服器以及從伺服器發送日誌更新指令,使主伺服器以及從伺服器執行日誌更新操作,並在確定日誌更新操作完成時,向主伺服器以及其中一個從伺服器發送資料儲存指令,這樣,在從伺服器中的資料丟失時,可以透過主伺服器與從伺服器預先儲存的日誌恢復丟失的資料,保證主伺服器與從伺服器之間資料的一致性,並且,針對待更新資料,只有主伺服器以及其中一個從伺服器對其進行儲存,可以有效減少資料儲存消耗的資源。
需要說明的是,本申請實施例提供的技術方案可以基於分散式一致性協議,並應用在基於分散式一致性協議的分散式資料儲存系統中,所述分散式一致性協議可以是paxos協議,也可以是其他一致性協議,不做具體限定。
在基於分散式一致性協議的分散式資料儲存系統中,可以包含主伺服器以及至少兩台從伺服器,其中,所述主伺服器可以用於對外提供資料讀寫服務,所述至少兩台從伺服器在所述主伺服器出現故障後,可以對外提供資料讀寫服務。
下面結合本申請具體實施例及相應的附圖對本申請技術方案進行清楚、完整地描述。顯然,所描述的實施例僅是本申請一部分實施例,而不是全部的實施例。基於本申請中的實施例,本領域普通技術人員在沒有做出創造性勞 動前提下所獲得的所有其他實施例,都屬於本申請保護的範圍。
以下結合附圖,詳細說明本申請各實施例提供的技術方案。
實施例1
圖1為本申請實施例提供的一種資料處理方法的流程示意圖。所述方法如下所述。本申請實施例的執行主體可以是基於分散式一致性協議的分散式資料儲存系統(以下簡稱分散式資料儲存系統)。
步驟101:接收用戶發送的資料更新請求。
其中,所述資料更新請求中包含待更新資料。
在步驟101中,用戶在發起業務請求,並接收到回應訊息後,可以向分散式資料儲存系統發送資料更新請求,此時,分散式資料儲存系統可以接收用戶發送的資料更新請求。
在本申請實施例中,所述用戶發起的業務請求可以是支付請求,也可以是添加好友請求,還可以是其他業務請求,這裡不做具體限定。
所述用戶向所述分散式資料儲存系統發送所述資料更新請求,所述資料更新請求中可以包含待更新資料,所述資料更新請求用於請求所述分散式資料儲存系統將所述待更新資料進行儲存。
例如,所述用戶在支付平台上發起支付請求,所述支 付平台可以回應所述用戶發送的支付請求,所述用戶在接收到回應訊息後,可以向所述分散式資料儲存系統發送資料更新請求,所述資料更新請求中包含與所述支付請求相關的待更新資料,所述資料更新請求用於請求所述分散式資料儲存系統將與所述支付請求相關的待更新資料進行儲存。
步驟102:根據所述資料更新請求,分別向所述主伺服器以及所述至少兩台從伺服器發送日誌更新指令,使所述主伺服器以及所述至少兩台從伺服器根據所述日誌更新指令執行日誌更新操作。
在步驟102中,分散式資料儲存系統在接收到用戶發送的資料更新請求時,可以根據所述資料請求,分別向分散式資料儲存系統中的主伺服器以及至少兩台從伺服器發送日誌更新指令,以便於主伺服器、至少兩台從伺服器根據日誌更新指令執行日誌更新操作。
需要說明的是,在實際應用中,所述分散式資料儲存系統在接收所述資料更新請求之前,也就是說,在所述分散式資料儲存系統中儲存的資料為空時,所述分散式資料儲存系統需要確定一個主伺服器,並由確定的主伺服器對外提供資料讀寫服務。
具體地,可以由所述分散式資料儲存系統按照隨機原則確定所述主伺服器,也可以由所述分散式資料儲存系統中包含的多個伺服器透過選舉的方式確定所述主伺服器(這裡的選舉可以是多台伺服器基於分散式一致性協議進 行選舉),還可以根據實際情況選擇所述分散式資料儲存系統中的其中一個伺服器作為所述主伺服器,這裡對確定所述主伺服器的方法不做具體限定。
在確定所述主伺服器後,可以將分散式資料儲存系統中的其他伺服器作為從伺服器,在本申請實施例中,所述從伺服器的台數至少為2台。
所述分散式資料儲存系統在確定所述主伺服器以及所述從伺服器之後,並在接收到所述資料更新指令時,可以向所述主伺服器發送日誌更新指令,以便於所述主伺服器根據所述日誌更新指令執行日誌更新操作。
所述分散式資料儲存系統在向所述主伺服器發送日誌更新指令時,可以同步向所述至少兩台從伺服器發送所述日誌更新指令,以便於所述至少兩台從伺服器根據所述日誌更新指令執行日誌更新操作。
需要說明的是,在向所述至少兩台從伺服器發送所述日誌更新指令時,可以分別向所述至少兩台從伺服器中的每一台從伺服器發送,也可以選擇其中若干台(至少兩台)從伺服器,並向選擇的若干個從伺服器發送,不做具體限定。
例如:如果分散式資料儲存系統中包含兩台從伺服器,那麼,可以分別向這兩台從伺服器發送所述日誌更新指令,如果分散式資料儲存系統中包含四台從伺服器,那麼,可以向其中兩台從伺服器發送所述日誌更新指令,也可以向其中任意三台從伺服器發送所述日誌更新指令,還 可以分別向這四台從伺服器發送所述日誌更新指令,不做具體限定。
在本申請實施例中,可以以分別向所述至少兩台從伺服器中的每一台從伺服器發送所述日誌更新指令為例進行說明。
所述主伺服器以及所述至少兩台從伺服器在接收到所述日誌更新指令時,可以根據所述日誌更新指令,執行日誌更新操作。
步驟103:在確定所述日誌更新操作完成時,分別向所述主伺服器以及所述至少兩台從伺服器中的第一從伺服器發送資料儲存指令,使所述主伺服器以及所述第一從伺服器根據所述資料儲存指令執行對所述待更新資料的儲存操作。
在步驟103中,所述分散式資料儲存系統在確定日誌更新操作完成時,可以選擇所述至少兩台從伺服器中的其中一台從伺服器作為第一從伺服器,並分別向所述主伺服器以及所述第一從伺服器發送資料儲存指令,以便於所述主伺服器以及所述第一從伺服器對所述待更新資料進行儲存。
具體地,在本申請實施例中,至少在以下兩種情形下,可以確定所述日誌更新操作完成,包括:第一種情形:在確定所述主伺服器完成所述日誌更新操作時,確定所述日誌更新操作完成;第二種情形:在確定所述主伺服器且所述至少兩台從 伺服器中至少一台從伺服器完成所述日誌更新操作時,確定所述日誌更新操作完成。
針對第一種情形:在實際應用中,由於所述主伺服器用於對外提供資料讀寫服務,因此,分散式資料儲存系統在確定所述日誌更新操作是否完成時,需要首先確定所述主伺服器是否完成所述日誌更新操作,並在確定所述主伺服器完成所述日誌更新操作時,可以確定所述日誌更新操作完成。
針對第二種情形:為了保證主伺服器與從伺服器之間日誌的一致性,在確定所述主伺服器完成所述日誌更新操作後,可以進一步確定所述至少兩台從伺服器是否完成所述日誌更新操作,此時,如果所述至少兩台從伺服器中至少一台從伺服器完成所述日誌更新操作,可以說明主伺服器與從伺服器之間日誌達到一致性,也就是說,可以確定所述日誌更新操作完成。
這樣,在確定所述日誌更新操作完成後,可以選擇所述至少兩台從伺服器中的其中一台從伺服器作為第一從伺服器,並分別向所述主伺服器以及所述第一從伺服器發送資料儲存指令,以便於所述主伺服器以及所述第一從伺服器執行對待更新資料的儲存操作。
在本申請實施例中,可以分別基於上述兩種情形,分別向所述主伺服器以及所述至少兩台從伺服器中的第一從伺服器發送資料儲存指令。
具體地,針對第一種情形,分別向所述主伺服器以及 所述至少兩台從伺服器中的第一從伺服器發送資料儲存指令,包括:在確定所述主伺服器完成所述日誌更新操作時,向所述主伺服器發送資料儲存指令,並在向所述主伺服器發送資料儲存指令後且確定所述至少兩台從伺服器中的至少一台伺服器完成所述日誌更新操作時,向所述至少兩台從伺服器中的第一從伺服器發送資料儲存指令。
在確定所述主伺服器完成日誌更新操作時,可以向所述主伺服器發送資料儲存指令,所述主伺服器可以接收所述資料儲存指令,並根據所述資料儲存指令執行待更新資料的儲存操作。
此時,可以進一步確定所述至少兩台從伺服器是否完成所述日誌更新操作,如果至少一台從伺服器完成所述日誌更新操作,那麼,可以選擇其中一台從伺服器作為第一從伺服器,並向所述第一從伺服器發送資料儲存指令。
針對第二種情形,分別向所述主伺服器以及所述至少兩台從伺服器中的第一從伺服器發送資料儲存指令,包括:在確定所述主伺服器且所述至少兩台從伺服器中至少一台從伺服器完成所述日誌更新操作時,分別向所述主伺服器以及所述至少兩台從伺服器中的第一從伺服器發送資料儲存指令。
在確定所述主伺服器完成所述日誌更新操作,且確定所述至少兩台從伺服器中的至少一台從伺服器完成所述日 誌更新操作時,可以選擇其中一台從伺服器作為第一從伺服器,並分別向所述主伺服器以及所述第一從伺服器發送資料儲存指令。
需要說明的是,針對上述記載的兩種情形,在選擇所述至少兩台從伺服器中的其中一台從伺服器作為第一從伺服器時,可以在接收到所述日誌更新操作指令的從伺服器中隨機選擇一台從伺服器作為第一從伺服器,也可以根據實際情況選擇其中一台從伺服器作為第一從伺服器,不做具體限定。
分散式資料儲存系統分別向所述主伺服器以及所述至少兩台從伺服器中的第一從伺服器發送資料儲存指令後,所述主伺服器以及所述第一從伺服器可以接收所述資料儲存指令,並根據所述資料儲存指令執行待更新資料的儲存操作。
在實際應用中,可以預先確定分散式資料儲存系統中哪些從伺服器不執行對待更新資料的儲存操作,這樣,分散式資料儲存系統在接收到資料更新請求時,可以不向確定的這些從伺服器發送資料儲存指令。
可選地,所述方法還包括:確定所述至少兩台從伺服器中的第二從伺服器,並在確定所述第二從伺服器完成所述日誌更新操作時,向所述第二從伺服器發送空操作指令,所述空操作指令用於指示所述第二從伺服器執行空操作。
在本申請實施例中,在發送所述日誌更新指令時,可 以分別向所述至少兩台從伺服器發送,但是,在確定所述日誌更新操作完成時,僅向所述至少兩台從伺服器中的其中一台從伺服器發送資料儲存指令,因此,可以在所述至少兩台從伺服器中確定其中一個第二從伺服器,並在確定所述第二從伺服器完成所述日誌更新操作時,向所述第二從伺服器發送空操作指令,使所述第二從伺服器執行空操作,也就是說,所述第二從伺服器不對待更新資料進行儲存,這樣,可以減少待更新資料儲存的資料副本。
需要說明的是,所述第二從伺服器中的“第二”與上述記載的所述第一從伺服器中的“第一”,只是為了便於區分不同的從伺服器,沒有其他特殊含義。
本申請實施例在確定所述第二從伺服器時,可以是在確定所述主伺服器時確定所述第二從伺服器,也可以是在發送所述日誌更新指令時確定所述第二從伺服器,還可以是在發送所述資料儲存指令時確定所述第二從伺服器,不做具體限定。
這樣,所述至少兩台從伺服器中可以包含一台所述第一從伺服器和至少一台所述第二從伺服器,例如,如果所述分散式資料儲存系統包含兩台從伺服器,那麼,第一從伺服器的台數為一台,第二從伺服器的台數為一台;如果所述分散式資料儲存系統包含三台從伺服器,那麼,第一從伺服器的台數為一台,第二從伺服器的台數為兩台。
分散式資料儲存系統在發送所述資料儲存指令時,僅向所述主伺服器以及所述第一從伺服器發送所述資料儲存 指令,這樣,所述主伺服器以及所述第一從伺服器對待更新資料進行儲存,所述第二從伺服器不對待更新資料進行儲存,可以減少資料儲存時消耗的資源。
除此之外,在本申請實施例中,所述分散式資料儲存系統中任何一個伺服器(主伺服器或從伺服器)出現故障時,分散式資料儲存系統都可以在保證主伺服器與從伺服器之間資料的一致性的前提下,對外提供資料讀寫服務。
具體地,在所述分散式資料儲存系統中,至少存在以下幾種故障情形:第一種故障情形:所述主伺服器出現故障;第二種故障情形:所述第一從伺服器出現故障;第三種故障情形:所述第二從伺服器出現故障。
下面分別針對上述三種故障情形,說明所述分散式資料儲存系統如何在保證資料一致性的前提下,實現對外提供資料服務。
針對第一種故障情形以及第二種故障情形:在確定所述主伺服器或所述第一從伺服器出現故障時,確定第三從伺服器,並向所述第三從伺服器發送資料同步指令,使所述第三從伺服器根據所述資料同步指令完成與未出現故障且儲存有資料的伺服器之間的資料同步。
具體地,針對第一種故障情形:在確定所述主伺服器出現故障時,由於所述第一從伺服器中儲存有資料,因此,可以由所述第一從伺服器作為新的主伺服器,並由所述第一從伺服器對外提供資料讀寫 服務,此時,如果所述第一從伺服器中的資料相比於所述主伺服器而言,存在資料丟失的現象,那麼,可以透過所述第一從伺服器和/或所述第二從伺服器儲存的日誌,恢復丟失的資料。
此外,還需要對所述第一從伺服器中儲存的資料進行備份,因此,需要確定一台第三從伺服器,並對所述第一從伺服器中儲存的資料進行備份。
在確定所述第三從伺服器時,可以從所述至少兩台從伺服器中包含的其他從伺服器中選擇一台從伺服器作為所述第三從伺服器,也可以確定一台新的伺服器作為所述第三從伺服器,不做具體限定。
在確定所述第三伺服器後,可以向所述第三伺服器發送資料同步指令,使所述第三從伺服器根據所述資料同步指令完成與未出現故障且儲存有資料的伺服器之間的資料同步,這裡的未出現故障且儲存有資料的伺服器可以是所述第一從伺服器,所述第三從伺服器完成與所述第一從伺服器之間的資料同步。
需要說明的是,所述第三從伺服器中的“第三”是為了便於與所述第一從伺服器以及所述第二從伺服器進行區分,沒有其他特殊含義。
可選地,為了保證在分散式一致性協議下,所述第一從伺服器、所述第二從伺服器以及所述第三從伺服器之間日誌的一致性,還可以向所述第三從伺服器發送日誌同步指令,使所述第三從伺服器根據所述第一從伺服器中儲存 的日誌,執行日誌同步操作。
針對第二種故障情形:在確定所述第一從伺服器出現故障時,所述主伺服器仍然可以對外提供資料服務,但是,由於所述第一從伺服器出現故障,因此,需要確定新的從伺服器,並對所述主伺服器中儲存的資料進行備份。
確定所述新的從伺服器的方法與上述記載的確定所述第三從伺服器的方法相同,這裡不做重複描述。
在確定所述新的伺服器後,可以向所述新的從伺服器發送資料同步指令,使所述新的從伺服器根據所述資料同步指令完成與未出現故障且儲存有資料的伺服器之間的資料同步,這裡的未出現故障且儲存有資料的伺服器可以是所述主伺服器,所述新的從伺服器完成與所述主伺服器之間的資料同步。
可選地,為了保證在分散式一致性協議下,所述主伺服器、所述第二從伺服器以及所述新的從伺服器之間日誌的一致性,還可以向所述新的從伺服器發送日誌同步指令,使所述新的從伺服器根據所述主伺服器中儲存的日誌,執行日誌同步操作。
針對第三種故障情形:在確定所述第二從伺服器出現故障時,確定第四從伺服器,並向所述第四從伺服器發送日誌同步指令,使所述第四從伺服器根據所述日誌同步指令完成與未出現故障的伺服器之間的日誌同步。
具體地,在確定所述第二從伺服器出現故障時,所述主伺服器仍然可以對外提供資料讀寫服務,所述第一從伺服器可以對所述主伺服器中儲存的資料進行備份。但是,此時,為了保證在分散式一致性協議下,所述主伺服器、所述第一從伺服器之間日誌的一致性,需要重新確定第四從伺服器。
確定所述第四從伺服器的方法與上述記載的確定所述第三從伺服器的方法相同,這裡不做重複描述。
在確定所述第四伺服器之後,可以向所述第四從伺服器發送日誌同步指令,使所述第四伺服器在接收到所述日誌同步指令後,根據所述日誌同步指令完成與未出現故障的伺服器之間的日誌同步。
這裡的未出現故障的伺服器可以是除所述第二伺服器以外的其他伺服器,可以是所述主伺服器,也可以是所述第一從伺服器,還可以是其他完成日誌更新操作的伺服器,不作具體限定。
所述第四從伺服器中的“第四”是為了便於與所述第一從伺服器、所述第二從伺服器以及所述第三從伺服器進行區分,沒有其他特殊含義。
需要說明的是,由於所述第二從伺服器中沒有儲存資料,因此,在確定所述第四從伺服器之後,不需要向所述第四從伺服器發送資料同步指令。
本申請實施例提供的技術方案,在接收到資料更新請求時,可以分別向主伺服器以及從伺服器發送日誌更新指 令,使主伺服器以及從伺服器執行日誌更新操作,並在確定日誌更新操作完成時,向主伺服器以及其中一個從伺服器發送資料儲存指令,這樣,在從伺服器中的資料丟失時,可以透過主伺服器與從伺服器預先儲存的日誌恢復丟失的資料,保證主伺服器與從伺服器之間資料的一致性,並且,針對待更新資料,只有主伺服器以及其中一個從伺服器對其進行儲存,可以有效減少資料儲存消耗的資源。
實施例2
圖2為本申請實施例提供的一種資料處理方法的流程示意圖。所述方法如下所述。本申請實施例的執行主體可以是基於一致性協議的分散式資料儲存系統中的主伺服器。
步驟201:所述主伺服器接收用戶發送的資料更新請求。
其中,所述資料更新請求中包含待更新資料。
在步驟201中,用戶在發起業務請求,並接收到回應訊息後,可以向分散式資料儲存系統中的主伺服器發送資料更新請求,此時,分散式資料儲存系統中的主伺服器可以接收用戶發送的資料更新請求。
在本申請實施例中,所述主伺服器是在所述分散式資料儲存系統中的儲存的資料為空時,確定得到的,確定所述主伺服器的方法和上述實施例1中記載的方法相同,這裡不再重複描述。
步驟202:所述主伺服器根據所述資料更新請求,啟動日誌更新操作,並向所述至少兩台從伺服器發送日誌更新指令,使所述至少兩台從伺服器根據所述日誌更新指令執行日誌更新操作。
在步驟202中,主伺服器在接收到用戶發送的資料更新請求時,可以啟動日誌更新操作,並根據所述資料請求,向分散式資料儲存系統中的至少兩台從伺服器發送日誌更新指令,以便於所述至少兩台從伺服器根據日誌更新指令執行日誌更新操作。
所述主伺服器在接收到所述資料更新請求時,可以根據所述資料更新請求,啟動日誌更新操作,再根據所述資料更新請求,向所述至少兩台從伺服器發送日誌更新指令,也可以是在接收到所述資料更新請求時,根據所述資料更新請求,向所述至少兩台從伺服器發送日誌更新指令,再根據所述資料更新請求,啟動日誌更新操作,不做具體限定。
所述主伺服器向所述至少兩台從伺服器發送所述日誌更新指令後,所述至少兩台從伺服器可以接收所述日誌更新指令,並根據所述日誌更新指令執行日誌更新操作。
步驟203:所述主伺服器在確定所述日誌更新操作完成時,啟動資料儲存操作,並向所述至少兩台從伺服器中的第一從伺服器發送資料儲存指令,使所述第一從伺服器根據所述資料儲存指令執行對所述待更新資料的儲存操作。
在步驟203中,主伺服器在確定日誌更新操作完成時,可以啟動資料儲存操作,並選擇所述至少兩台從伺服器中的其中一台從伺服器作為第一從伺服器,並向所述第一從伺服器發送資料儲存指令,以便於所述主伺服器以及所述第一從伺服器對所述待更新資料進行儲存。
所述主伺服器至少在以下兩種情形下,可以確定所述日誌更新操作完成,包括:第一種情形:在確定所述主伺服器完成所述日誌更新操作時,確定所述日誌更新操作完成;第二種情形:在確定所述主伺服器完成所述日誌更新操作以及所述至少兩台從伺服器中至少一台從伺服器完成所述日誌更新操作時,確定所述日誌更新操作完成。
所述主伺服器在確定所述日誌更新操作完成後,可以啟動資料儲存操作,以便於所述主伺服器對外提供資料讀寫服務,此時,所述主伺服器還可以選擇所述至少兩台從伺服器中的其中一台從伺服器作為第一從伺服器,並向所述第一從伺服器發送資料儲存指令,使所述第一從伺服器根據所述資料儲存指令執行待更新資料的資料儲存操作。
其中,所述主伺服器可以在發送所述資料儲存之前,啟動資料儲存操作,也可以在發送所述資料儲存指令之後,啟動資料儲存操作,不做具體限定。
這樣,所述主伺服器在接收到資料更新請求後,可以向所述第一從伺服器以及所述第二從伺服器發送日誌更新指令,並在確定日誌更新操作完成時,執行資料儲存操 作,並向所述第一從伺服器發送資料儲存指令,這樣,在所述第一從伺服器中的資料丟失時,可以根據所述主伺服器和/或所述第一從伺服器和/或所述第二從伺服器預先儲存的日誌,恢復丟失的資料,保證所述主伺服器與所述第一從伺服器之間資料的一致性,並且,針對待更新資料,只有主伺服器以及所述第一從伺服器對其進行儲存,可以減少資料儲存時消耗的資源。
實施例3
下面以分散式資料儲存系統中包含三台伺服器(一台主伺服器,兩台從伺服器)為例,對本申請實施例提供的技術方案進行說明,本申請實施例的執行主體可以是主伺服器。
第一步:確定分散式資料儲存系統中的主伺服器、第一從伺服器以及第二從伺服器。
在分散式資料儲存系統中儲存的資料為空時,可以確定分散式資料儲存系統中的主伺服器以及兩個從伺服器,為了便於區分,可以將兩個從伺服器分別稱為第一從伺服器以及第二從伺服器。
在本申請實施例中,所述主伺服器可以對待更新資料進行儲存,並對外提供資料讀寫服務,所述第一從伺服器可以對待更新資料進行儲存,所述第二從伺服器不對待更新資料進行儲存。
在本申請實施例中,對確定所述主伺服器、所述第一 從伺服器以及所述第二從伺服器的先後順序不做具體限定。
下面以確定所述第二從伺服器、所述主伺服器以及所述第一從伺服器的先後順序為例進行說明。
首先:確定第二從伺服器。
在確定所述第二從伺服器時,可以基於分散式一致性協議-paxos協議,由分散式資料儲存系統中包含的三台伺服器透過選舉的方式確定得到。
在確定所述第二從伺服器時,還可以隨機選擇其中一台伺服器作為所述第二從伺服器,或者按照實際情況確定所述第二從伺服器,這裡對確定所述第二從伺服器的方法不做具體限定。
其次:確定主伺服器。
在確定所述第二從伺服器後,可以基於分散式一致性協議-paxos協議,由所述第二從伺服器以及分散式資料儲存系統中其餘兩台伺服器,透過選舉的方式確定得到。
需要說明的是,在透過選舉的方式確定所述主伺服器時,所述第二從伺服器不可以選舉自己為主伺服器,其他兩台伺服器也不可以選舉所述第二從伺服器作為主伺服器。
如圖3所示,為本申請實施例提供的確定主伺服器的流程示意圖。
從圖3中可以看出,透過選舉的方式確定所述第二從伺服器C之後,可以由伺服器A、伺服器B以及第二從伺 服器C透過選舉的方式確定主伺服器,其中,伺服器A可以選舉自己以及伺服器B為主伺服器,不能選舉第二從伺服器C為主伺服器,伺服器B可以選舉自己以及伺服器A為主伺服器,不能選舉第二從伺服器C為主伺服器,第二伺服器C不能選舉自己為主伺服器,可以選舉伺服器A以及伺服器B為主伺服器。
在確定所述主伺服器時,還可以在除所述第二從伺服器之外的其他兩台伺服器中隨機選擇其中一台作為主伺服器,也可以根據實際需要選擇其中一台伺服器作為主伺服器,不做具體限定。
最後:確定第一從伺服器。
在所述分散式資料儲存系統中包含的三個伺服器中,在確定所述第二從伺服器以及所述主伺服器之後,可以將剩餘的一台伺服器作為第一從伺服器。
第二步:所述主伺服器接收用戶發送的資料更新請求。
所述資料更新請求中包含待更新資料。
第三步:所述主伺服器向所述第一從伺服器以及所述第二從伺服器發送日誌更新指令,使所述第一從伺服器以及所述第二從伺服器根據所述日誌更新指令執行日誌更新操作。
所述主伺服器在向所述第一從伺服器以及所述第二從伺服器發送日誌更新指令後,所述第一從伺服器以及所述第二從伺服器可以接收所述日誌更新指令,此時,所述主 伺服器、所述第一從伺服器以及所述第二從伺服器可以基於分散式一致性協議-paxos協議執行日誌更新,並在確定所述主伺服器且所述第一從伺服器和所述第二從伺服器中至少一個伺服器完成日誌更新操作時,確定所述日誌更新操作完成。
第四步:所述主服務向所述第一從伺服器發送資料儲存操作,使所述第一從伺服器根據所述資料儲存指令執行待更新資料的儲存操作。
在確定所述日誌更新操作完成時,所述主伺服器可以執行待更新資料的儲存操作,並向所述第一從伺服器發送資料儲存指令,所述第一從伺服器可以接收所述資料儲存指令,此時,如果所述第一從伺服器已完成日誌更新操作,那麼,所述第一從伺服器可以根據所述資料儲存指令執行待更新資料的儲存操作,如果所述第一從伺服器未完成日誌更新操作,那麼,所述第一從伺服器需要繼續執行日誌更新操作,並在完成日誌更新操作時,可以根據接收到的所述資料儲存指令執行待更新資料的儲存操作。
這樣,主伺服器在接收到資料更新請求時,可以向第一從伺服器以及第二從伺服器發送日誌更新指令,並在確定日誌更新操作完成時,執行資料儲存操作,並向所述第一從伺服器發送資料儲存指令,這樣,針對待更新資料,只有所述主伺服器以及所述第一從伺服器對其進行儲存,可以減少資料儲存時消耗的資源。
在本申請實施例中,在所述主伺服器、所述第一從伺 服器以及所述第二從伺服器中任一個伺服器出現故障時,分散式資料儲存系統都可以在保證資料一致性的前提下,實現對外提供資料讀寫服務。
具體地,在所述主伺服器出現故障時:如圖4所示,在主伺服器出現故障時,主伺服器不能繼續對用戶提供讀寫服務,此時,可以確定第一從伺服器B作為新的主伺服器,並確定伺服器D作為新的第一從伺服器,第一從伺服器B可以對用戶(Client)提供資料讀寫服務,並保持與第二從伺服器C之間的日誌同步,伺服器D從第一從伺服器B複製資料副本,完成與第一從伺服器B之間的資料同步,並執行日誌同步操作,完成與第一從伺服器B之間的日誌同步。
在所述第一從伺服器出現故障時:如圖5所示,在第一從伺服器出現故障時,主伺服器A可以繼續對用戶(Client)提供資料讀寫服務,此時,可以確定伺服器E作為新的第一從伺服器,伺服器E從主伺服器A複製資料副本,完成與主伺服器A之間的資料同步,並執行日誌同步操作,完成與主伺服器A之間的日誌同步。
在所述第二從伺服器出現故障時:如圖6所示,在第二從伺服器出現故障時,主伺服器A可以繼續對用戶提供資料讀寫服務,此時,可以確定伺服器F作為新的第二從伺服器,伺服器F執行日誌同步操作,並完成與主伺服器A之間的日誌同步。
在實際應用中,會存在異地多活的分散式資料儲存系統,也就是說,針對同一份資料而言,在本地儲存資料副本之外,還需要在異地儲存資料副本,以加強分散式資料儲存系統的穩定性。針對異地多活的分散式資料儲存系統,為了減少資料儲存時消耗的資源,可以在本地使用至少三台伺服器,其中的主伺服器儲存待更新資料,其餘從伺服器只儲存日誌(即只執行日誌更新操作),在異地使用至少三台伺服器,其中的主伺服器對本地中的主伺服器中的資料儲存資料副本,其餘從伺服器只儲存日誌(即只執行日誌更新操作)。
如圖7所示,在本地機房,可以使用三台伺服器A、B、C,其中伺服器A為主伺服器,對待更新資料進行儲存,伺服器B以及伺服器C為從伺服器僅執行日誌更新操作,不對待更新資料進行儲存。在異地機房,可以使用伺服器D、E、F,其中,伺服器D為主伺服器,對本地機房中伺服器A中儲存的資料儲存資料副本,伺服器E以及伺服器F僅執行日誌更新操作,不對待更新資料進行儲存。
在伺服器A出現故障時,可以由伺服器D對外提供資料讀寫服務。
在伺服器D出現故障時,伺服器A仍然可以繼續對外提供資料讀寫服務,此時,需要在異地機房中確定新的主伺服器,新的主伺服器可以完成與伺服器A之間的資料同步以及日誌同步。
在伺服器B、伺服器C、伺服器E以及伺服器F中任一個伺服器出現故障時,伺服器A仍然可以繼續對外提供讀寫服務。
圖8為本申請實施例提供的一種資料處理設備的結構示意圖。所述設備應用於分散式資料儲存系統,所述分散式資料儲存系統中包含主伺服器以及至少兩台從伺服器,所述設備包括:接收單元81、發送單元82以及確定單元83,其中:接收單元81,接收用戶發送的資料更新請求,所述資料更新請求中包含待更新資料;發送單元82,根據所述資料更新請求,分別向所述主伺服器以及所述至少兩台從伺服器發送日誌更新指令,使所述主伺服器以及所述至少兩台從伺服器根據所述日誌更新指令執行日誌更新操作;所述發送單元82,在確定所述日誌更新操作完成時,分別向所述主伺服器以及所述至少兩台從伺服器中的第一從伺服器發送資料儲存指令,使所述主伺服器以及所述第一從伺服器根據所述資料儲存指令執行對所述待更新資料的儲存操作。
具體地,所述發送單元82確定所述日誌更新操作完成,包括:在確定所述主伺服器完成所述日誌更新操作時,確定所述日誌更新操作完成;或, 在確定所述主伺服器且所述至少兩台從伺服器中至少一台從伺服器完成所述日誌更新操作時,確定所述日誌更新操作完成。
所述發送單元82分別向所述主伺服器以及所述至少兩台從伺服器中的第一從伺服器發送資料儲存指令,包括:在確定所述主伺服器完成所述日誌更新操作時,向所述主伺服器發送資料儲存指令,並在向所述主伺服器發送資料儲存指令後且確定所述至少兩台從伺服器中的至少一台伺服器完成所述日誌更新操作時,向所述至少兩台從伺服器中的第一從伺服器發送資料儲存指令;或,在確定所述主伺服器且所述至少兩台從伺服器中至少一台從伺服器完成所述日誌更新操作時,分別向所述主伺服器以及所述至少兩台從伺服器中的第一從伺服器發送資料儲存指令。
可選地,所述資料處理設備還包括:確定單元83,其中:所述確定單元83,確定所述至少兩台從伺服器中的第二從伺服器,並在確定所述第二從伺服器完成所述日誌更新操作完成時,向所述第二從伺服器發送空操作指令,所述空操作指令用於指示所述第二從伺服器執行空操作。
可選地,所述確定單元83,在確定所述主伺服器或所述第一從伺服器出現故障時,確定第三從伺服器,並向 所述第三從伺服器發送資料同步指令,使所述第三從伺服器根據所述資料同步指令完成與未出現故障且儲存有資料的伺服器之間的資料同步。
可選地,所述確定單元83,在確定所述第二從伺服器出現故障時,確定第四從伺服器,並向所述第四從伺服器發送日誌同步指令,使所述第四從伺服器根據所述日誌同步指令完成與未出現故障的伺服器之間的日誌同步。
圖9為本申請實施例提供的一種資料處理設備的結構示意圖。所述設備應用於分散式資料儲存系統,所述分散式資料儲存系統中包含主伺服器以及至少兩台從伺服器,所述設備包括:接收單元91和發送單元92,其中:接收單元91,接收用戶發送的資料更新請求,所述資料更新請求中包含待更新資料;發送單元92,根據所述資料更新請求,啟動日誌更新操作,並向所述至少兩台從伺服器發送日誌更新指令,使所述至少兩台從伺服器根據所述日誌更新指令執行日誌更新操作;所述發送單元92,在確定所述日誌更新操作完成時,啟動資料儲存操作,並向所述至少兩台從伺服器中的第一從伺服器發送資料儲存指令,使所述第一從伺服器根據所述資料儲存指令執行對所述待更新資料的儲存操作。
本領域內的技術人員應明白,本申請的實施例可提供為方法、系統、或電腦程式產品。因此,本申請可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面 的實施例的形式。而且,本申請可採用在一個或多個其中包含有電腦可用程式碼的電腦可用儲存媒體(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。
本申請是參照根據本申請實施例的方法、設備(系統)、和電腦程式產品的流程圖和/或方框圖來描述的。應理解可由電腦程式指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些電腦程式指令到通用電腦、專用電腦、嵌入式處理機或其他可程式設計資料處理設備的處理器以產生一個機器,使得透過電腦或其他可程式設計資料處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些電腦程式指令也可儲存在能引導電腦或其他可程式設計資料處理設備以特定方式工作的電腦可讀記憶體中,使得儲存在該電腦可讀記憶體中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些電腦程式指令也可裝載到電腦或其他可程式設計資料處理設備上,使得在電腦或其他可程式設計設備上執行一系列操作步驟以產生電腦實現的處理,從而在電腦或其他可程式設計設備上執行的指令提供用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中 指定的功能的步驟。
在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和記憶體。
記憶體可能包括電腦可讀媒體中的非永久性記憶體,隨機存取記憶體(RAM)和/或非易失性記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀媒體的示例。
電腦可讀媒體包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存媒體的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可擦除可程式設計唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁片儲存或其他磁性存放裝置或任何其他非傳輸媒體,可用於儲存可以被計算設備訪問的資訊。按照本文中的界定,電腦可讀媒體不包括暫存電腦可讀媒體(transitory media),如調製的資料信號和載波。
還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這 種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。
本領域技術人員應明白,本申請的實施例可提供為方法、系統或電腦程式產品。因此,本申請可採用完全硬體實施例、完全軟體實施例或結合軟體和硬體方面的實施例的形式。而且,本申請可採用在一個或多個其中包含有電腦可用程式碼的電腦可用儲存媒體(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。
以上所述僅為本申請的實施例而已,並不用於限制本申請。對於本領域技術人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本申請的申請專利範圍的範圍之內。

Claims (10)

  1. 一種資料處理方法,其特徵在於,該方法應用於資料儲存系統,該資料儲存系統中包含主伺服器以及至少兩台從伺服器,該方法包括:接收用戶發送的資料更新請求,該資料更新請求中包含待更新資料;根據該資料更新請求,分別向該主伺服器以及該至少兩台從伺服器發送日誌更新指令,使該主伺服器以及該至少兩台從伺服器根據該日誌更新指令執行日誌更新操作;在確定該日誌更新操作完成時,分別向該主伺服器以及該至少兩台從伺服器中的第一從伺服器發送資料儲存指令,使該主伺服器以及該第一從伺服器根據該資料儲存指令執行對該待更新資料的儲存操作;確定該至少兩台從伺服器中的第二從伺服器,並在確定該第二從伺服器完成該日誌更新操作時,向該第二從伺服器發送空操作指令,該空操作指令用於指示該第二從伺服器執行空操作。
  2. 如申請專利範圍第1項所述的資料處理方法,其中,確定該日誌更新操作完成,包括:在確定該主伺服器完成該日誌更新操作時,確定該日誌更新操作完成;或, 在確定該主伺服器且該至少兩台從伺服器中至少一台從伺服器完成該日誌更新操作時,確定該日誌更新操作完成。
  3. 如申請專利範圍第2項所述的資料處理方法,其中,分別向該主伺服器以及該至少兩台從伺服器中的第一從伺服器發送資料儲存指令,包括:在確定該主伺服器完成該日誌更新操作時,向該主伺服器發送資料儲存指令,並在向該主伺服器發送資料儲存指令後且確定該至少兩台從伺服器中的至少一台從伺服器完成該日誌更新操作時,向該至少兩台從伺服器中的第一從伺服器發送資料儲存指令;或,在確定該主伺服器且該至少兩台從伺服器中至少一台從伺服器完成該日誌更新操作時,分別向該主伺服器以及該至少兩台從伺服器中的第一從伺服器發送資料儲存指令。
  4. 如申請專利範圍第1或3項任一項所述的資料處理方法,其中,該第二從伺服器於接收該空操作指令時被組態以不對該待更新資料執行儲存操作。
  5. 如申請專利範圍第4項所述的資料處理方法,其中,該方法還包括: 在確定該主伺服器或該第一從伺服器出現故障時,確定第三從伺服器,並向該第三從伺服器發送資料同步指令,使該第三從伺服器根據該資料同步指令完成與未出現故障且儲存有資料的伺服器之間的資料同步。
  6. 如申請專利範圍第4項所述的資料處理方法,其中,該方法還包括:在確定該第二從伺服器出現故障時,確定第四從伺服器,並向該第四從伺服器發送日誌同步指令,使該第四從伺服器根據該日誌同步指令完成與未出現故障的伺服器之間的日誌同步。
  7. 如申請專利範圍第1項所述的資料處理方法,其中,該主伺服器係與外部計算裝置通訊,以執行與該待更新資料相關的外部讀取或寫入操作。
  8. 如申請專利範圍第1項所述的資料處理方法,其中,該資料更新請求包含支付請求。
  9. 如申請專利範圍第1項所述的資料處理方法,其中,該主伺服器係根據隨機原則或根據分散式一致性協議加以確定。
  10. 一種資料處理系統,該系統包含主伺服器以及至少兩 台從伺服器,該系統被組態以執行如申請專利範圍第1至9項中任一項所述的方法。
TW106112612A 2016-06-20 2017-04-14 資料處理方法和系統 TWI689181B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610444320.5 2016-06-20
CN201610444320.5A CN106899648B (zh) 2016-06-20 2016-06-20 一种数据处理方法和设备

Publications (2)

Publication Number Publication Date
TW201801495A TW201801495A (zh) 2018-01-01
TWI689181B true TWI689181B (zh) 2020-03-21

Family

ID=59190336

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106112612A TWI689181B (zh) 2016-06-20 2017-04-14 資料處理方法和系統

Country Status (18)

Country Link
US (2) US10798168B2 (zh)
EP (1) EP3474516B1 (zh)
JP (1) JP6684367B2 (zh)
KR (1) KR102145136B1 (zh)
CN (2) CN106899648B (zh)
AU (1) AU2017282817B2 (zh)
BR (1) BR112018076689B1 (zh)
CA (1) CA3028504C (zh)
ES (1) ES2809174T3 (zh)
MX (1) MX2018016249A (zh)
MY (1) MY191234A (zh)
PH (1) PH12018502712B1 (zh)
PL (1) PL3474516T3 (zh)
RU (1) RU2714098C1 (zh)
SG (1) SG11201811389PA (zh)
TW (1) TWI689181B (zh)
WO (1) WO2017219857A1 (zh)
ZA (1) ZA201900306B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106899648B (zh) 2016-06-20 2020-02-14 阿里巴巴集团控股有限公司 一种数据处理方法和设备
CN110233905B (zh) * 2017-04-20 2020-12-25 腾讯科技(深圳)有限公司 节点设备运行方法、节点设备及存储介质
CN107908370B (zh) * 2017-11-30 2021-07-06 新华三技术有限公司 数据存储方法及装置
CN108616598B (zh) * 2018-05-10 2021-01-01 新华三技术有限公司成都分公司 数据同步方法、装置和分布式存储系统
US12013856B2 (en) 2018-08-13 2024-06-18 Amazon Technologies, Inc. Burst performance of database queries according to query size
CN109117312B (zh) * 2018-08-23 2022-03-01 北京小米智能科技有限公司 数据恢复方法及装置
CN110968561B (zh) * 2018-09-30 2024-02-13 北京国双科技有限公司 日志存储方法和分布式系统
CN111352943A (zh) * 2018-12-24 2020-06-30 华为技术有限公司 实现数据一致性的方法和装置、服务器和终端
US11308100B2 (en) * 2019-06-25 2022-04-19 Amazon Technologies, Inc. Dynamically assigning queries to secondary query processing resources
CN110597673B (zh) * 2019-09-25 2021-04-30 腾讯科技(深圳)有限公司 存储系统的容灾方法、装置、设备及计算机可读存储介质
CN112835885B (zh) * 2019-11-22 2023-09-01 北京金山云网络技术有限公司 一种分布式表格存储的处理方法、装置及系统
CN111209333B (zh) * 2019-12-20 2023-06-20 中国平安财产保险股份有限公司 数据更新方法、装置、终端及存储介质
CN112434054A (zh) * 2020-12-09 2021-03-02 杭州海量存储技术有限公司 一种审计日志的更新方法及装置
CN112615944B (zh) * 2020-12-11 2023-07-11 互联网域名系统北京市工程研究中心有限公司 分布式dns主辅同步的方法和系统
CN113472469B (zh) * 2021-07-27 2023-12-05 厦门亿联网络技术股份有限公司 一种数据同步方法、装置、设备及存储介质
CN116095098B (zh) * 2022-11-28 2024-04-09 华南农业大学 数据的分布式存储方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110093440A1 (en) * 2009-10-19 2011-04-21 International Business Machines Corporation Device and method for generating copy of database
WO2011109416A2 (en) * 2010-03-02 2011-09-09 Microsoft Corporation Automatic synchronization conflict resolution
US20120030172A1 (en) * 2010-07-27 2012-02-02 Oracle International Corporation Mysql database heterogeneous log based replication
CN104657382A (zh) * 2013-11-21 2015-05-27 阿里巴巴集团控股有限公司 用于MySQL主从服务器数据一致性检测的方法和装置

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005502957A (ja) * 2001-09-06 2005-01-27 ビーイーエイ システムズ, インコーポレイテッド 厳密に一回のキャッシュフレームワーク
KR100483742B1 (ko) * 2002-02-18 2005-04-18 주식회사 케이티프리텔 이동 통신 단말기를 이용한 대금 지불 및 개인 정보 관리방법
US7158985B1 (en) * 2003-04-09 2007-01-02 Cisco Technology, Inc. Method and apparatus for efficient propagation of large datasets under failure conditions
US7188273B2 (en) * 2003-11-24 2007-03-06 Tsx Inc. System and method for failover
US7577661B2 (en) 2005-06-30 2009-08-18 Microsoft Corporation Extensible and automatically replicating server farm configuration management infrastructure
WO2008105098A1 (ja) * 2007-02-28 2008-09-04 Fujitsu Limited メモリミラー化制御方法
KR100926880B1 (ko) * 2007-05-21 2009-11-16 엔에이치엔(주) Dbms에서의 데이터 복제 방법 및 시스템
US7631214B2 (en) * 2007-05-31 2009-12-08 International Business Machines Corporation Failover processing in multi-tier distributed data-handling systems
KR101001946B1 (ko) 2008-10-22 2010-12-17 한국과학기술연구원 수소 저장 물질 및 그 제조 방법
KR20100044428A (ko) * 2008-10-22 2010-04-30 현대중공업 주식회사 다중서버 상위구조를 갖는 선박자동화 시스템
CN101582920B (zh) * 2009-06-09 2012-09-05 中兴通讯股份有限公司 一种分布式文件系统中校验和同步数据块的方法及装置
CN101741911B (zh) 2009-12-18 2014-04-30 中兴通讯股份有限公司 基于多副本协同的写操作方法、系统及节点
US8301600B1 (en) * 2010-11-15 2012-10-30 Amazon Technologies, Inc. Failover recovery in a distributed data store
US9251021B2 (en) * 2011-05-23 2016-02-02 Bradley Gene Calder Asynchronous replication in a distributed storage environment
US9348883B2 (en) * 2011-06-01 2016-05-24 Clustrix, Inc. Systems and methods for replication replay in a relational database
CN103580891A (zh) * 2012-07-27 2014-02-12 腾讯科技(深圳)有限公司 一种数据同步的方法、系统及服务器
JP6056453B2 (ja) * 2012-12-20 2017-01-11 富士通株式会社 プログラム、データ管理方法および情報処理装置
CN104346373B (zh) * 2013-07-31 2017-12-15 华为技术有限公司 分区日志队列同步管理方法及设备
CN103560906B (zh) * 2013-10-22 2017-01-25 珠海多玩信息技术有限公司 数据复制的方法及装置
CN103546579B (zh) * 2013-11-07 2017-01-04 陈靓 一种用数据日志提高分布式存储系统可用性的方法
JP6318902B2 (ja) * 2014-06-20 2018-05-09 富士通株式会社 冗長システムおよび冗長化方法
US9367410B2 (en) * 2014-09-12 2016-06-14 Facebook, Inc. Failover mechanism in a distributed computing system
CN104506643A (zh) * 2014-12-30 2015-04-08 北京奇虎科技有限公司 分布式存储系统的服务器及服务器之间的数据同步方法
CN105426439B (zh) * 2015-11-05 2022-07-05 腾讯科技(深圳)有限公司 一种元数据的处理方法和装置
CN105468297A (zh) * 2015-11-18 2016-04-06 临沂大学 一种云存储系统内主从设备数据快速同步的方法
CN105554142B (zh) * 2015-12-24 2019-02-01 北京奇虎科技有限公司 消息推送的方法、装置及系统
CN106899648B (zh) 2016-06-20 2020-02-14 阿里巴巴集团控股有限公司 一种数据处理方法和设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110093440A1 (en) * 2009-10-19 2011-04-21 International Business Machines Corporation Device and method for generating copy of database
WO2011109416A2 (en) * 2010-03-02 2011-09-09 Microsoft Corporation Automatic synchronization conflict resolution
US20120030172A1 (en) * 2010-07-27 2012-02-02 Oracle International Corporation Mysql database heterogeneous log based replication
CN104657382A (zh) * 2013-11-21 2015-05-27 阿里巴巴集团控股有限公司 用于MySQL主从服务器数据一致性检测的方法和装置

Also Published As

Publication number Publication date
WO2017219857A1 (zh) 2017-12-28
US10693965B2 (en) 2020-06-23
US20190149605A1 (en) 2019-05-16
KR102145136B1 (ko) 2020-08-18
KR20190020099A (ko) 2019-02-27
CA3028504A1 (en) 2017-12-28
PL3474516T3 (pl) 2021-02-08
CN111314479A (zh) 2020-06-19
JP2019526106A (ja) 2019-09-12
PH12018502712A1 (en) 2019-07-29
CN106899648B (zh) 2020-02-14
MY191234A (en) 2022-06-10
CN111314479B (zh) 2022-08-23
CN106899648A (zh) 2017-06-27
BR112018076689A2 (pt) 2019-04-02
PH12018502712B1 (en) 2019-07-29
EP3474516A4 (en) 2019-04-24
EP3474516B1 (en) 2020-05-13
BR112018076689B1 (pt) 2021-09-08
MX2018016249A (es) 2019-08-29
TW201801495A (zh) 2018-01-01
ZA201900306B (en) 2021-01-27
SG11201811389PA (en) 2019-01-30
ES2809174T3 (es) 2021-03-03
EP3474516A1 (en) 2019-04-24
AU2017282817A1 (en) 2019-01-31
CA3028504C (en) 2021-02-16
RU2714098C1 (ru) 2020-02-11
US10798168B2 (en) 2020-10-06
AU2017282817B2 (en) 2020-01-02
US20200128076A1 (en) 2020-04-23
JP6684367B2 (ja) 2020-04-22

Similar Documents

Publication Publication Date Title
TWI689181B (zh) 資料處理方法和系統
WO2016127903A1 (zh) 一种数据同步方法、装置和系统
TW201514684A (zh) 使用群集資料庫中之儲存快照的推測性回復
US11917005B2 (en) Clustered storage system synchronization
US20170168756A1 (en) Storage transactions
US11748215B2 (en) Log management method, server, and database system
CN114238495A (zh) 数据库主备集群切换方法、装置、计算机设备及存储介质
JP2019527883A (ja) データベースのデータ変更要求処理方法及び装置
US9405634B1 (en) Federated back up of availability groups
US20180129668A1 (en) Intermediate file processing method, client, server, and system
US10387262B1 (en) Federated restore of single instance databases and availability group database replicas
US11522966B2 (en) Methods, devices and systems for non-disruptive upgrades to a replicated state machine in a distributed computing environment
CN111488247B (zh) 一种管控节点多次容错的高可用方法及设备
CN116389233A (zh) 容器云管理平台主备切换系统、方法、装置和计算机设备
CN113157392B (zh) 镜像仓库高可用方法及设备
US10235250B1 (en) Identifying preferred nodes for backing up availability groups
CN112000282A (zh) 一种存储双活方法、装置及相关组件
US9747166B2 (en) Self healing cluster of a content management system
WO2021259240A1 (zh) 分布式事务处理方法、终端及计算机可读存储介质
US11288148B2 (en) Global entity distribution
CN113157393A (zh) 管理节点高可用方法及设备
CN112131045A (zh) 一种双机热备系统的存储设计及故障恢复的方法与设备
TW201828088A (zh) 節點重啟後的資料處理方法及設備