多副本數(shù)據(jù)一致性的檢測(cè)方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及一種多副本數(shù)據(jù)一致性的檢測(cè)方法及裝置。
【背景技術(shù)】
[0002]分布式系統(tǒng)就是將數(shù)據(jù)分散存儲(chǔ)在多臺(tái)獨(dú)立的設(shè)備上,為具有很多數(shù)據(jù)節(jié)點(diǎn)的集群系統(tǒng),其中,每個(gè)數(shù)據(jù)節(jié)點(diǎn)上會(huì)分布有多個(gè)數(shù)據(jù)分片,在分布式系統(tǒng)中,針對(duì)一份數(shù)據(jù),一般備份N個(gè)副本,將數(shù)據(jù)的N個(gè)副本分別存儲(chǔ)在N個(gè)數(shù)據(jù)節(jié)點(diǎn)的數(shù)據(jù)分片中,且要求N個(gè)副本數(shù)據(jù)相同。
[0003]現(xiàn)有方案中,是采用讀取數(shù)據(jù)分片中的數(shù)據(jù),將數(shù)據(jù)進(jìn)行比較進(jìn)而確定數(shù)據(jù)分片中的數(shù)據(jù)是否一致,這種方式不僅會(huì)產(chǎn)生額外的訪問量,給數(shù)據(jù)庫(kù)造成很大的壓力,而且還耗費(fèi)了大量時(shí)間。
【發(fā)明內(nèi)容】
[0004]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的多副本數(shù)據(jù)一致性的檢測(cè)方法和相應(yīng)的多副本數(shù)據(jù)一致性的檢測(cè)裝置。
[0005]根據(jù)本發(fā)明的一個(gè)方面,提供了一種多副本數(shù)據(jù)一致性的檢測(cè)方法,其包括:
[0006]獲取多個(gè)副本數(shù)據(jù)中每個(gè)副本數(shù)據(jù)所在數(shù)據(jù)分片的二進(jìn)制日志文件,二進(jìn)制日志文件用于記錄相應(yīng)數(shù)據(jù)分片中對(duì)副本數(shù)據(jù)所執(zhí)行的數(shù)據(jù)操作;
[0007]判斷各個(gè)副本數(shù)據(jù)所在數(shù)據(jù)分片的二進(jìn)制日志文件是否相同;
[0008]依據(jù)對(duì)二進(jìn)制日志文件的判斷結(jié)果確定各個(gè)數(shù)據(jù)分片中的副本數(shù)據(jù)是否一致。
[0009]根據(jù)本發(fā)明的另一方面,提供了一種多副本數(shù)據(jù)一致性的檢測(cè)裝置,其包括:
[0010]獲取模塊,適于獲取多個(gè)副本數(shù)據(jù)中每個(gè)副本數(shù)據(jù)所在數(shù)據(jù)分片的二進(jìn)制日志文件,二進(jìn)制日志文件用于記錄相應(yīng)數(shù)據(jù)分片中對(duì)副本數(shù)據(jù)所執(zhí)行的數(shù)據(jù)操作;
[0011 ]判斷模塊,適于判斷各個(gè)副本數(shù)據(jù)所在數(shù)據(jù)分片的二進(jìn)制日志文件是否相同;
[0012]確定模塊,適于依據(jù)對(duì)二進(jìn)制日志文件的判斷結(jié)果確定各個(gè)數(shù)據(jù)分片中的副本數(shù)據(jù)是否一致。
[0013]根據(jù)本發(fā)明提供的方案,獲取多個(gè)副本數(shù)據(jù)中每個(gè)副本數(shù)據(jù)所在數(shù)據(jù)分片的二進(jìn)制日志文件,二進(jìn)制日志文件用于記錄相應(yīng)數(shù)據(jù)分片中對(duì)副本數(shù)據(jù)所執(zhí)行的數(shù)據(jù)操作;判斷各個(gè)副本數(shù)據(jù)所在數(shù)據(jù)分片的二進(jìn)制日志文件是否相同;依據(jù)對(duì)二進(jìn)制日志文件的判斷結(jié)果確定各個(gè)數(shù)據(jù)分片中的副本數(shù)據(jù)是否一致,從而無(wú)需通過直接比較數(shù)據(jù)分片中的數(shù)據(jù)來(lái)判斷副本數(shù)據(jù)是否一致,控制了對(duì)數(shù)據(jù)節(jié)點(diǎn)的訪問量,減輕了數(shù)據(jù)庫(kù)的壓力,而且節(jié)省了時(shí)間,提升了性能。
[0014]上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】。
【附圖說(shuō)明】
[0015]通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
[0016]圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的多副本數(shù)據(jù)一致性的檢測(cè)方法的流程示意圖;
[0017]圖2示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的多副本數(shù)據(jù)一致性的檢測(cè)方法的流程示意圖;
[0018]圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的多副本數(shù)據(jù)一致性的檢測(cè)裝置的功能框圖;
[0019]圖4示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的多副本數(shù)據(jù)一致性的檢測(cè)裝置的功能框圖。
【具體實(shí)施方式】
[0020]下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0021]圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的多副本數(shù)據(jù)一致性的檢測(cè)方法的流程示意圖。如圖1所示,該方法包括以下步驟:
[0022]步驟S100,獲取多個(gè)副本數(shù)據(jù)中每個(gè)副本數(shù)據(jù)所在數(shù)據(jù)分片的二進(jìn)制日志文件。
[0023]其中,二進(jìn)制日志文件也稱為Binlog文件,是一種邏輯日志,它記錄的是關(guān)于每個(gè)事務(wù)的具體操作內(nèi)容,也就是說(shuō),Binlog文件用于記錄相應(yīng)數(shù)據(jù)分片中對(duì)副本數(shù)據(jù)所執(zhí)行的數(shù)據(jù)操作,并以二進(jìn)制的形式保存在磁盤中。Binlog文件按照對(duì)副本數(shù)據(jù)所執(zhí)行的數(shù)據(jù)操作的順序進(jìn)行存儲(chǔ),而且記錄次數(shù)與所執(zhí)行操作的次數(shù)相對(duì)應(yīng),即,每對(duì)副本數(shù)據(jù)執(zhí)行一次數(shù)據(jù)操作,就在Binlog文件中記錄一次。
[0024]Binlog文件是一具有固定大小的文件,一般設(shè)定Binlog文件的大小為20M,當(dāng)一個(gè)Binlog文件遞增到20M后,即新建另一個(gè)Binlog文件來(lái)記錄相應(yīng)數(shù)據(jù)分片中對(duì)副本數(shù)據(jù)所執(zhí)行的數(shù)據(jù)操作。
[0025]步驟SlOl,判斷各個(gè)副本數(shù)據(jù)所在數(shù)據(jù)分片的二進(jìn)制日志文件是否相同。
[0026]由于Binlog文件所具有的特性,按照所執(zhí)行的數(shù)據(jù)操作順序記錄,且記錄有所有的數(shù)據(jù)操作,因此可以通過判斷各個(gè)副本數(shù)據(jù)所在數(shù)據(jù)分片的二進(jìn)制日志文件是否相同,來(lái)確定各個(gè)數(shù)據(jù)分片中的副本數(shù)據(jù)是否一致。
[0027]現(xiàn)有技術(shù)方案中,是采用讀取數(shù)據(jù)分片中的數(shù)據(jù),將數(shù)據(jù)進(jìn)行比較進(jìn)而確定數(shù)據(jù)分片中的數(shù)據(jù)是否一致,這種方式不僅會(huì)產(chǎn)生額外的訪問量,給數(shù)據(jù)庫(kù)造成很大的壓力,而且還耗費(fèi)了大量時(shí)間。
[0028]為了解決上述問題,在根據(jù)本發(fā)明實(shí)施例中的步驟SlOO獲取多個(gè)副本數(shù)據(jù)中每個(gè)副本數(shù)據(jù)所在數(shù)據(jù)分片的Binlog文件后,判斷各個(gè)副本數(shù)據(jù)所在數(shù)據(jù)分片的Binlog文件是否相同,即可確定各個(gè)數(shù)據(jù)分片中的副本數(shù)據(jù)是否一致,從而無(wú)需通過直接比較數(shù)據(jù)分片中的數(shù)據(jù)來(lái)判斷副本數(shù)據(jù)是否一致。
[0029]步驟S102,依據(jù)對(duì)二進(jìn)制日志文件的判斷結(jié)果確定各個(gè)數(shù)據(jù)分片中的副本數(shù)據(jù)是否一致。
[0030]對(duì)Binlog文件的判斷結(jié)果可以是以下結(jié)果中的任一種:多個(gè)副本數(shù)據(jù)中任意兩個(gè)副本數(shù)據(jù)所在數(shù)據(jù)分片的Binlog文件不同,或者多個(gè)副本數(shù)據(jù)所在數(shù)據(jù)分片的Binlog文件相同。
[0031]若判斷出多個(gè)副本數(shù)據(jù)中任意兩個(gè)副本數(shù)據(jù)所在數(shù)據(jù)分片的Binlog文件不同,則確定這兩個(gè)Binlog文件相應(yīng)的數(shù)據(jù)分片中的副本數(shù)據(jù)不一致;若判斷出多個(gè)副本數(shù)據(jù)所在數(shù)據(jù)分片的Binlog文件相同,則確定Binlog文件相應(yīng)的數(shù)據(jù)分片中的副本數(shù)據(jù)一致。
[0032]根據(jù)本發(fā)明上述實(shí)施例提供的方法,獲取多個(gè)副本數(shù)據(jù)中每個(gè)副本數(shù)據(jù)所在數(shù)據(jù)分片的二進(jìn)制日志文件,二進(jìn)制日志文件用于記錄相應(yīng)數(shù)據(jù)分片中對(duì)副本數(shù)據(jù)所執(zhí)行的數(shù)據(jù)操作;判斷各個(gè)副本數(shù)據(jù)所在數(shù)據(jù)分片的二進(jìn)制日志文件是否相同;依據(jù)對(duì)二進(jìn)制日志文件的判斷結(jié)果確定各個(gè)數(shù)據(jù)分片中的副本數(shù)據(jù)是否一致,從而無(wú)需通過直接比較數(shù)據(jù)分片中的數(shù)據(jù)來(lái)判斷副本數(shù)據(jù)是否一致,控制了對(duì)數(shù)據(jù)節(jié)點(diǎn)的訪問量,減輕了數(shù)據(jù)庫(kù)的壓力,而且節(jié)省了時(shí)間,提升了性能。
[0033]圖2示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的多副本數(shù)據(jù)一致性的檢測(cè)方法的流程示意圖。如圖2所示,該方法包括以下步驟:
[0034]步驟S200,獲取多個(gè)副本數(shù)據(jù)中每個(gè)副本數(shù)據(jù)所在數(shù)據(jù)分片的二進(jìn)制日志文件。
[0035]其中,二進(jìn)