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