分布式数据库的WAL记录的分发方法和装置制造方法及图纸

技术编号:17162153 阅读:16 留言:0更新日期:2018-02-01 20:25
本申请提供一种分布式数据库的WAL记录的分发方法和装置,通过根据各事务的WAL记录涉及的操作数据之间的相关性,确定每个分库对应的事务的WAL记录,并向每个分库发送所对应的事务的WAL记录,而无需向每个分库发送同一批次的事务对应的全部WAL记录发送到分库进行执行,从而,使得分布式数据库的WAL记录的分发更加合理,提高分布式数据库整体的处理性能。

Distribution method and device for WAL records of distributed database

The invention provides a method and device for distributing a distributed database of WAL records, the correlation between the data through the operation according to the transaction relates to WAL records, to determine each pool the corresponding transaction records of the WAL, and send the corresponding to each bank transaction record WAL, without the need to send the same batch of each branch the corresponding transaction records are sent to all WAL library implementation, thus, distributed database WAL records distribution more reasonable, improve the overall performance of the distributed database processing.

【技术实现步骤摘要】
分布式数据库的WAL记录的分发方法和装置
本申请涉及计算机技术,尤其涉及一种分布式数据库的WAL记录的分发方法和装置。
技术介绍
分布式数据库是指利用高速计算机网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库,即将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储节点上,以获取更大的存储容量和更高的并发访问量。分布式数据库通常包括多个分库,为了保证各分库上的数据的一致性,通常采用预写日志(Write-AheadLogging,简称WAL)机制,即,先写日志记录后写数据,一个事务对应一条WAL记录,现有技术中,对每个事务进行预测,分析出这些事务会涉及到哪些分库、哪些表和哪些主键,然后,根据预测结果和构化查询语言(StructuredQueryLanguage,简称:SQL)生成WAL记录,同一批次的事务会对应多条WAL记录,现有的WAL机制将同一个批次的事务对应的全部WAL记录发送给每个分库对应的进程,即,每个分库对应的进程都接收到同一批次的事务对应的全部WAL记录,然而,其中很多事务并不涉及到所有分库。采用现有技术的方法,分布式数据库的WAL记录的分发不够合理,使得分布式数据库整体的处理性能不高。
技术实现思路
本申请提供一种分布式数据库的WAL记录的分发方法和装置,以解决现有技术中分布式数据库的WAL记录的分发不够合理,使得分布式数据库整体的处理性能不高。一个方面,本申请提供一种分布式数据库的WAL记录分发方法,包括:根据各事务的预写日志WAL记录涉及的操作数据之间的相关性,确定每个分库对应的事务的WAL记录;向每个分库发送所对应的事务的WAL记录。作为一种可实现方式,根据各事务的WAL记录涉及的操作数据之间的相关性,确定每个分库对应的事务的WAL记录,包括:获取各事务的WAL记录涉及的操作数据;根据各事务的WAL记录涉及的操作数据建立各事务之间的依赖关系;根据各事务之间的依赖关系,确定各事务涉及的分库;根据各事务涉及的分库,确定每个分库对应的事务的WAL。作为一种可实现方式,根据各事务的WAL记录涉及的操作数据建立各事务之间的依赖关系,包括:获取各事务的WAL记录涉及的操作数据中具有相同操作数据的事务;确定具有相同操作数据的事务之间具有依赖关系。作为一种可实现方式,根据各事务之间的依赖关系,确定各事务涉及的分库,包括:获取各事务涉及的操作数据所在的分库;确定依赖关系中,执行顺序在前的事务涉及的分库包括:执行顺序在后的事务的WAL记录涉及的操作数据所在的所有分库,以及执行顺序在前的事务的WAL记录涉及的操作数据所在的所有分库。作为一种可实现方式,还包括:确定除依赖关系中执行顺序在前的事务以外的其他的任一事务涉及的分库包括:事务的WAL记录涉及的操作数据所在的所有分库。作为一种可实现方式,获取各事务的WAL记录涉及的操作数据之前,还包括:接收事务请求,事务请求中包含至少一个事务;生成并存储各事务的WAL记录。作为一种可实现方式,操作数据通过表编号以及主键标识。另一方面,本申请提供一种分布式数据库的WAL记录分发装置,包括:处理模块,用于根据各事务的预写日志WAL记录涉及的操作数据之间的相关性,确定每个分库对应的事务的WAL记录;发送模块,用于向每个分库发送所对应的事务的WAL记录。作为一种可实现方式,处理模块具体用于获取各事务的WAL记录涉及的操作数据;根据各事务的WAL记录涉及的操作数据建立各事务之间的依赖关系;根据各事务之间的依赖关系,确定各事务涉及的分库;根据各事务涉及的分库,确定每个分库对应的事务的WAL。作为一种可实现方式,处理模块具体用于获取各事务的WAL记录涉及的操作数据中具有相同操作数据的事务;确定具有相同操作数据的事务之间具有依赖关系。作为一种可实现方式,处理模块具体用于获取各事务涉及的操作数据所在的分库;确定依赖关系中,执行顺序在前的事务涉及的分库包括:执行顺序在后的事务的WAL记录涉及的操作数据所在的所有分库,以及执行顺序在前的事务的WAL记录涉及的操作数据所在的所有分库。作为一种可实现方式,处理模块具体用于确定除依赖关系中执行顺序在前的事务以外的其他的任一事务涉及的分库包括:事务的WAL记录涉及的操作数据所在的所有分库。作为一种可实现方式,装置还包括:接收模块,用于接收事务请求,事务请求中包含至少一个事务;处理模块还用于生成各事务的WAL记录;存储模块,用于存储各事务的WAL记录。又一方面,本申请提供一种分布式数据库的WAL记录分发装置,包括:处理器,用于根据各事务的预写日志WAL记录涉及的操作数据之间的相关性,确定每个分库对应的事务的WAL记录;通信接口,用于向每个分库发送所对应的事务的WAL记录。作为一种可实现方式,处理器具体用于获取各事务的WAL记录涉及的操作数据;根据各事务的WAL记录涉及的操作数据建立各事务之间的依赖关系;根据各事务之间的依赖关系,确定各事务涉及的分库;根据各事务涉及的分库,确定每个分库对应的事务的WAL。作为一种可实现方式,处理器具体用于获取各事务的WAL记录涉及的操作数据中具有相同操作数据的事务;确定具有相同操作数据的事务之间具有依赖关系。作为一种可实现方式,处理器具体用于获取各事务涉及的操作数据所在的分库;确定依赖关系中,执行顺序在前的事务涉及的分库包括:执行顺序在后的事务的WAL记录涉及的操作数据所在的所有分库,以及执行顺序在前的事务的WAL记录涉及的操作数据所在的所有分库。作为一种可实现方式,处理器具体用于确定除依赖关系中执行顺序在前的事务以外的其他的任一事务涉及的分库包括:事务的WAL记录涉及的操作数据所在的所有分库。作为一种可实现方式,装置还包括:存储器,通信接口和存储器耦合至处理器;通信接口,还用于接收事务请求,事务请求中包含至少一个事务;处理器,还用于生成各事务的WAL记录;存储器,用于存储各事务的WAL记录。本申请提供的通过根据各事务的WAL记录涉及的操作数据之间的相关性,确定每个分库对应的事务的WAL记录,并向每个分库发送所对应的事务的WAL记录,而无需向每个分库发送同一批次的事务对应的全部WAL记录发送到分库进行执行,从而,使得分布式数据库的WAL记录的分发更加合理,提高分布式数据库整体的处理性能。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本申请的分布式数据库系统实施例的一种结构示意图;图2为本申请分布式数据库的WAL记录分发方法实施例一的流程示意图;图3为本申请建立依赖树的实施例的流程示意图;图4为本申请分布式数据库的WAL记录分发方法实施例四的流程示意图;图5为本申请分布式数据库的WAL记录分发装置实施例一的结构示意图;图6为本申请分布式数据库的WAL记录分发装置实施例二的结构示意图;图7为本申请分布式数据库的WAL记录分发装置实施例三的结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅本文档来自技高网...
分布式数据库的WAL记录的分发方法和装置

