【技术实现步骤摘要】
本专利技术涉及计算机
,具体涉及一种多副本数据一致性的检测方法及装置。
技术介绍
分布式系统就是将数据分散存储在多台独立的设备上,为具有很多数据节点的集群系统,其中,每个数据节点上会分布有多个数据分片,在分布式系统中,针对一份数据,一般备份N个副本,将数据的N个副本分别存储在N个数据节点的数据分片中,且要求N个副本数据相同。现有方案中,是采用读取数据分片中的数据,将数据进行比较进而确定数据分片中的数据是否一致,这种方式不仅会产生额外的访问量,给数据库造成很大的压力,而且还耗费了大量时间。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的多副本数据一致性的检测方法和相应的多副本数据一致性的检测装置。根据本专利技术的一个方面,提供了一种多副本数据一致性的检测方法,其包括:获取多个副本数据中每个副本数据所在数据分片的二进制日志文件,二进制日志文件用于记录相应数据分片中对副本数据所执行的数据操作;判断各个副本数据所在数据分片的二进制日志文件是否相同;依据对二进制日志文件的判断结果确定各个数据分片中的副本数据是否一致。根据本专利技术的另一方面,提供了一种多副本数据一致性的检测装置,其包括:获取模块,适于获取多个副本数据中每个副本数据所在数据分片的二进制日志文件,二进制日志文件用于记录相应数据分片中对副本数据所执行的r>数据操作;判断模块,适于判断各个副本数据所在数据分片的二进制日志文件是否相同;确定模块,适于依据对二进制日志文件的判断结果确定各个数据分片中的副本数据是否一致。根据本专利技术提供的方案,获取多个副本数据中每个副本数据所在数据分片的二进制日志文件,二进制日志文件用于记录相应数据分片中对副本数据所执行的数据操作;判断各个副本数据所在数据分片的二进制日志文件是否相同;依据对二进制日志文件的判断结果确定各个数据分片中的副本数据是否一致,从而无需通过直接比较数据分片中的数据来判断副本数据是否一致,控制了对数据节点的访问量,减轻了数据库的压力,而且节省了时间,提升了性能。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本专利技术一个实施例的多副本数据一致性的检测方法的流程示意图;图2示出了根据本专利技术另一个实施例的多副本数据一致性的检测方法的流程示意图;图3示出了根据本专利技术一个实施例的多副本数据一致性的检测装置的功能框图;图4示出了根据本专利技术另一个实施例的多副本数据一致性的检测装置的功能框图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。图1示出了根据本专利技术一个实施例的多副本数据一致性的检测方法的流程示意图。如图1所示,该方法包括以下步骤:步骤S100,获取多个副本数据中每个副本数据所在数据分片的二进制日志文件。其中,二进制日志文件也称为Binlog文件,是一种逻辑日志,它记录的是关于每个事务的具体操作内容,也就是说,Binlog文件用于记录相应数据分片中对副本数据所执行的数据操作,并以二进制的形式保存在磁盘中。Binlog文件按照对副本数据所执行的数据操作的顺序进行存储,而且记录次数与所执行操作的次数相对应,即,每对副本数据执行一次数据操作,就在Binlog文件中记录一次。Binlog文件是一具有固定大小的文件,一般设定Binlog文件的大小为20M,当一个Binlog文件递增到20M后,即新建另一个Binlog文件来记录相应数据分片中对副本数据所执行的数据操作。步骤S101,判断各个副本数据所在数据分片的二进制日志文件是否相同。由于Binlog文件所具有的特性,按照所执行的数据操作顺序记录,且记录有所有的数据操作,因此可以通过判断各个副本数据所在数据分片的二进制日志文件是否相同,来确定各个数据分片中的副本数据是否一致。现有技术方案中,是采用读取数据分片中的数据,将数据进行比较进而确定数据分片中的数据是否一致,这种方式不仅会产生额外的访问量,给数据库造成很大的压力,而且还耗费了大量时间。为了解决上述问题,在根据本专利技术实施例中的步骤S100获取多个副本数据中每个副本数据所在数据分片的Binlog文件后,判断各个副本数据所在数据分片的Binlog文件是否相同,即可确定各个数据分片中的副本数据是否一致,从而无需通过直接比较数据分片中的数据来判断副本数据是否一致。步骤S102,依据对二进制日志文件的判断结果确定各个数据分片中的副本数据是否一致。对Binlog文件的判断结果可以是以下结果中的任一种:多个副本数据中任意两个副本数据所在数据分片的Binlog文件不同,或者多个副本数据所在数据分片的Binlog文件相同。若判断出多个副本数据中任意两个副本数据所在数据分片的Binlog文件不同,则确定这两个Binlog文件相应的数据分片中的副本数据不一致;若判断出多个副本数据所在数据分片的Binlog文件相同,则确定Binlog文件相应的数据分片中的副本数据一致。根据本专利技术上述实施例提供的方法,获取多个副本数据中每个副本数据所在数据分片的二进制日志文件,二进制日志文件用于记录相应数据分片中对副本数据所执行的数据操作;判断各个副本数据所在数据分片的二进制日志文件是否相同;依据对二进制日志文件的判断结果确定各个数据分片中的副本数据是否一致,从而无需通过直接比较数据分片中的数据来判断副本数据是否一致,控制了对数据节点的访问量,减轻了数据库的压力,而且节省了时间,提升了性能。图2示出了根据本专利技术另一个实施例的多副本数据一致性的检测方法的流程示意图。如图2所示,该方法包括以下步骤:步骤S20本文档来自技高网...
【技术保护点】
一种多副本数据一致性的检测方法,其包括:获取多个副本数据中每个副本数据所在数据分片的二进制日志文件,所述二进制日志文件用于记录相应数据分片中对副本数据所执行的数据操作;判断所述各个副本数据所在数据分片的二进制日志文件是否相同;依据对所述二进制日志文件的判断结果确定各个数据分片中的副本数据是否一致。
【技术特征摘要】 【专利技术属性】
1.一种多副本数据一致性的检测方法,其包括:
获取多个副本数据中每个副本数据所在数据分片的二进制日志文件,所
述二进制日志文件用于记录相应数据分片中对副本数据所执行的数据操作;
判断所述各个副本数据所在数据分片的二进制日志文件是否相同;
依据对所述二进制日志文件的判断结果确定各个数据分片中的副本数据
是否一致。
2.根据权利要求1所述的方法,其中,依据对所述二进制日志文件的判
断结果确定各个数据分片中的副本数据是否一致进一步包括:
若判断出多个副本数据中任意两个副本数据所在数据分片的二进制日志
文件不同,则确定这两个二进制日志文件相应的数据分片中的副本数据不一
致。
3.根据权利要求1或2所述的方法,其中,判断所述各个副本数据所在
数据分片的二进制日志文件是否相同进一步包括:
计算并记录各个副本数据对应的二进制日志文件的哈希值;
判断所述各个副本数据所在数据分片的二进制日志文件的哈希值是否一
致。
4.根据权利要求3所述的方法,其中,所述依据对所述二进制日志文件
的判断结果确定各个数据分片中的副本数据是否一致进一步包括:
若判断出多个副本数据中任意两个副本数据所在数据分片的二进制日志
文件的哈希值不一致,则确定这两个二进制日志文件相应的数据分片中的副
本数据不一致。
5.根据权利要求3或4所述的方法,其中,每个数据分片的二进制日志
文件有多个;多个二进制日志文件按照时间顺序记录对所述数据分片中副本
技术研发人员:陈宗志,
申请(专利权)人:北京奇虎科技有限公司,奇智软件北京有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。