一種數據更新的方法、系統及設備的製作方法
2023-06-26 23:30:26 1
專利名稱:一種數據更新的方法、系統及設備的製作方法
技術領域:
本發明涉及計算機技術,尤其涉及一種數據更新的方法、系統和設備。
背景技術:
隨著軟體技術的發展以及企業信息化建設,應用系統所要處理的數據量越來越 龐大,所要服務的用戶數量也不斷增加,因此,在應用系統中設置多個節點,並在每個 節點的資料庫中存儲相同的應用數據,以提高應用業務的數據處理效率。例如當多 個用戶向應用系統請求同一業務時,由於應用系統中的每個節點中存儲了相同的應用數 據,因此,每個節點可以響應一個用戶的請求,多業務的並行處理提高了數據處理效 率。為了保證多個節點的資料庫內存儲的數據一致性,需要在一個節點的數據發生 變化時,及時更新其他節點內的數據。常用的數據更新方式有以下兩種第一種應用客戶端控制方式。在本方式下,當有一個節點的數據發生變化時,需要向應用系統中的應用客戶 端發送數據更新請求,則應用客戶端依次對其他各節點資料庫中的數據進行更新,使各 節點的數據保持一致。第二種資料庫雙向複製方式。在本方式下,當有一個節點的數據發生變化時,利用資料庫複製功能,將自身 更新的數據內容發送給其他節點,使各節點的數據保持一致。在上述第一種方式下,需要在應用系統中設置應用客戶端,並為應用客戶端配 置每個節點信息,提供訪問節點數據的接口,在節點數量較多時,會使應用客戶端的設 置非常較複雜。在上述第二種方式下,當兩個節點同時對同一欄位的內容進行修改,且 修改後的數據不同時,兩個節點互相進行雙向複製時會造成數據內容衝突的問題,無法 保持節點的數據一致性;另外,當有多個節點都進行數據修改時,由於每個節點需要接 收其他節點的數據同時將自身修改的數據發送給其他節點,導致資料庫壓力較大,嚴重 影響資料庫的正常工作。
發明內容
本發明實施例提供一種數據更新的方法、系統及設備,以解決節點之間雙向復 制時造成的數據內容衝突和各節點內資料庫工作壓力過大的問題。一種數據更新的方法,所述方法包括主節點接收從節點發送的數據更新請求,所述數據更新請求中包含該從節點變 化的數據信息;主節點根據所述數據信息對自身保存的數據進行更新,以及,向需要進行數據 更新的從節點發送所述數據信息,指示接收到數據信息的從節點對保存的數據進行更 新,更新後的主節點和全部從節點中保存的數據相同。
一種數據更新系統,所述系統包括主節點和從節點,其中所述主節點,用於接收從節點發送的數據更新請求,所述數據更新請求中包含 該從節點變化的數據信息,並根據所述數據信息對自身保存的數據進行更新,以及,向 需要進行數據更新的從節點發送所述數據信息;所述從節點,用於根據接收到的數據信息對自身保存的數據進行更新,更新後 的主節點和全部從節點中保存的數據相同。一種網絡設備,所述設備包括請求接收模塊,用於接收其他網絡設備發送的數據更新請求,所述數據更新請 求中包含其他網絡設備變化的數據信息;數據更新模塊,用於根據數據更新請求中的數據信息對保存的數據進行更新;數據發送模塊,用於向其他需要進行數據更新的網絡設備發送所述數據信息, 指示接收到數據信息的網絡設備對保存的數據進行更新,更新後各網絡設備中保存的數 據相同;數據保存模塊,用於保存數據。由於本發明將應用系統中的多節點劃分為一個主節點和多個從節點的形式,要 求主節點可以讀寫數據,而從節點只能讀數據,使得傳統數據一致性的更新過程由雙向 複製轉變為主節點至從節點的單向複製,因此,解決了節點之間雙向複製時造成的數據 內容衝突和各節點內資料庫工作壓力過大的問題。
圖1為本發明實施例一中進行數據更新的方法的示意圖;圖2為本發明實施例三中數據更新系統的結構示意圖;圖3為本發明實施例四中網絡設備的結構示意圖。
具體實施例方式為了實現本發明目的,本發明實施例將多節點劃分為一個主節點和至少一個從 節點,要求主節點可以讀寫數據,而從節點只能讀數據,當任一節點需要進行數據更新 時,都要在主節點進行數據更新後,通過單向複製技術實現從節點的數據更新,以解決 節點之間雙向複製時造成的數據內容衝突和各節點內資料庫工作壓力過大的問題。下面結合說明書附圖對本發明實施例進行詳細描述。實施例一如圖1所示,為本發明實施例一中進行數據更新的方法步驟示意圖,所述方法 包括以下步驟步驟101 主節點接收從節點發送的數據更新請求,所述數據更新請求中包含 該從節點變化的數據信息。在本發明實施例中涉及的主節點和從節點是應用系統中的節點,每個節點中有 用於存儲數據的資料庫,為了保證應用業務的正確、高效運行,要求主從節點中存儲的 數據內容相同。可以將應用系統中的任意一個節點作為主節點,其他節點作為從節點。
5
主節點的數量為一個,從節點的數量可以為一個也可以為多個。數據更新請求中包含的數據信息主要包括以下內容更新方式、更新欄位標誌 位和更新內容;這裡的更新方式包括刪除、增加和修改中的一種或多種組合。步驟102 主節點根據從節點變化的數據信息對自身保存的數據進行更新。主節點接收到一條數據更新請求後,讀取並解析其中一個從節點變化的數據信 息,按照數據信息中的更新方式和更新內容,對自身保存的數據中更新欄位標誌位指示 的欄位中的內容進行更新。步驟103:主節點向需要進行數據更新的從節點發送所述數據信息,指示接收 到數據信息的從節點對保存的數據進行更新。在本步驟中,假設發送數據更新請求的從節點為從節點A,則主節點可以向全 部從節點(包括從節點A)發送數據信息,要求全部從節點只能根據接收到的來自主節點 的數據信息後,根據數據信息中的內容對自身保存的數據進行更新;主節點還可以向發 送數據更新請求之外的其他從節點(除從節點A之外的從節點)發送數據信息,要求其 他從節點根據接收到的數據信息,對從節點A請求的信息進行更新,從節點A可以在發 起數據更新請求之前或之後,按照數據更新請求中的數據信息對自身保存的數據進行更 新。不論用上述何種方式進行數據更新,更新後的主節點和全部從節點中保存的數 據相同,以保證多節點數據的一致性。每個從節點按照主節點發送的數據信息中的更新方式和更新內容,對自身保存 的數據中更新欄位標誌位指示的欄位中的內容進行更新。在本實施例中,發送數據更新請求的從節點並不在生成數據更新請求時進行自 我更新,而是在步驟103中讀取主節點發送的數據信息而進行數據更新。在本實施例一中,步驟102和步驟103的順序不固定,主節點可以在接收到數據 更新請求後,可以先將其中的數據信息發送給從節點再進行自我更新,也可以進行自我 更新後再將數據信息發送給從節點,或者在進行自我更新的過程中將數據信息發送給從 節點。步驟104:當主節點中的數據需要變化時,主節點根據需要變化的數據生成數 據信息。步驟105:主節點根據生成的數據信息對自身保存的數據進行更新。步驟106:主節點向每個從節點發送生成的所述數據信息,指示各從節點根據 接收到的數據信息對保存的數據進行更新。需要說明的是,本實施例中步驟104 步驟106可以在步驟101之前發生,也可 以在步驟103之後發生,如果在步驟101 步驟103的執行過程中主節點中的數據需要變 化,則在步驟103執行完畢後再執行步驟104 步驟106。通過以上步驟101 步驟106的描述,實現了多節點內的數據更新,由於每個節 點的數據更新過程都由主節點通過單向複製技術完成,各從節點只需要單向接收主節點 發送的數據,避免了節點中資料庫同時進行雙向複製導致資料庫工作壓力過大的問題, 並且,當多個節點需要同時對同一欄位內容進行不同修改時,各節點需要向主節點發送 數據更新請求,由於主節點一次只能響應一個數據更新請求,因此,避免了多節點雙向複製時的數據衝突問題;另外,應用系統中的各節點之間具有相互通信的能力,因此, 不需要對主節點的接口進行額外配置,使本發明實施例方案實現簡便。在實施例一的方案中,可能存在多個從節點同時發起數據更新請求,也可能在 一段時間內沒有從節點發起數據更新請求,則主節點可以維護一個消息隊列,當有一個 從節點發起數據更新請求時,就將該數據更新請求寫入消息隊列中。如果在短時間內有 多個從節點發起數據更新請求,則按照數據更新請求到達主節點的先後順序排列在消息 隊列中。由於主節點不一定能實時接收到從節點發送的數據更新請求,則可以在步驟101 之前執行以下步驟步驟100:主節點啟動後,對消息隊列中的內容進行檢測,判斷消息隊列中是 否有未處理的數據更新請求;若有,則執行步驟101;否則,將對消息隊列繼續進行檢 測。如果在步驟100中檢測出消息隊列中存在多個數據更新請求,則主節點將接收 到的各數據更新請求按接收先後順序排列在消息隊列中。步驟101中主節點依次讀取排 列在消息隊列第一位的數據更新請求,然後,在步驟102中主節點根據消息隊列中的各 數據更新請求的先後順序,依次對自身保存的數據進行更新,以及,在進行一次數據更 新後,將本次用於數據更新的數據信息向每個從節點發送。例如步驟100中檢測出消 息隊列中按照接收先後順序排列兩個數據更新請求,分別為數據更新請求1,數據更新請 求2。主節點首先讀取數據更新請求1,然後依據數據更新請求1中的數據信息對自身保 存的數據進行更新,以及將數據更新請求1中的數據信息發送給各從節點;接著,主節 點再讀取數據更新請求2,並再次進行數據更新過程。實施例二本發明實施例一的方案可以應用在多種應用系統中,如PUSHMAIL應用系統 中。下面通過具體的實例說明實施例一的具體實現方法。假設本實施例二中從節點1需要將欄位1中的數據修改為A,從節點2需要將字 段1中的數據刪除,本實施例二的方案如下第一步從節點1將更新的數據封裝成數據更新請求1,並發送至消息隊列,其 中數據信息的內容如表1所示;從節點2將更新的數據封裝成數據更新請求2,並發送至 消息隊列,其中數據信息的內容如表2所示。
請求的從節點標識更新方式更新欄位標誌位更新內容從節點1修改欄位1A表1
請求的從節點標識更新方式更新欄位標誌位更新內容
權利要求
1.一種數據更新的方法,其特徵在於,所述方法包括主節點接收從節點發送的數據更新請求,所述數據更新請求中包含該從節點變化的 數據信息;主節點根據所述數據信息對自身保存的數據進行更新,以及,向需要進行數據更新 的從節點發送所述數據信息,指示接收到數據信息的從節點對保存的數據進行更新,更 新後的主節點和全部從節點中保存的數據相同。
2.如權利要求1所述的方法,其特徵在於,所述方法還包括當主節點中的數據需要變化時,主節點根據需要變化的數據生成數據信息;主節點根據生成的數據信息對自身保存的數據進行更新,以及,向每個從節點發送 生成的所述數據信息,指示各從節點根據接收到的數據信息對保存的數據進行更新。
3.如權利要求1所述的方法,其特徵在於,所述方法還包括在主節點接收多個數據更新請求時,主節點將接收到的各數據更新請求按接收先後 順序排列成消息隊列;主節點根據從節點變化的數據信息對自身保存的數據進行更新,以及,向每個從節 點發送所述數據信息,包括主節點根據消息隊列中的各數據更新請求,依次對自身保存的數據進行更新,以 及,在進行一次數據更新後,將本次用於數據更新的數據信息向每個從節點發送。
4.如權利要求1 3任一所述的方法,其特徵在於,所述數據更新請求中的數據信息包括更新方式、更新欄位標誌位和更新內容;主節點和從節點按照所述更新方式和更新內容,對自身保存的數據中更新欄位標誌 位指示的欄位中的內容進行更新。
5 種數據更新系統,其特徵在於,所述系統包括主節點和從節點,其中所述主節點,用於接收從節點發送的數據更新請求,所述數據更新請求中包含該從節點變化的數據信息,並根據所述數據信息對自身保存的數據進行更新,以及,向需要 進行數據更新的從節點發送所述數據信息;所述從節點,用於根據接收到的數據信息對自身保存的數據進行更新,更新後的主 節點和全部從節點中保存的數據相同。
6.如權利要求5所述的系統,其特徵在於,所述需要進行數據更新的從節點為全部從 節點,或發送數據更新請求之外的其他從節點。
7.如權利要求5或6所述的系統,其特徵在於,所述主節點,還用於在自身數據需要變化時,根據需要變化的數據生成數據信息, 並按照生成的數據信息對自身保存的數據進行更新,以及,向每個從節點發送生成的所 述數據信息。
8.如權利要求5或6所述的系統,其特徵在於,所述主節點,還用於在接收多個數據更新請求時,將接收到的各數據更新請求按接 收先後順序排列成消息隊列,並根據消息隊列中的各數據更新請求,依次對自身保存的 數據進行更新,以及,在進行一次數據更新後,將本次用於數據更新的數據信息向每個 從節點發送。
9.一種網絡設備,其特徵在於,所述設備包括請求接收模塊,用於接收其他網絡設備發送的數據更新請求,所述數據更新請求中 包含其他網絡設備變化的數據信息;數據更新模塊,用於根據數據更新請求中的數據信息對保存的數據進行更新; 數據發送模塊,用於向其他需要進行數據更新的網絡設備發送所述數據信息,指示 接收到數據信息的網絡設備對保存的數據進行更新,更新後各網絡設備中保存的數據相 同;數據保存模塊,用於保存數據。
10.如權利要求9所述的網絡設備,其特徵在於,所述設備還包括 請求發送模塊,用於向其他網絡設備發送數據更新請求,所述數據更新請求中包含 自身變化的數據信息;數據接收模塊,用於接收其他網絡設備發送的數據信息;所述數據更新模塊,還用於根據其他網絡設備發送的數據信息對保存的數據進行更新。
全文摘要
本發明公開了一種數據更新的方法、系統及設備,通過將應用系統中的多節點劃分為一個主節點和多個從節點的形式,要求主節點可以讀寫數據,而從節點只能讀數據,使得傳統數據一致性的更新過程由雙向複製轉變為主節點至從節點的單向複製,因此,解決了節點之間雙向複製時造成的數據內容衝突和各節點內資料庫工作壓力過大的問題。
文檔編號H04L1/22GK102012899SQ20091009232
公開日2011年4月13日 申請日期2009年9月7日 優先權日2009年9月7日
發明者於蓉蓉, 劉越, 王磊, 王磊建, 範曉暉 申請人:中國移動通信集團公司