【技术保护点】
一种分布式数据库的WAL记录分发方法,其特征在于,包括:根据各事务的预写日志WAL记录涉及的操作数据之间的相关性,确定每个分库对应的事务的WAL记录;向每个分库发送所对应的事务的WAL记录。

【技术特征摘要】
1.一种分布式数据库的WAL记录分发方法,其特征在于,包括:根据各事务的预写日志WAL记录涉及的操作数据之间的相关性,确定每个分库对应的事务的WAL记录;向每个分库发送所对应的事务的WAL记录。2.根据权利要求1所述的方法,其特征在于,所述根据各事务的WAL记录涉及的操作数据之间的相关性,确定每个分库对应的事务的WAL记录,包括:获取各事务的WAL记录涉及的操作数据;根据所述各事务的WAL记录涉及的操作数据建立所述各事务之间的依赖关系;根据所述各事务之间的依赖关系,确定所述各事务涉及的分库;根据所述各事务涉及的分库,确定每个分库对应的事务的WAL。3.根据权利要求2所述的方法,其特征在于,所述根据所述各事务的WAL记录涉及的操作数据建立所述各事务之间的依赖关系,包括:获取各事务的WAL记录涉及的操作数据中具有相同操作数据的事务;确定具有相同操作数据的事务之间具有依赖关系。4.根据权利要求3所述的方法,其特征在于,所述根据所述各事务之间的依赖关系,确定所述各事务涉及的分库,包括:获取所述各事务涉及的操作数据所在的分库;确定所述依赖关系中,执行顺序在前的事务涉及的分库包括:执行顺序在后的事务的WAL记录涉及的操作数据所在的所有分库,以及所述执行顺序在前的事务的WAL记录涉及的操作数据所在的所有分库。5.根据权利要求3所述的方法,其特征在于,还包括:确定除所述依赖关系中执行顺序在前的事务以外的其他的任一事务涉及的分库包括:所述事务的WAL记录涉及的操作数据所在的所有分库。6.根据权利要求2所述的方法,其特征在于,所述获取各事务的WAL记录涉及的操作数据之前,还包括:接收事务请求,所述事务请求中包含至少一个事务;生成并存储各事务的WAL记录。7.根据权利要求1-6任一项所述的方法,其特征在于,所述操作数据通过表编号以及主键标识。8.一种分布式数据库的WAL记录分发装置,其特征在于,包括:处理模块,用于根据各事务的预写日志WAL记录涉及的操作数据之间的相关性,确定每个分库对应的事务的WAL记录;发送模块,用于向每个分库发送所对应的事务的WAL记录。9.根据权利要求8所述的装置,其特征在于,所述处理模块具体用于获取各事务的WAL记录涉及的操作数据;根据所述各事务的WAL记录涉及的操作数据建立所述各事务之间的依赖关系;根据所述各事务之间的依赖关系,确定所述各事务涉及的分库;根据所述各事务涉及的分库,确定每个分库对应的事务的WAL。10.根据权利要求9所述的装置,其特征在于,所述处理模块具体用于获取各事务的WAL记录涉及的操作数据...

【专利技术属性】
技术研发人员:姜宇
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1