TWI731926B - 一種資料同步方法和裝置 - Google Patents

一種資料同步方法和裝置 Download PDF

Info

Publication number
TWI731926B
TWI731926B TW106102729A TW106102729A TWI731926B TW I731926 B TWI731926 B TW I731926B TW 106102729 A TW106102729 A TW 106102729A TW 106102729 A TW106102729 A TW 106102729A TW I731926 B TWI731926 B TW I731926B
Authority
TW
Taiwan
Prior art keywords
synchronization
threads
data
synchronized
thread
Prior art date
Application number
TW106102729A
Other languages
English (en)
Other versions
TW201828119A (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 香港商阿里巴巴集團服務有限公司
Priority to TW106102729A priority Critical patent/TWI731926B/zh
Publication of TW201828119A publication Critical patent/TW201828119A/zh
Application granted granted Critical
Publication of TWI731926B publication Critical patent/TWI731926B/zh

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申請實施例提供了一種根據源資料庫中待同步資料的資料量和同步任務的優先級,生成期望運行的同步執行緒數;按照期望運行的同步執行緒數進行執行緒配置,並採用配置的執行緒針對所述待同步資料同步至目標資料庫。根據本申請實施例,可以針對於同步任務的實際情況動態配置執行緒,避免出現部分執行緒已經完成同步任務,而同一任務的其他執行緒還處於等待狀態的情況,提升了資料同步的效率和穩定性。

Description

一種資料同步方法和裝置
本申請涉及網際網路技術領域,特別是涉及一種資料同步方法和一種資料同步裝置。
資料同步任務是針對不同資料庫之間的資料同步而創建的一系列週期排程的任務。在一個大型的資料排程系統中,經常會在同一時間運行有大量的資料同步任務。例如將HDFS(Hadoop Distributed File System,Hadoop分佈式文件系統)的資料同步至mySQL(關係型資料庫管理系統),或者從HDFS同步資料至Hbase(Hadoop Database,分佈式儲存系統)。
在使用資料同步任務將源資料庫的資料同步至目標資料庫時,用戶通常需要預先設置一個同步執行緒數,同步控制器根據預設的同步執行緒數叫用相應的執行緒,分發到一個或多個同步處理設備,由同步處理設備進行資料同步處理。然而,當某個同步任務的待同步資料的資料量較大,如果將該同步任務的執行緒分發到比較繁忙的同步處理設備,其無法叫用滿足預設的同步執行緒數進行同步, 可能部分執行緒已經完成同步任務,而同一任務的其他執行緒還處於等待狀態,從而導致整個同步任務的平均同步速度較低。因此,目前的資料同步方式無法有效利用同步處理設備的同步處理能力,存在著資料同步效率較低的問題。
鑒於上述問題,提出了本申請實施例以便提供一種克服上述問題或者至少部分地解決上述問題的一種資料同步方法和相應的一種資料同步裝置。
為了解決上述問題,本申請公開了一種資料同步方法,包括:根據源資料庫中待同步資料的資料量和同步任務的優先級,生成期望運行的同步執行緒數;按照期望運行的同步執行緒數進行執行緒配置,並採用配置的執行緒針對所述待同步資料同步至目標資料庫。
可選地,所述按照期望運行的同步執行緒數進行執行緒配置包括:判斷所述期望運行的同步執行緒數是否大於運行所需的同步執行緒數;若是,則根據所述期望運行的同步執行緒數和所述運行所需的同步執行緒數的差值,補充配置相應的執行緒。
可選地,在所述根據源資料庫中待同步資料的資料量和同步任務的優先級,生成期望運行的同步執行緒數之 前,所述方法還包括:從用戶提交的資料同步任務中,獲取所述同步任務的優先級,並從保存有待同步資料的所述源資料庫中,獲取所述待同步資料的資料量。
可選地,所述根據源資料庫中待同步資料的資料量和同步任務的優先級,生成期望運行的同步執行緒數包括:查找針對所述待同步資料的資料量和同步任務的優先級的平均同步速率;利用所述平均同步速率、同步處理設備的最大同步速率和所述同步處理設備可供同步處理的執行緒數,計算所述期望運行的同步執行緒數。
可選地,在所述判斷所述期望運行的同步執行緒數是否大於運行所需的同步執行緒數之前,所述方法還包括:從待與源資料庫進行資料同步的所述目標資料庫中,獲取所述運行所需的同步執行緒數。
可選地,在所述採用配置的執行緒針對所述待同步資料同步至目標資料庫之前,所述方法還包括:按照所述運行所需的同步執行緒數將所述待同步資料拆分成多個待同步資料塊;所述採用配置的執行緒針對所述待同步資料同步至目標資料庫為:將用於同步各個待同步資料塊的同步執行緒,排程至同步處理設備,以由所述同步處理設備處理所述同步執行緒。
可選地,所述採用配置的執行緒針對所述待同步資料同步至目標資料庫包括:將執行緒屬性滿足預設條件的至少一個同步執行緒優先發送至所述同步處理設備。
可選地,所述預設條件包括以下至少一種:所述至少一個同步執行緒屬於同一個資料同步任務、待處理時間大於預設時間閾值、對應同步任務的優先級大於預設優先級閾值、單個同步處理設備可同步處理。
可選地,所述採用配置的執行緒針對所述待同步資料同步至目標資料庫包括:將所述同步執行緒優先發送至可供同步處理的最大執行緒數大於預設執行緒數閾值的同步處理設備。
為了解決上述問題,本申請還公開了一種資料同步裝置,包括:同步執行緒數生成模組,用於根據源資料庫中待同步資料的資料量和同步任務的優先級,生成期望運行的同步執行緒數;同步處理模組,用於按照期望運行的同步執行緒數進行執行緒配置,並採用配置的執行緒針對所述待同步資料同步至目標資料庫。
可選地,所述同步處理模組包括:同步執行緒數判斷子模組,用於判斷所述期望運行的同步執行緒數是否大於運行所需的同步執行緒數,若是,則叫用執行緒補充子模組; 執行緒補充子模組,用於根據所述期望運行的同步執行緒數和所述運行所需的同步執行緒數的差值,補充配置相應的執行緒。
可選地,所述裝置還包括:優先級及資料量獲取模組,用於從用戶提交的資料同步任務中,獲取所述同步任務的優先級,並從保存有待同步資料的源資料庫中,獲取所述待同步資料的資料量。
可選地,所述同步執行緒數生成模組包括:平均同步速率查找子模組,用於查找針對所述待同步資料的資料量和同步任務的優先級的平均同步速率;同步執行緒數計算子模組,用於利用所述平均同步速率、同步處理設備的最大同步速率和所述同步處理設備可供同步處理的執行緒數,計算所述期望運行的同步執行緒數。
可選地,所述裝置還包括:運行所需同步執行緒數獲取模組,用於從待與源資料庫進行資料同步的目標資料庫中,獲取所述運行所需的同步執行緒數。
可選地,所述裝置還包括:待同步資料拆分模組,用於按照所述運行所需的同步執行緒數將所述待同步資料拆分成多個待同步資料塊;所述同步處理模組具體用於:將用於同步各個待同步資料塊的同步執行緒,排程至同步處理設備,以由所述同步處理設備處理所述同步執行 緒。
可選地,所述同步處理模組具體用於:將執行緒屬性滿足預設條件的至少一個同步執行緒優先發送至所述同步處理設備。
可選地,所述預設條件包括以下至少一種:所述至少一個同步執行緒屬於同一個資料同步任務、待處理時間大於預設時間閾值、對應同步任務的優先級大於預設優先級閾值、單個同步處理設備可同步處理。
可選地,所述同步處理設備包括多個,所述同步處理模組具體用於:將所述同步執行緒優先發送至可供同步處理的最大執行緒數大於預設執行緒數閾值的同步處理設備。
本申請實施例包括以下優點:
根據本申請實施例,透過根據源資料庫中待同步資料的資料量和同步任務的優先級生成期望運行的同步執行緒數,根據期望運行的同步執行緒數配置相應數量的執行緒進行資料同步,從而可以針對於同步任務的實際情況動態配置執行緒,避免出現部分執行緒已經完成同步任務,而同一任務的其他執行緒還處於等待狀態的情況,提升了資料同步的效率和穩定性。而且,根據同步任務的優先級動態調整期望運行的同步執行緒數,使得重要程度較高的同步任務可以優先得到處理。
301‧‧‧同步執行緒數生成模組
302‧‧‧同步處理模組
401‧‧‧優先級及資料量獲取模組
402‧‧‧同步執行緒數獲取模組
403‧‧‧同步執行緒數生成模組
404‧‧‧同步處理模組
圖1是本申請的一種資料同步方法實施例一的步驟流程圖;圖2是本申請的一種資料同步方法實施例二的步驟流程圖;圖3是本申請的一種資料同步裝置實施例一的結構方塊圖;圖4是本申請的一種資料同步裝置實施例二的結構方塊圖。
為使本申請的上述目的、特徵和優點能夠更加明顯易懂,下面結合附圖和具體實施方式對本申請作進一步詳細的說明。
參照圖1,示出了本申請的一種資料同步方法實施例一的步驟流程圖,具體可以包括如下步驟:
步驟101,根據源資料庫中待同步資料的資料量和同步任務的優先級,生成期望運行的同步執行緒數。
需要說明的是,期望運行的同步執行緒數可以為由用戶預先設置的首輪同步執行緒數或多輪同步執行緒數。因為用戶無法得知本次同步任務中待同步資料的情況和同步處理設備的運行情況,或者用戶並不瞭解如何設置,所設置的同步執行緒數可能與運行同步時實際所需的同步執行緒數並不匹配,從而導致同步時將同步執行緒分發到繁忙的同步處理設備上;或者用戶將期望運行的同步執行緒數 設置成一個固定值,從而導致同步任務得不到合理的同步處理資源分配而影響同步效率。此外,不同資料的同步任務的重要程式不相同,而同步控制器將各個同步任務平等對待,導致重要的同步執行緒因得不到處理資源而無法優先同步。因此,利用目前的資料同步方式進行資料同步,可能會導致上述的問題,從而最終導致資料同步效率較低,同步任務的處理也缺乏穩定性。
本申請實施例的具體實現中,可以利用源資料庫中待同步資料的資料量和同步任務的優先級,生成期望運行的同步執行緒數。實際應用中,用戶可以提交一個資料同步任務中,該資料同步任務通常包含有同步任務優先級的相關資訊,因此可以從中獲取同步任務的優先級。針對用戶提交的資料同步任務,可以從待同步資料來源的源資料庫中,獲取同步資料的資料量。當然,本領域技術人員可以採用其他途徑獲取資料量和優先級等的資訊,例如在資料同步任務中嵌入待同步資料的資料量和同步任務的優先級等的資訊,以便於從提交的資料同步任務中直接獲取資料量和優先級。
根據資料量和優先級生成期望運行的同步執行緒數的具體方式可以有多種。例如,可以預設一個資料量-優先級-平均同步速率的對照表,對照表中不同的資料量和優先級的組合對應一個特定的平均同步速率。根據資料量和優先級查找到對應的平均同步速率。將查找的平均同步速率,處以同步處理設備上每個CPU(Central Processing Unit,中央處理器)可以運行的同步速率,可確定同步所需的CPU數量,可以將該CPU數量作為期望運行的同步執行緒數。
步驟102,按照期望運行的同步執行緒數進行執行緒配置,並採用配置的執行緒針對所述待同步資料同步至目標資料庫。
可以按照期望運行的同步執行緒數,對同步執行緒進行配置。配置的方式可以有多種,例如可以根據期望運行的同步執行緒數與同步運行實際所需的同步執行緒數的差值,配置相應的虛擬執行緒,利用配置的虛擬執行緒將同步處理設備上的部分CPU置於待機狀態並暫停處理其他同步任務,以保證同步處理設備有足夠的資源處理該資料同步任務;當期望運行的同步執行緒數與同步運行實際所需的同步執行緒數相同,則可以直接按照期望運行的同步執行緒數,配置相應的實體執行緒。
可以採用配置的實體執行緒和/或虛擬執行緒同步處理待同步資料。實際應用中,可以先將待同步資料拆分成多個待同步資料塊,每個配置的執行緒分別用於同步多個待同步資料塊。根據同步處理設備的剩餘處理資源,將多個執行緒排程至一個或多個同步處理設備,由同步處理設備將多個待同步資料塊同步至目標資料庫。
在同步控制器將同步執行緒排程至同步處理設備時,可以判斷同步運行實際所需的同步執行緒數是否大於期望運行的同步執行緒數,根據判斷結果進行不同方式的排 程。
例如,當同步運行實際所需的同步執行緒數大於期望運行的同步執行緒數,同步控制器可以採用多機多執行緒的資料同步模式,準備針對該同步任務配置的第一輪實體執行緒的排程,優先發送等待時間最長、優先級最高且屬於相同同步任務的實體執行緒至多個同步處理設備,以保證該同步任務的各個執行緒的可以得到優先處理,避免某個執行緒已經完成同步,而同屬一個同步任務的其他執行緒還處於等待處理的狀態,影響到該同步任務的平均同步速率。
當同步運行實際所需的同步執行緒數小於期望運行的同步執行緒數,同步控制器可以採用單機多執行緒的資料同步模式,準備針對該同步任務配置的實體執行緒和虛擬執行緒的排程,將等待時間最長、優先級最高且屬於相同同步任務的執行緒,優先發送至某一個剩餘處理資源可以支持期望運行的同步執行緒數的同步處理設備上;如果沒有滿足條件的同步處理設備,可以優先選擇剩餘處理資源最多的一個同步處理設備作為發送對象。
當然,本領域技術人員可以根據實際情況採用單機單執行緒、多機單執行緒等的資料同步模式進行排程,排程時可以根據同步處理設備的處理資源進行負載均衡排程,也可以隨機排程,本申請實施例對此不作限制。
根據本申請實施例,透過根據源資料庫中待同步資料的資料量和同步任務的優先級生成期望運行的同步執行緒 數,根據期望運行的同步執行緒數配置相應數量的執行緒進行資料同步,從而可以針對於同步任務的實際情況動態配置執行緒,避免出現部分執行緒已經完成同步任務,而同一任務的其他執行緒還處於等待狀態的情況,提升了資料同步的效率和穩定性。而且,根據同步任務的優先級動態調整期望運行的同步執行緒數,使得重要程度較高的同步任務可以優先得到處理。
參照圖2,示出了本申請的一種資料同步方法實施例二的步驟流程圖,具體可以包括如下步驟:
步驟201,從用戶提交的資料同步任務中,獲取所述同步任務的優先級,並從保存有待同步資料的源資料庫中,獲取所述待同步資料的資料量。
具體的實現中,在需要進行資料同步時,用戶可以在客戶端創建資料同步任務並提交給相應的同步處理伺服器。在創建資料同步任務時,客戶端可以根據待同步資料的重要程度生成相應的優先級,並包含在資料同步任務中,因此同步處理伺服器可以從提交的資料同步任務中獲取同步任務的優先級。此外,還可以從保存有待同步資料的源資料庫的後設資料中讀取待同步資料的資料量。例如從HDFS同步至Hbase時,透過讀取HDFS的資訊獲取待同步資料的資料量,其他類型的資料庫也可以透過類似的方式獲取資料量。
步驟202,查找針對所述待同步資料的資料量和同步任務的優先級的平均同步速率。
步驟203,利用所述平均同步速率、同步處理設備的最大同步速率和所述同步處理設備可供同步處理的執行緒數,計算所述期望運行的同步執行緒數。
可以根據獲取到的待同步資料的資料量和同步任務的優先級,查找同步任務的平均同步速率。具體地,可以預先根據資料量和優先級初始化同步任務的期望平均同步速率,例如:
Figure 106102729-A0202-12-0012-1
根據當前的同步任務中待同步資料的資料量和同步任務的優先級進行查找,例如,資料量為0-10G,優先級為8的同步任務,可以查找到其對應的平均同步任務為30mb/s。
然後根據每個同步處理設備的處理資源,計算同步所需的CPU數量。例如,每個同步處理設備具有6個CPU內核,其最大同步速率為60mb/s,則可以計算得到每個CPU可以運行的最大同步速率為10mb/s。
將查找的同步任務的期望平均同步速率30mb/s除以每個CPU可以運行的最大同步速率為10mb/s,可以計算出所需的CPU個數為3,即為期望運行的同步執行緒數。
步驟204,從待與源資料庫進行資料同步的目標資料 庫中,獲取所述運行所需的同步執行緒數。
可以從目標資料庫的源資料讀取運行所需的同步執行緒數,例如從HDFS同步至HBase時,可以讀取HBase目標表的Region個數,以Hbase目標表的Region個數作為運行所需的同步執行緒數。Region是HBase資料儲存和管理的基本單位,通常由Region確定目標資料庫在同步時採用的執行緒數。
步驟205,判斷所述期望運行的同步執行緒數是否大於運行所需的同步執行緒數;若是,則進行步驟206。
步驟206,根據所述期望運行的同步執行緒數和所述運行所需的同步執行緒數的差值,補充配置相應的執行緒。
當期望運行的同步執行緒數大於同步運行實際所需的同步執行緒數,可以根據期望運行的同步執行緒數減去運行所需的同步執行緒數的差值,補充配置相應的虛擬執行緒,利用配置的虛擬執行緒將同步處理設備上的部分CPU置於待機狀態並暫停處理其他同步任務,以保證同步處理設備有足夠的資源處理該資料同步任務。
步驟207,按照所述運行所需的同步執行緒數將所述待同步資料拆分成多個待同步資料塊。
步驟208,採用配置的執行緒針對所述待同步資料同步至目標資料庫。
作為本申請實施例的優選示例,所述步驟208可以具體為:
將用於同步各個待同步資料塊的同步執行緒,排程至同步處理設備,以由所述同步處理設備處理所述同步執行緒。
可以將待同步資料拆分成多個待同步資料塊,每個配置的執行緒分別用於同步多個待同步資料塊。根據同步處理設備的剩餘處理資源,將多個執行緒排程至一個或多個同步處理設備,由同步處理設備將多個待同步資料塊同步至目標資料庫。
在實際的應用中,可以將資料同步任務對應的多個執行緒提交至同步控制器,由同步控制器進行期望運行的同步執行緒數是否大於運行所需的同步執行緒數的判斷處理,並根據判斷結果相應地補充配置執行緒和將執行緒排程至多個同步處理設備。
作為本申請實施例的優選示例,所述步驟208可以包括:
將執行緒屬性滿足預設條件的至少一個同步執行緒優先發送至所述同步處理設備;其中,所述預設條件可以包括以下至少一種:
所述至少一個同步執行緒屬於同一個資料同步任務、待處理時間大於預設時間閾值、對應同步任務的優先級大於預設優先級閾值、單個同步處理設備可同步處理。
針對期望運行的同步執行緒數大於同步運行實際所需的同步執行緒數的情況,同步控制器可以採用單機多執行緒的資料同步模式,準備針對該同步任務配置的實體執行 緒和虛擬執行緒的排程,將待處理時間大於預設時間閾值、優先級大於預設優先級閾值且屬於同一個資料同步任務的執行緒,優先發送至單個同步處理設備可同步處理的同步處理設備上;如果沒有滿足條件的同步處理設備,可以優先選擇剩餘處理資源最多的一個同步處理設備作為發送對象。
作為本申請實施例的優選示例,所述同步處理設備包括多個,所述步驟208可以包括:將所述同步執行緒優先發送至可供同步處理的最大執行緒數大於預設執行緒數閾值的同步處理設備。
實際應用中,可能暫時沒有能滿足單個同步處理設備可同步處理的該預設條件的同步處理設備,此時可以將同步執行緒優先發送至可供同步處理的最大執行緒數大於預設執行緒數閾值的多個同步處理設備上,即選擇CPU剩餘處理資源較多的同步處理設備進行首輪或多輪的資料同步。針對多個同步處理設備的排程,可以根據同步處理設備的處理資源進行負載均衡排程,也可以隨機排程,本申請實施例對此不作限制。
根據本申請實施例,根據期望運行的同步執行緒數和運行所需的同步執行緒數的差值補充配置相應的虛擬執行緒,利用虛擬執行緒將同步處理設備上的部分CPU置於待機狀態並暫停處理其他同步任務,以保證同步處理設備有足夠的資源處理該資料同步任務,提升了資料同步的效率和穩定性。而且,不需要從系統層面控制CPU的使 用,提升了資料同步的靈活性。
需要說明的是,對於方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本申請實施例並不受所描述的動作順序的限制,因為依據本申請實施例,某些步驟可以採用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬於優選實施例,所涉及的動作並不一定是本申請實施例所必須的。
參照圖3,示出了本申請的一種資料同步裝置實施例一的結構方塊圖,具體可以包括如下模組:
同步執行緒數生成模組301,用於根據源資料庫中待同步資料的資料量和同步任務的優先級,生成期望運行的同步執行緒數。
同步處理模組302,用於按照期望運行的同步執行緒數進行執行緒配置,並採用配置的執行緒針對所述待同步資料同步至目標資料庫。
根據本申請實施例,透過根據源資料庫中待同步資料的資料量和同步任務的優先級生成期望運行的同步執行緒數,根據期望運行的同步執行緒數配置相應數量的執行緒進行資料同步,從而可以針對於同步任務的實際情況動態配置執行緒,避免出現部分執行緒已經完成同步任務,而同一任務的其他執行緒還處於等待狀態的情況,提升了資料同步的效率和穩定性。而且,根據同步任務的優先級動態調整期望運行的同步執行緒數,使得重要程度較高的同 步任務可以優先得到處理。
參照圖4,示出了本申請的一種資料同步裝置實施例二的結構方塊圖,具體可以包括如下模組:
優先級及資料量獲取模組401,用於從用戶提交的資料同步任務中,獲取所述同步任務的優先級,並從保存有待同步資料的源資料庫中,獲取所述待同步資料的資料量。
運行所需同步執行緒數獲取模組402,用於從待與源資料庫進行資料同步的目標資料庫中,獲取所述運行所需的同步執行緒數。
同步執行緒數生成模組403,用於根據源資料庫中待同步資料的資料量和同步任務的優先級,生成期望運行的同步執行緒數。
同步處理模組404,用於按照期望運行的同步執行緒數進行執行緒配置,並採用配置的執行緒針對所述待同步資料同步至目標資料庫。
作為本申請實施例的優選示例,所述同步執行緒數生成模組403可以包括:平均同步速率查找子模組,用於查找針對所述待同步資料的資料量和同步任務的優先級的平均同步速率;同步執行緒數計算子模組,用於利用所述平均同步速率、同步處理設備的最大同步速率和所述同步處理設備可供同步處理的執行緒數,計算所述期望運行的同步執行緒數。
作為本申請實施例的優選示例,所述同步處理模組404可以包括:同步執行緒數判斷子模組,用於判斷所述期望運行的同步執行緒數是否大於運行所需的同步執行緒數,若是,則叫用執行緒補充子模組。
執行緒補充子模組,用於根據所述期望運行的同步執行緒數和所述運行所需的同步執行緒數的差值,補充配置相應的執行緒。
作為本申請實施例的優選示例,所述裝置可以還包括:待同步資料拆分模組,用於按照所述運行所需的同步執行緒數將所述待同步資料拆分成多個待同步資料塊。
作為本申請實施例的優選示例一,所述同步處理模組404可以具體用於:將用於同步各個待同步資料塊的同步執行緒,排程至同步處理設備,以由所述同步處理設備處理所述同步執行緒。
作為本申請實施例的優選示例二,所述同步處理模組404可以具體用於:將執行緒屬性滿足預設條件的至少一個同步執行緒優先發送至所述同步處理設備。
作為本申請實施例的優選示例,所述預設條件包括以下至少一種:
所述至少一個同步執行緒屬於同一個資料同步任務、 待處理時間大於預設時間閾值、對應同步任務的優先級大於預設優先級閾值、單個同步處理設備可同步處理。
作為本申請實施例的優選示例三,所述同步處理設備包括多個,所述同步處理模組404可以具體用於:將所述同步執行緒優先發送至可供同步處理的最大執行緒數大於預設執行緒數閾值的同步處理設備。
根據本申請實施例,根據期望運行的同步執行緒數和運行所需的同步執行緒數的差值補充配置相應的虛擬執行緒,利用虛擬執行緒將同步處理設備上的部分CPU置於待機狀態並暫停處理其他同步任務,以保證同步處理設備有足夠的資源處理該資料同步任務,提升了資料同步的效率和穩定性。而且,不需要從系統層面控制CPU的使用,提升了資料同步的靈活性。
對於裝置實施例而言,由於其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
本說明書中的各個實施例均採用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
本領域內的技術人員應明白,本申請實施例的實施例可提供為方法、裝置、或計算機程式產品。因此,本申請實施例可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本申請實施例可採用在一個或多個其中包含有計算機可用程式代碼的計算 機可用儲存媒體(包括但不限於磁碟儲存器、CD-ROM、光學儲存器等)上實施的計算機程式產品的形式。
在一個典型的配置中,所述計算機設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和內存記憶體。內存記憶體可能包括計算機可讀媒體中的非永久性記憶體,隨機存取記憶體(RAM)和/或非揮發性內存記憶體等形式,如唯讀記憶體(ROM)或快閃內存記憶體(flash RAM)。內存記憶體是計算機可讀媒體的示例。計算機可讀媒體包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是計算機可讀指令、資料結構、程式的模組或其他資料。計算機的儲存媒體的例子包括,但不限於相變內存記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀儲存器(ROM)、電可抹除可編程唯讀記憶體(EEPROM)、快閃記憶體或其他內存技術、只讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁磁盤儲存或其他磁性儲存設備或任何其他非傳輸媒體,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,計算機可讀媒體不包括非持續性的電腦可讀媒體(transitory media),如調變的資料信號和載波。
本申請實施例是參照根據本申請實施例的方法、終端設備(系統)、和計算機程式產品的流程圖及/或方方塊圖 來描述的。應理解可由計算機程式指令實現流程圖及/或方方塊圖中的每一流程及/或方塊、以及流程圖及/或方方塊圖中的流程及/或方塊的結合。可提供這些計算機程式指令到通用計算機、專用計算機、嵌入式處理機或其他可編程資料處理終端設備的處理器以產生一個機器,使得透過計算機或其他可編程資料處理終端設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程及/或方方塊圖一個方塊或多個方塊中指定的功能的裝置。
這些計算機程式指令也可儲存在能引導計算機或其他可編程資料處理終端設備以特定方式工作的計算機可讀儲存器中,使得儲存在該計算機可讀儲存器中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程及/或方方塊圖一個方塊或多個方塊中指定的功能。
這些計算機程式指令也可裝載到計算機或其他可編程資料處理終端設備上,使得在計算機或其他可編程終端設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程終端設備上執行的指令提供用於實現在流程圖一個流程或多個流程及/或方方塊圖一個方塊或多個方塊中指定的功能的步驟。
儘管已描述了本申請實施例的優選實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例做出另外的變更和修改。所以,所附權利要求意欲解釋為包括優選實施例以及落入本申請實施例範圍的所有變 更和修改。
最後,還需要說明的是,在本文中,諸如第一和第二等之類的關係術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關係或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要件的過程、方法、物品或者終端設備不僅包括那些要件,而且還包括沒有明確列出的其他要件,或者是還包括為這種過程、方法、物品或者終端設備所固有的要件。在沒有更多限制的情況下,由語句“包括一個......”限定的要件,並不排除在包括所述要件的過程、方法、物品或者終端設備中還存在另外的相同要件。
以上對本申請所提供的一種資料同步方法和一種資料同步裝置,進行了詳細介紹,本文中應用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本申請的方法及其核心思想;同時,對於本領域的一般技術人員,依據本申請的思想,在具體實施方式及應用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本申請的限制。

Claims (16)

  1. 一種資料同步方法,其特徵在於,包括:根據源資料庫中待同步資料的資料量和同步任務的優先級,生成期望運行的同步執行緒數;按照期望運行的同步執行緒數進行執行緒配置,並採用配置的執行緒針對該待同步資料同步至目標資料庫;該按照期望運行的同步執行緒數進行執行緒配置包括:判斷該期望運行的同步執行緒數是否大於運行所需的同步執行緒數;若是,則根據該期望運行的同步執行緒數和該運行所需的同步執行緒數的差值,補充配置相應的虛擬執行緒,利用配置的虛擬執行緒將同步處理設備上的部分CPU置於待機狀態並暫停處理其它同步任務。
  2. 根據申請專利範圍第1項所述的方法,其中,在該根據源資料庫中待同步資料的資料量和同步任務的優先級,生成期望運行的同步執行緒數之前,該方法還包括:從用戶提交的資料同步任務中,獲取該同步任務的優先級,並從保存有待同步資料的該源資料庫中,獲取該待同步資料的資料量。
  3. 根據申請專利範圍第1項所述的方法,其中,該根據源資料庫中待同步資料的資料量和同步任務的優先級,生成期望運行的同步執行緒數包括:查找針對該待同步資料的資料量和同步任務的優先級的平均同步速率;利用該平均同步速率、同步處理設備的最大同步速率 和該同步處理設備可供同步處理的執行緒數,計算該期望運行的同步執行緒數。
  4. 根據申請專利範圍第1項所述的方法,其中,在所述判斷該期望運行的同步執行緒數是否大於運行所需的同步執行緒數之前,該方法還包括:從待與源資料庫進行資料同步的該目標資料庫中,獲取該運行所需的同步執行緒數。
  5. 根據申請專利範圍第1項所述的方法,其中,在該採用配置的執行緒針對該待同步資料同步至目標資料庫之前,該方法還包括:按照該運行所需的同步執行緒數將該待同步資料拆分成多個待同步資料塊;該採用配置的執行緒針對該待同步資料同步至目標資料庫為:將用於同步各個待同步資料塊的同步執行緒,排程至同步處理設備,以由該同步處理設備處理該同步執行緒。
  6. 根據申請專利範圍第1項所述的方法,其中,該採用配置的執行緒針對該待同步資料同步至目標資料庫包括:將執行緒屬性滿足預設條件的至少一個同步執行緒優先發送至該同步處理設備。
  7. 根據申請專利範圍第6項所述的方法,該預設條件包括以下至少一種:該至少一個同步執行緒屬於同一個資料同步任務、待 處理時間大於預設時間閾值、對應同步任務的優先級大於預設優先級閾值、單個同步處理設備可同步處理。
  8. 根據申請專利範圍第1項所述的方法,其中,該同步處理設備包括多個,該採用配置的執行緒針對該待同步資料同步至目標資料庫包括:將該同步執行緒優先發送至可供同步處理的最大執行緒數大於預設執行緒數閾值的同步處理設備。
  9. 一種資料同步裝置,其特徵在於,包括:同步執行緒數生成模組,用於根據源資料庫中待同步資料的資料量和同步任務的優先級,生成期望運行的同步執行緒數;同步處理模組,用於按照期望運行的同步執行緒數進行執行緒配置,並採用配置的執行緒針對該待同步資料同步至目標資料庫,該同步處理模組包括:同步執行緒數判斷子模組,用於判斷該期望運行的同步執行緒數是否大於運行所需的同步執行緒數,若是,則叫用執行緒補充子模組;執行緒補充子模組,用於根據該期望運行的同步執行緒數和該運行所需的同步執行緒數的差值,補充配置相應的虛擬執行緒,利用配置的虛擬執行緒將同步處理設備上的部分CPU置於待機狀態並暫停處理其它同步任務。
  10. 根據申請專利範圍第9項所述的裝置,其中,該裝置還包括:優先級及資料量獲取模組,用於從用戶提交的資料同 步任務中,獲取該同步任務的優先級,並從保存有待同步資料的源資料庫中,獲取該待同步資料的資料量。
  11. 根據申請專利範圍第9項所述的裝置,其中,該同步執行緒數生成模組包括:平均同步速率查找子模組,用於查找針對該待同步資料的資料量和同步任務的優先級的平均同步速率;同步執行緒數計算子模組,用於利用該平均同步速率、同步處理設備的最大同步速率和該同步處理設備可供同步處理的執行緒數,計算該期望運行的同步執行緒數。
  12. 根據申請專利範圍第9項所述的裝置,其中,該裝置還包括:運行所需同步執行緒數獲取模組,用於從待與源資料庫進行資料同步的目標資料庫中,獲取該運行所需的同步執行緒數。
  13. 根據申請專利範圍第9項所述的裝置,其中,該裝置還包括:待同步資料拆分模組,用於按照該運行所需的同步執行緒數將該待同步資料拆分成多個待同步資料塊;該同步處理模組具體用於:將用於同步各個待同步資料塊的同步執行緒,排程至同步處理設備,以由該同步處理設備處理該同步執行緒。
  14. 根據申請專利範圍第9項所述的裝置,其中,該同步處理模組具體用於:將執行緒屬性滿足預設條件的至少一個同步執行緒優 先發送至該同步處理設備。
  15. 根據申請專利範圍第14項所述的裝置,該預設條件包括以下至少一種:該至少一個同步執行緒屬於同一個資料同步任務、待處理時間大於預設時間閾值、對應同步任務的優先級大於預設優先級閾值、單個同步處理設備可同步處理。
  16. 根據申請專利範圍第9項所述的裝置,其中,該同步處理設備包括多個,該同步處理模組具體用於:將該同步執行緒優先發送至可供同步處理的最大執行緒數大於預設執行緒數閾值的同步處理設備。
TW106102729A 2017-01-24 2017-01-24 一種資料同步方法和裝置 TWI731926B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW106102729A TWI731926B (zh) 2017-01-24 2017-01-24 一種資料同步方法和裝置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW106102729A TWI731926B (zh) 2017-01-24 2017-01-24 一種資料同步方法和裝置

Publications (2)

Publication Number Publication Date
TW201828119A TW201828119A (zh) 2018-08-01
TWI731926B true TWI731926B (zh) 2021-07-01

Family

ID=63960275

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106102729A TWI731926B (zh) 2017-01-24 2017-01-24 一種資料同步方法和裝置

Country Status (1)

Country Link
TW (1) TWI731926B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201216199A (en) * 2010-10-15 2012-04-16 Via Tech Inc Methods and systems for synchronizing threads in general purpose shader and computer-readable medium using the same
CN103678718A (zh) * 2013-12-31 2014-03-26 金蝶软件(中国)有限公司 数据库同步方法及系统
US20150032694A1 (en) * 2013-07-24 2015-01-29 Oracle International Corporation Scalable Coordination Aware Static Partitioning For Database Replication
CN104731956A (zh) * 2015-04-02 2015-06-24 北京奇虎科技有限公司 同步数据的方法、系统及相关数据库

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201216199A (en) * 2010-10-15 2012-04-16 Via Tech Inc Methods and systems for synchronizing threads in general purpose shader and computer-readable medium using the same
US20150032694A1 (en) * 2013-07-24 2015-01-29 Oracle International Corporation Scalable Coordination Aware Static Partitioning For Database Replication
CN103678718A (zh) * 2013-12-31 2014-03-26 金蝶软件(中国)有限公司 数据库同步方法及系统
CN104731956A (zh) * 2015-04-02 2015-06-24 北京奇虎科技有限公司 同步数据的方法、系统及相关数据库

Also Published As

Publication number Publication date
TW201828119A (zh) 2018-08-01

Similar Documents

Publication Publication Date Title
WO2017114199A1 (zh) 一种数据同步方法和装置
US9436739B2 (en) Dynamic priority-based query scheduling
US9916183B2 (en) Scheduling mapreduce jobs in a cluster of dynamically available servers
TWI660274B (zh) 基於區塊鏈的資料處理方法及設備
US20150295970A1 (en) Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system
US20170068574A1 (en) Multiple pools in a multi-core system
CN106598705B (zh) 一种异步任务的调度方法、装置、系统以及电子设备
WO2017016421A1 (zh) 一种集群中的任务执行方法及装置
WO2018177250A1 (zh) 一种基于区块链的数据处理方法及设备
TWI694700B (zh) 資料處理方法和裝置、用戶端
TW201942739A (zh) 任務的分配方法、裝置及設備
CN107818012B (zh) 一种数据处理方法、装置及电子设备
CN106569892B (zh) 资源调度方法与设备
TWI697223B (zh) 資料處理方法
US20130205141A1 (en) Quality of Service Targets in Multicore Processors
CN110389842A (zh) 一种动态资源分配方法、装置、存储介质及设备
CN110618860A (zh) 基于Spark的Kafka消费并发处理方法及装置
CN103873587A (zh) 一种基于云平台实现调度的方法及装置
US20200379804A1 (en) Multi-level scheduling
Shu-Jun et al. Optimization and research of hadoop platform based on fifo scheduler
TWI731926B (zh) 一種資料同步方法和裝置
CN111338803A (zh) 一种线程处理方法和装置
CN109032779B (zh) 任务处理方法、装置、计算机设备及可读存储介质
CN116737370A (zh) 一种多资源调度方法、系统、存储介质及终端
WO2016082463A1 (zh) 一种多核处理器下的数据处理方法、装置及存储介质