一种日志分片方法和装置与流程

文档序号:12733671阅读:405来源:国知局
本发明涉及数据处理领域,特别是涉及一种日志分片方法和装置。
背景技术
::数据库一般采用主从的架构模式,其中包括主数据库服务器和从数据库服务器。主数据库服务器用于对外提供服务,从数据库服务器作为主数据库服务器的备份,当主数据库服务器宕机时,从数据库服务器可以继续提供原来主数据库服务器所提供的服务。由此提高数据库的可用性。用户在使用数据库的过程中,可以对数据库中的数据进行操作,其中可能会造成数据改动,所述数据改动可以包括对数据的删除、增加、替换等会造成数据发生变化的操作。主数据库服务器为了记录这些数据改动,针对一个数据改动会生成一个对应的数据日志,以记录被改动的数据对象和这个数据改动的改动内容。在主数据库服务器宕机时,从数据库服务器为了能够实现继续为用户提供原来主数据库服务器所提供的服务,需要持续从主数据库服务器接收主数据库服务器记录的数据日志,并利用这些数据日志进行日志回放,实现从数据库服务器中的数据库数据和主数据库服务器的数据库数据之间的同步。在主数据库服务器的用户连接数较多时,主数据库服务器会产生大量的数据日志,如果从数据库服务器的日志回放速度过慢,会导致从主数据库服务器接收的数据日志不能及时被日志回放,造成数据日志在从数据库服务器处的堆积,若果这时主数据库服务器宕机,从数据库服务器无法马上接替主数据库服务器,从数据库服务器只能在将堆积的数据日志都完成日志回放后,从数据库服务器才能够开始为用户提供服务,影响了用户体验。从数据库服务器为了保证能够及时的将从主数据库服务器接收到的数据日志完成日志回放,需要对数据日志进行并行的日志回放,提高日志回放效率。为了能够实现对数据日志进行并行的日志回放,从数据库服务器需要将接收到的数据日志进行日志分片,以得到多个分片。从数据库服务器可以同 时对多个分片都进行日志回放,从而在从数据库服务器上实现并行的日志回放功能。如何能够高效的对日志进行日志分片是目前亟需解决的问题。技术实现要素:为了解决上述技术问题,本发明提供了一种日志分片方法和装置,使得日志分片后各个分片中的数据日志数量较为平衡,从而提高了从数据库服务器进行日志回放的效率。本发明实施例公开了如下技术方案:一种日志分片方法,所述方法包括:从数据库服务器接收主数据库服务器发送的第一日志,所述第一日志携带对应的数据表标识和匹配标识;所述从数据库服务器根据所述第一日志的数据表标识确定匹配树;所述从数据库服务器根据所述匹配树对所述第一日志进行日志分片。可选的,还包括:根据目标表集合获取对应的所述匹配树,所述目标表集合包括数据库中的至少一个数据表,所述匹配树的树结构包括一个根节点和所述根节点的至少一层子节点,所述根节点用于匹配的匹配值的范围根据多个目标日志携带的匹配标识的范围确定,所述多个目标日志为对应所述至少一个数据表的数据日志,所述第一日志为所述多个目标日志中的一个目标日志;处于一层的子节点中,各个子节点用于匹配的子匹配值的总范围与所述根节点的匹配值的范围相同,通过设置所述匹配树的树结构最下一层子节点的子匹配值的范围,使得在通过所述匹配树进行日志分片时,通过匹配分到最下一层各个子节点的目标日志的数据之间差值小于预设差值,所述匹配树的树结构最下一层的一个子节点对应一个分片。可选的,所述从数据库服务器根据所述匹配树对所述第一日志进行日志分片,其中包括:所述从数据库服务器将所述第一日志的匹配标识与所述匹配树进行匹配,根据所述匹配树的树结构确定出与所述第一日志的匹配标识相匹配的目标子节点,所述第一日志的匹配标识处于所述目标子节点的子匹配值的范围 中,所述目标子节点为所述树结构最下一层中的一个子节点;所述从数据库服务器将所述第一日志分到所述目标子节点对应的分片。可选的,所述第一日志的匹配标识具体用于标识第一数据记录,所述第一数据记录为所述第一日志对应的数据表中的一条数据记录。可选的,所述第一日志的匹配标识为所述第一数据记录的主键值。可选的,所述匹配树包括用于描述所述至少一个数据表中一个数据表的平衡树的一部分树结构;相应的,所述匹配树的根节点为所述平衡树的根节点,所述至少一层子节点为所述平衡树的至少一层枝节点。可选的,在进行所述日志分片的过程中,若分到一个分片中的目标日志超出预设阈值,增加所述匹配树包括所述平衡树的枝节点的层数,由此增加通过所述日志分片后得到的分片的数量。可选的,所述第一日志还包括日志标识和对所述第一日志对应的数据表的数据改动,所述方法还包括:所述从数据库服务器对通过所述日志分片得到的多个分片进行并行的日志回放,其中,所述从数据库服务器根据所述第一日志的日志标识和数据改动,对所述第一日志进行日志回放。一种日志分片装置,所述装置包括:接收单元,用于接收主数据库服务器发送的第一日志,所述第一日志携带对应的数据表标识和匹配标识;确定单元,用于根据所述第一日志的数据表标识确定匹配树;分片单元,用于根据所述匹配树对所述第一日志进行日志分片。可选的,还包括:匹配树设置单元,用于根据目标表集合获取对应的匹配树,所述目标表集合包括数据库中的至少一个数据表,所述匹配树的树结构包括一个根节点和所述根节点的至少一层子节点,所述根节点用于匹配的匹配值的范围根据多个目标日志携带的匹配标识的范围确定,所述多个目标日志为对应所述至少一个数据表的数据日志,所述第一日志为所述多个目标日志中的一个目标日志,处于一层的子节点中,各个子节点用于匹配的子匹配值的总范围与所述根节点的匹配值的范围相同,通过设置所述匹配树的树结构最下一层子节 点的子匹配值的范围,使得在通过所述匹配树进行日志分片时,通过匹配分到最下一层各个子节点的目标日志的数据之间差值小于预设差值,所述匹配树的树结构最下一层的一个子节点对应一个分片。可选的,所述分片单元具体用于将所述第一日志的匹配标识与所述匹配树进行匹配,根据所述匹配树的树结构确定出与所述第一日志的匹配标识相匹配的目标子节点,所述第一日志的匹配标识处于所述目标子节点的子匹配值的范围中,所述目标子节点为所述树结构最下一层中的一个子节点;将所述第一日志分到所述目标子节点对应的分片。可选的,所述第一日志的匹配标识具体用于标识第一数据记录,所述第一数据记录为所述第一日志对应的数据表中的一条数据记录。可选的,所述第一日志的匹配标识为所述第一数据记录的主键值。可选的,所述匹配树包括用于描述所述至少一个数据表中一个数据表的平衡树的一部分树结构;相应的,所述匹配树的根节点为所述平衡树的根节点,所述至少一层子节点为所述平衡树的至少一层枝节点。可选的,在进行所述日志分片的过程中,若分到一个分片中的目标日志超出预设阈值,增加所述匹配树包括所述平衡树的枝节点的层数,由此增加通过所述日志分片后得到的分片的数量。可选的,所述第一日志还包括日志标识和对所述第一日志对应的数据表的数据改动,还包括:回放单元,用于对通过所述日志分片得到的多个分片进行并行的日志回放,其中,所述从数据库服务器根据所述第一日志的日志标识和数据改动,对所述第一日志进行日志回放。由上述技术方案可以看出,从数据库服务器接收主数据库服务器发送的第一日志,根据所述第一日志的数据表标识确定所述匹配树,根据所述匹配树对所述第一日志进行日志分片。通过设置的匹配树,可以有效的利用匹配树的树结构对日志进行日志分片,分片后的日志并发度高,提高了进行日志回放的效率。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实 施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为一种数据库架构示意图;图2为本发明实施例提供的一种匹配树的使用示意图;图3为本发明实施例提供的一种日志分片方法的方法流程图;图4为本发明实施例提供的一种日志分片装置的装置结构图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。数据库一般采用主从的架构模式,其中包括主数据库服务器和从数据库服务器。可以参见图1,图1为一种数据库架构示意图。图1左侧的为主数据库服务器,右侧的为从数据库服务器。主数据库服务器用于对外提供服务,从数据库服务器作为主数据库服务器的备份,当主数据库服务器宕机时,从数据库服务器可以继续提供原来主数据库服务器所提供的服务。由此提高数据库的可用性。为了在主数据库服务器宕机时,从数据库服务器能够快速的实现继续为用户提供原来主数据库服务器所提供的服务,主、从数据库服务器之间需要实时保持数据同步。如图1所示,从数据库服务器接收主数据库服务器发送的数据日志,通过日志回放实现与主数据库服务器的数据同步。需要注意的是,假设图1左侧的数据库服务器为服务器a,图1右侧的数据库服务器为服务器b,在服务器b接替服务器a继续为用户提供服务的过程中,服务器b将从从数据库服务器变成主数据库服务器,之后服务器b可以配置有相应的从数据库服务器,服务器b可以执行如原主数据库服务器的操作,将生成的数据日志发送给服务器b的从数据库服务器。服务器b的从数据库服务器可以是重新恢复工作能力的服务器a,也可以是其他数据库服务器,这里不做限定。从数据库服务器为了能够快速有效的进行日志回放,需要将接收到的数据日志先日志分片,再对日志分片得到的多个分片进行并行的日志回放。为此,本发明实施例提供了一种日志分片方法和装置,从数据库服务器接收主数据库服务器发送的第一日志,根据所述第一日志的数据表标识确定所述匹配树,根据所述匹配树对所述第一日志进行日志分片。通过设置的匹配树,可以有效的利用匹配树的树结构对日志进行日志分片,分片后的日志并发度高,提高了进行日志回放的效率。目前传统的日志分片方法主要是mysql(一种关系型数据库管理系统)官方版本使用的日志分片方法,以数据库为粒度,对数据日志进行分片。当数据集中在一个或少数几个数据库时,会导致大部分的数据日志都是针对这几个数据库生成的。因此在从数据库服务器使用这种传统分片方法进行日志分片时,会导致数据日志集中在几个分片中,各个分片中分到的数据日志数量差异太大。例如这几个数据库的分片中分到的数据日志过多,其他分片中分到的数据日志过少。那么在从数据库服务器进行并行的日志回放时,并发度过低,对日志回放的效率提升不高。也就是说,如何能够平衡的对数据日志进行分片,使得得到的各个分片中的数据日志数量相差不大,是目前希望达到的分片效果。针对这种分片不平衡的问题,在本发明实施例中,通过设置与目标表集合中数据表对应的匹配树,并使用所述匹配树作为对目标日志进行日志分片的依据,在设置匹配树时,通过设置所述匹配树的树结构最下一层子节点的子匹配值的范围,使得在通过所述匹配树进行日志分片时,通过匹配分到最下一层各个子节点的目标日志的数据之间差值小于预设差值。在具体的分片过程中,所述从数据库服务器针对接收的第一日志,通过第一日志的数据表标识确定出对应的所述匹配树,匹配所述第一日志的匹配标识和所述匹配树中子节点的子匹配值得到目标子节点,将所述第一日志分到所述目标子节点对应的分片。由于所述预设差值一般设置较小,由此得到的各个分片中包括目标日志的数量差别不大,较为平衡。那么在从数据库服务器进行并行的日志回放时,并发度高,提高了进行日志回放的效率。本发明实施例提供的日志分片方法,将利用预设设置的匹配树,通过匹 配树的树结构最后一层子节点的子匹配值的合理设置,使得匹配到该层各个子节点的数据日志的数量相差不大,以保持各个分片中数据日志的平衡。数据库中多以表(table)的形式存储数据,本发明实施例中的数据表可以理解为数据库中的表。本发明实施例中的匹配树是根据表集合获得的。可以理解为,在本发明实施例中,匹配树与表集合中数据表的标识相关,所述从数据库服务器可以根据数据日志携带的数据表标识调用该数据表标识所对应的匹配树,使用该匹配树对该数据日志进行日志分片。也就是说,针对处于不同表集合中数据表,所述从数据库服务器所调用的用于日志分片的匹配树可以不同。若一个表集合中包含多个数据表,那么针对该多个数据表,所述从数据库服务器可以调用相同的匹配树作为日志分片的依据。针对一个目标表集合获取的匹配树,所述匹配树的树结构包括一个根节点和所述根节点的至少一层子节点,所述根节点用于匹配的匹配值的范围根据多个目标日志携带的匹配标识的范围确定,所述多个目标日志为对应所述至少一个数据表的数据日志,需要注意的是,下文中将会提到的第一日志为所述多个目标日志中的一个目标日志。处于一层的子节点中,各个子节点用于匹配的子匹配值的总范围与所述根节点的匹配值的范围相同,通过设置所述匹配树的树结构最下一层子节点的子匹配值的范围,使得在通过所述匹配树进行日志分片时,通过匹配分到最下一层各个子节点的目标日志的数据之间差值小于预设差值,最下一层的一个子节点对应一个分片。举例说明,所述根节点的匹配值的范围一般是可以涵盖所有目标日志的匹配标识,也就是说,匹配值的数值类型和匹配标识的数值类型是相关的。针对同一个目标表集合,若设定所述目标日志携带的匹配标识为标识类型a,那么所述根节点的匹配值的数值类型将与标识类型a的数值类型相关,若设定所述目标日志携带的匹配标识为标识类型b,那么所述根节点的匹配值的数值类型将与标识类型b的数值类型相关。相应的,子节点的子匹配值的数值类型与根节点的匹配值的数值类型相同。而且,每一层中,各个子节点用于匹配的子匹配值的范围之间没有重叠,这样就不会出现一个目标日志通过匹配,其匹配标识与两个子节点均能匹配的情况。这里所述的通过设置所述匹配树的树结构最下一层子节点的子匹配值的范围,本发明实施例提供了至少两种方式。第一种方式,可以通过经验值,自行架构出一个匹配树,这种方式中,自行架构出的匹配树可以在根节点下只设置一层子节点,这一层子节点即为最下一层的子节点。各个子节点的子匹配值的范围可以随着所述从数据库服务器的日志分布结果进行动态的调整,以达到各个分片中的目标日志的数量之间差值满足小于预设差值的条件。动态调整可以是,当分到一个分片的目标日志数量明显多于其他分片中目标日志的数量时,可以相应的缩小这个分片对应子节点的子匹配值的范围,以此减少分到这个分片中目标日志的速度。当分到一个分片的目标日志数量明显少于其他分片中目标日志的数量时,可以相应的增加这个分片对应子节点的子匹配值的范围,以此提高分到这个分片中目标日志的速度。第二种方式,使用现有的树结构作为所述匹配树,所述匹配树包括用于描述所述至少一个数据表中一个数据表的平衡树的一部分树结构;相应的,所述匹配树的根节点为所述平衡树的根节点,所述至少一层子节点为所述平衡树的至少一层枝节点。这里的平衡树的树结构可以为B树(英文:balancedtree)或者B+树或者其他B树的具体结构类型。由于平衡树的结构特点,导致了这个数据表的目标日志在通过这种匹配树进行分片后,能够有较大的可能,获得的各个分片中的目标日志数量之间较为平衡。一般情况下,本发明实施例只使用所述平衡树的根节点和一部分直接相连的枝节点作为匹配树。图2为本发明实施例提供的一种匹配树的使用示意图,如图2所示,匹配树包括用于描述所述至少一个数据表中一个数据表的平衡树的一部分树结构。所述匹配树的树结构的第一层为根节点,根节点的匹配值的范围为从1到190(这个取值范围根据匹配标识确定),其中具体分了四个部分,一个部分为1到10,一个部分为11到30,一个部分为31到60,一个部分为91到190。不同的部分对应了树结构中第二层也是最后一层的部分子节点(平衡树的枝节点)。第二层包括了20个子节点,各个子节点的子匹配值的范围由平衡树确定。例如图2中最上面的子节点的子匹配值的范围为1到2,第二个子节点的子匹配值的范围的3 到5等。在所述第二种方式中,需要注意的是,如果在所述从数据库服务器进行日志分片的过程中,各个分片的目标日志的数量过多时,可以认为所述从数据库服务器并行的日志回放速度已经低于日志分片过程中向各个分片分目标日志的速度。可以通过增加分片数量的方式,相应的降低向各个分片分目标日志的速度。由于在平衡树中,层数越大,枝节点的数量相对越多,也就是说,可选的,在进行所述日志分片的过程中,若分到一个分片中的目标日志超出预设阈值,增加所述匹配树包括所述平衡树的枝节点的层数,由此增加通过所述日志分片后得到的分片的数量。在采用所述第二种方式设置匹配树时,若所述目标表集合中只包括一个数据表,也就是说构成所述匹配树的平衡树是用于描述这个数据表的,那么在所述从数据库服务器进行日志分片时,可以达到最佳的分片效果,即各个分片中的目标日志的数量之间可以相对于最为平衡。接下来通过实施例描述,在本发明中,所述从数据库服务器如何通过设置的匹配树,对目标日志进行日志分片。图3为本发明实施例提供的一种日志分片方法的方法流程图,所述方法包括:S301:从数据库服务器接收主数据库服务器发送的第一日志,所述第一日志携带对应的数据表标识和匹配标识。举例说明,由于数据日志是为了记录用户针对数据表的改动生成的,故至少需要携带对应的数据表标识。为了能够使得从数据库服务器能够完成日志分片,还需要携带对应的匹配标识。出于方便日志回放的考虑,希望分到一个分片中目标日志均对应于同一个数据表。为了能够达到这个效果,可选的,一个目标日志携带的匹配标识用于标识这个目标日志对应的数据表。在传统的日志分片方式中,分片时可能会将主键值相邻的目标日志分到不同的分片中,比如主键值为1000和10001的主键所对应的数据日志,被分配到不同的分片并行处理,而它们对应的数据记录可能位于同一数据页面,那么在进行日志回放的过程中,可能会产生锁冲突和等待的情况。为了解决 这种情况,可选的,所述第一日志的匹配标识具体用于标识第一数据记录,所述第一数据记录为所述第一日志对应的数据表中的一条数据记录。进一步,可选的,本发明实施例中,所述第一日志的匹配标识为所述第一数据记录的主键值。这样,在日志分片后,相邻的主键对应的数据日志可以尽可能的被分到相同的分片,由一个进程进行后续的日志回放,减少了日志回放过程中的锁冲突,和页面的反复加锁解锁。S302:所述从数据库服务器根据所述第一日志的数据表标识确定匹配树。也就是说,根据不同数据表标识,所述从数据库服务器可以调取不同的匹配树进行日志分片。S303:所述从数据库服务器根据所述匹配树对所述第一日志进行日志分片。可见,从数据库服务器接收主数据库服务器发送的第一日志,根据所述第一日志的数据表标识确定所述匹配树,根据所述匹配树对所述第一日志进行日志分片。通过设置的匹配树,可以有效的利用匹配树的树结构对日志进行日志分片,分片后的日志并发度高,提高了进行日志回放的效率。可选的,本发明实施例还提供了一种具体的针对所述第一日志的日志分片方式,所述所述从数据库服务器根据所述匹配树对所述第一日志进行日志分片,其中包括:所述从数据库服务器将所述第一日志的匹配标识与所述匹配树进行匹配,根据所述匹配树的树结构确定出与所述第一日志的匹配标识相匹配的目标子节点,所述第一日志的匹配标识处于所述目标子节点的子匹配值的范围中,所述目标子节点为所述树结构最下一层中的一个子节点。所述从数据库服务器将所述第一日志分到所述目标子节点对应的分片。举例说明,以一个根据update操作而对应生成的数据日志为例,所述从数据库服务器对该数据日志进行日志分片的过程如下。假如此操作对应的表为T1,匹配标识为主键值,这张表T1分片所用的匹配树的树结构可以为图2所示的结构。如果该update操作所修改的数据记录的主键的主键值为78,则所述从数据库服务器在接收到这个数据日志时,根据作为匹配标识的主键值,以图2所示匹配树进行匹配。按照匹配索引的流程,先匹配根节点的键值, 匹配为60到90键值之间的位置。继续向下一层的子节点进行匹配,在下一层子节点中,匹配到子匹配值的范围为75到80之间的子节点,而所有通过匹配落入这一子匹配值范围的数据日志,都会被分片到分片5。针对这张表T1的其他数据日志,所述从数据库服务器也可以按照其携带的作为匹配标识的主键值,使用如图2的匹配树进行类似的匹配和分片。可见,设置与目标表集合中数据表对应的匹配树,并使用所述匹配树作为对目标日志进行日志分片的依据,在设置匹配树时,通过设置所述匹配树的树结构最下一层子节点的子匹配值的范围,使得在通过所述匹配树进行日志分片时,通过匹配分到最下一层各个子节点的目标日志的数据之间差值小于预设差值。在具体的分片过程中,所述从数据库服务器针对接收的第一日志,通过第一日志的数据表标识确定出对应的所述匹配树,匹配所述第一日志的匹配标识和所述匹配树中子节点的子匹配值得到目标子节点,将所述第一日志分到所述目标子节点对应的分片。由于所述预设差值一般设置较小,由此得到的各个分片中包括目标日志的数量差别不大,较为平衡。那么在从数据库服务器进行并行的日志回放时,并发度高,提高了进行日志回放的效率。进一步的,所述从数据库服务器在分片的过程中,还会同时对分片中的目标日志进行并行的日志回放。为此,所述第一日志还包括日志标识和对所述第一日志对应的数据表的数据改动,所述方法还包括:所述从数据库服务器对通过所述日志分片得到的多个分片进行并行的日志回放,其中,所述从数据库服务器根据所述第一日志的日志标识和数据改动,对所述第一日志进行日志回放。从而完成与主数据库服务器的数据同步。图4为本发明实施例提供的一种日志分片装置的装置结构图,所述装置包括:接收单元401,用于接收主数据库服务器发送的第一日志,所述第一日志携带对应的数据表标识和匹配标识。出于方便日志回放的考虑,希望分到一个分片中目标日志均对应于同一个数据表。为了能够达到这个效果,可选的,一个目标日志携带的匹配标识 用于标识这个目标日志对应的数据表。在传统的日志分片方式中,分片时可能会将主键值相邻的目标日志分到不同的分片中,比如主键值为1000和10001的主键所对应的数据日志,被分配到不同的分片并行处理,而它们对应的数据记录可能位于同一数据页面,那么在进行日志回放的过程中,可能会产生锁冲突和等待的情况。为了解决这种情况,可选的,所述第一日志的匹配标识具体用于标识第一数据记录,所述第一数据记录为所述第一日志对应的数据表中的一条数据记录。进一步,可选的,本发明实施例中,所述第一日志的匹配标识为所述第一数据记录的主键值。这样,在日志分片后,相邻的主键对应的数据日志可以尽可能的被分到相同的分片,由一个进程进行后续的日志回放,减少了日志回放过程中的锁冲突,和页面的反复加锁解锁。确定单元402,用于根据所述第一日志的数据表标识确定匹配树。分片单元403,用于根据所述匹配树对所述第一日志进行日志分片。可见,从数据库服务器接收主数据库服务器发送的第一日志,根据所述第一日志的数据表标识确定所述匹配树,根据所述匹配树对所述第一日志进行日志分片。通过设置的匹配树,可以有效的利用匹配树的树结构对日志进行日志分片,分片后的日志并发度高,提高了进行日志回放的效率。可选的,所述分配单元具体用于将所述第一日志的匹配标识与所述匹配树进行匹配,根据所述匹配树的树结构确定出与所述第一日志的匹配标识相匹配的目标子节点,所述第一日志的匹配标识处于所述目标子节点的子匹配值的范围中,所述目标子节点为所述树结构最下一层中的一个子节点;将所述第一日志分到所述目标子节点对应的分片。可选的,匹配树设置单元400,用于根据目标表集合获取对应的匹配树,所述目标表集合包括数据库中的至少一个数据表,所述匹配树的树结构包括一个根节点和所述根节点的至少一层子节点,所述根节点用于匹配的匹配值的范围根据多个目标日志携带的匹配标识的范围确定,所述多个目标日志为对应所述至少一个数据表的数据日志,所述第一日志为所述多个目标日志中的一个目标日志,处于一层的子节点中,各个子节点用于匹配的子匹配值的 总范围与所述根节点的匹配值的范围相同,通过设置所述匹配树的树结构最下一层子节点的子匹配值的范围,使得在通过所述匹配树进行日志分片时,通过匹配分到最下一层各个子节点的目标日志的数据之间差值小于预设差值,所述匹配树的树结构最下一层的一个子节点对应一个分片。可选的,所述匹配树包括用于描述所述至少一个数据表中一个数据表的平衡树的一部分树结构;相应的,所述匹配树的根节点为所述平衡树的根节点,所述至少一层子节点为所述平衡树的至少一层枝节点。可选的,在进行所述日志分片的过程中,若分到一个分片中的目标日志超出预设阈值,增加所述匹配树包括所述平衡树的枝节点的层数,由此增加通过所述日志分片后得到的分片的数量。可见,设置与目标表集合中数据表对应的匹配树,并使用所述匹配树作为对目标日志进行日志分片的依据,在设置匹配树时,通过设置所述匹配树的树结构最下一层子节点的子匹配值的范围,使得在通过所述匹配树进行日志分片时,通过匹配分到最下一层各个子节点的目标日志的数据之间差值小于预设差值。在具体的分片过程中,所述从数据库服务器针对接收的第一日志,通过第一日志的数据表标识确定出对应的所述匹配树,匹配所述第一日志的匹配标识和所述匹配树中子节点的子匹配值得到目标子节点,将所述第一日志分到所述目标子节点对应的分片。由于所述预设差值一般设置较小,由此得到的各个分片中包括目标日志的数量差别不大,较为平衡。那么在从数据库服务器进行并行的日志回放时,并发度高,提高了进行日志回放的效率。进一步的,所述从数据库服务器在分片的过程中,还会同时对分片中的目标日志进行并行的日志回放。为此,所述第一日志还包括日志标识和对所述第一日志对应的数据表的数据改动,可选的,在图4所对应实施例的基础上,还包括:回放单元,用于对通过所述日志分片得到的多个分片进行并行的日志回放,其中,所述从数据库服务器根据所述第一日志的日志标识和数据改动,对所述第一日志进行日志回放。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤 可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:read-onlymemory,缩写:ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1