[發(fā)明專利]主從同步方法及裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201711480978.2 | 申請(qǐng)日: | 2017-12-29 |
| 公開(公告)號(hào): | CN108183957B | 公開(公告)日: | 2020-12-18 |
| 發(fā)明(設(shè)計(jì))人: | 宋昭 | 申請(qǐng)(專利權(quán))人: | 北京奇虎科技有限公司 |
| 主分類號(hào): | H04L29/08 | 分類號(hào): | H04L29/08 |
| 代理公司: | 深圳市世紀(jì)恒程知識(shí)產(chǎn)權(quán)代理事務(wù)所 44287 | 代理人: | 胡海國(guó) |
| 地址: | 100088 北京市西城區(qū)新*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 主從 同步 方法 裝置 | ||
本發(fā)明提供了一種主從同步方法及裝置,該方法包括:從節(jié)點(diǎn)的第一線程接收主節(jié)點(diǎn)發(fā)送的數(shù)據(jù)同步命令,并根據(jù)所述數(shù)據(jù)同步命令的順序依次記錄日志文件;所述第一線程將所述數(shù)據(jù)同步命令分發(fā)至所述從節(jié)點(diǎn)的多個(gè)第二線程,由所述多個(gè)第二線程并行地執(zhí)行;若所述第二線程成功執(zhí)行所述數(shù)據(jù)同步命令,則向所述從節(jié)點(diǎn)的第三線程發(fā)送確認(rèn)信息;所述第三線程根據(jù)所述確認(rèn)信息更新所述日志文件中的偏移量?;诒景l(fā)明提供的主從同步方法,可以在保證從節(jié)點(diǎn)寫入同步命令的順序與主節(jié)點(diǎn)發(fā)送命令順序一致的前提下,開啟多個(gè)第二線程并行執(zhí)行數(shù)據(jù)同步命令,加快數(shù)據(jù)同步速度,縮短主從同步延遲,進(jìn)而高效地完成數(shù)據(jù)的主從同步。
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是涉及一種主從同步方法及裝置。
背景技術(shù)
在數(shù)據(jù)存儲(chǔ)中,為防止系統(tǒng)出現(xiàn)操作失誤或系統(tǒng)故障導(dǎo)致數(shù)據(jù)丟失,數(shù)據(jù)的備份必不可少。尤其是在分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)中,針對(duì)同一份數(shù)據(jù),會(huì)通常會(huì)存儲(chǔ)在一個(gè)主數(shù)據(jù)庫(kù)和多個(gè)從數(shù)據(jù)庫(kù)中,其中,從數(shù)據(jù)庫(kù)的數(shù)據(jù)可以與主數(shù)據(jù)庫(kù)進(jìn)行同步獲得。
傳統(tǒng)主從同步方法中,主節(jié)點(diǎn)接收用戶寫請(qǐng)求后,將數(shù)據(jù)寫入數(shù)據(jù)庫(kù)中并同時(shí)記錄寫的操作,再向從節(jié)點(diǎn)發(fā)送數(shù)據(jù)同步命令。從節(jié)點(diǎn)接收同步的命令后執(zhí)行該同步命令,將數(shù)據(jù)寫入數(shù)據(jù)庫(kù)并記錄寫入操作,以完成一次命令同步。但是,一般情況下主節(jié)點(diǎn)會(huì)多線程接收用戶請(qǐng)求,而從節(jié)點(diǎn)為了保證與主節(jié)點(diǎn)的寫入操作順序一致,會(huì)采用單個(gè)線程進(jìn)行工作。因此,當(dāng)線上寫請(qǐng)求量很大的情況下,同步速度會(huì)遠(yuǎn)遠(yuǎn)落后于主節(jié)點(diǎn)的寫入速度,造成同步延遲。
發(fā)明內(nèi)容
本發(fā)明提供了一種主從同步方法及裝置以克服上述問(wèn)題或者至少部分地解決上述問(wèn)題。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種主從同步方法,包括:
從節(jié)點(diǎn)的第一線程接收主節(jié)點(diǎn)發(fā)送的數(shù)據(jù)同步命令,并根據(jù)所述數(shù)據(jù)同步命令的順序依次記錄日志文件;所述第一線程將所述數(shù)據(jù)同步命令分發(fā)至所述從節(jié)點(diǎn)的多個(gè)第二線程,由所述多個(gè)第二線程并行地執(zhí)行;若所述第二線程成功執(zhí)行所述數(shù)據(jù)同步命令,則向所述從節(jié)點(diǎn)的第三線程發(fā)送確認(rèn)信息;所述第三線程根據(jù)所述確認(rèn)信息更新所述日志文件中的偏移量。
可選地,所述第一線程將所述數(shù)據(jù)同步命令分發(fā)至多個(gè)第二線程,由所述多個(gè)第二線程并行地執(zhí)行,包括:在數(shù)據(jù)單元和所述第二線程之間建立對(duì)應(yīng)關(guān)系,所述第一線程將同一數(shù)據(jù)單元的數(shù)據(jù)同步命令分發(fā)至同一第二線程執(zhí)行。
可選地,所述數(shù)據(jù)同步命令包括:該數(shù)據(jù)同步命令在所述日志文件中的偏移量和/或所述日志文件的長(zhǎng)度。
可選地,所述第三線程根據(jù)所述確認(rèn)信息更新所述日志文件中的偏移量,包括:所述第三線程接收所述第二線程發(fā)送的確認(rèn)信息,記錄成功執(zhí)行的所述數(shù)據(jù)同步命令在所述日志文件中的偏移量;對(duì)成功執(zhí)行的所述數(shù)據(jù)同步命令在所述日志文件中的偏移量進(jìn)行排序,若存在連續(xù)的偏移量,且所述連續(xù)的偏移量與所述日志文件當(dāng)前的全局偏移量也是連續(xù)的,則依據(jù)所述日志文件當(dāng)前的全局偏移量和所述連續(xù)的偏移量對(duì)所述日志文件的全局偏移量進(jìn)行更新。
可選地,所述第三線程根據(jù)所述確認(rèn)信息更新所述日志文件中的偏移量,還包括:對(duì)成功執(zhí)行的所述數(shù)據(jù)同步命令在所述日志文件中的偏移量進(jìn)行排序,若存在空洞,則確定所述空洞對(duì)應(yīng)的數(shù)據(jù)同步命令對(duì)應(yīng)的數(shù)據(jù)單元;若所述第三線程后續(xù)接收到所述第二線程發(fā)送的對(duì)應(yīng)于該數(shù)據(jù)單元的確認(rèn)信息,則跳過(guò)所述空洞,更新所述日志文件的全局偏移量。
可選地,上述方法還包括:若所述空洞的數(shù)量達(dá)到第一閾值,則向所述第一線程發(fā)送消息,由所述第一線程斷開與主節(jié)點(diǎn)的同步進(jìn)程,并發(fā)出報(bào)警信息。
可選地,上述方法還包括:若所述空洞之后連續(xù)的偏移量的數(shù)量達(dá)到第二閾值,則跳過(guò)所述空洞,更新所述日志文件的全局偏移量;或若所述空洞之后連續(xù)的偏移量的數(shù)量達(dá)到所述第二閾值,則向所述第一線程發(fā)送消息,由所述第一線程斷開與主節(jié)點(diǎn)的同步過(guò)程,并發(fā)出報(bào)警信息。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京奇虎科技有限公司,未經(jīng)北京奇虎科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711480978.2/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 一種時(shí)鐘同步方法及系統(tǒng)
- 一種防御能量攻擊的JK觸發(fā)器
- 智能變電站維護(hù)業(yè)務(wù)類信息背景流的主從時(shí)鐘同步方法
- 一種管理主從網(wǎng)絡(luò)設(shè)備的設(shè)備配置系統(tǒng)及方法
- 標(biāo)準(zhǔn)時(shí)隙的雙無(wú)線藍(lán)牙設(shè)備主從切換方法、設(shè)備和系統(tǒng)
- 雙無(wú)線藍(lán)牙設(shè)備主從切換方法、裝置、設(shè)備和音頻系統(tǒng)
- 一種調(diào)整物理層PHY主從模式的方法及裝置
- 一種主從一體式輪組的AGV底盤
- 一種同軸雙電機(jī)模型預(yù)測(cè)直接轉(zhuǎn)矩控制方法
- 一種具有一個(gè)主從模式和多個(gè)從模USB的設(shè)備
- 一種數(shù)據(jù)庫(kù)讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





