System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据库,具体而言,本申请涉及一种数据处理方法、装置、电子设备及存储介质。
技术介绍
1、面对日益增长的海量数据,分布式系统的应用越来越广泛。在分布式系统中一次操作需要由多个服务协同完成,这种由不同的服务之间通过网络协议共同完成的事务称为分布式事务。
2、目前,分布式事务的执行通常采用两阶段提交方法,该方法包括:计算节点将事务中的每条写语句产生的数据以kv(key value)键值对的方式缓存到内存中,并通过向存储节点发送rpc(remote procedure call,远程过程调用)请求为这些缓存的key进行加锁操作;当计算节点接收到客户端发送来的commit(提交)语句后依次向存储节点发送prewrite(预提交)和commit(提交)两个请求来提交事务,从而将数据持久化到存储节点。
3、现有的分布式事务两阶段提交方法在处理大事务时,造成计算节点消耗大量的内存,严重影响数据库处理大事务的能力,甚至会产生oom(out of memory,内存不足)错误。
技术实现思路
1、本申请实施例提供了一种数据处理方法、装置、电子设备及存储介质,可以解决现有技术中分布式事务两阶段提交方法无法有效处理大事务的问题。
2、所述技术方案如下:
3、根据本申请实施例的一个方面,提供了一种数据处理方法,应用于计算节点,该方法包括:
4、接收客户端发送的针对待处理事务的至少一条执行语句;
5、若检测到执行语句中写语句的数
6、若接收到客户端发送的提交语句,且所发送的至少一条预提交请求均已完成,则向第一存储节点发送所述提交语句中的提交请求,以供所述第一存储节点提交所述待处理事务。
7、可选地,所述若检测到执行语句中写语句的数量符合预设数量,则向第一存储节点发送至少一条预提交请求,以供所述第一存储节点执行所述至少一条预提交请求,包括:
8、每检测到一条写语句,向所述第一存储节点发送所述写语句对应的第一预提交请求,以指示所述第一存储节点执行如下操作:执行所述第一预提交请求,向所述计算节点返回第二响应指令,所述第二响应指令是所述第一存储节点开始副本同步时触发的;
9、所述向所述客户端返回第一响应指令,包括:
10、接收所述第一存储节点返回的第二响应指令;
11、释放所述写语句对应的至少一个kv键值对的内存;
12、向所述客户端返回第一响应指令。
13、可选地,所述执行所述第一预提交请求,向所述计算节点返回第二响应指令,包括:
14、对与所述写语句相关的数据进行加锁操作;
15、向至少一个第二存储节点分别发送副本同步指令,并向所述计算节点返回第二响应指令。
16、可选地,所述若接收到客户端发送的提交语句,且所发送的至少一条预提交请求均已完成,则向第一存储节点发送所述提交语句中的提交请求,以供所述第一存储节点提交所述待处理事务,包括:
17、接收所述客户端发送的提交语句;
18、向所述第一存储节点发送所述提交语句中的提交请求,以指示所述第一存储节点执行如下操作:
19、若检测出所述至少一条第一预提交请求均已执行完成时,提交所述待处理事务。
20、可选地,所述若检测到执行语句中写语句的数量符合预设数量,则向第一存储节点发送至少一条预提交请求,以供所述第一存储节点执行所述至少一条预提交请求,包括:
21、每检测到一条写语句,对所述写语句对应的至少一个kv键值对进行缓存,向所述第一存储节点发送加锁请求,以供所述第一存储节点对与所述写语句相关的数据进行加锁操作,直至接收到的写语句数据符合预设数量;
22、若检测到接收到的写语句符合预设数量,向所述第一存储节点发送所述预设数量的写语句对应的第二预提交请求,以供所述第一存储节点执行所述第二预提交请求;
23、释放所述至少一个kv键值对对应的内存。
24、可选地,所述向所述第一存储节点发送所述预设数量的写语句对应的第二预提交请求,以供所述第一存储节点执行所述第二预提交请求,包括:
25、向所述第一存储节点发送所述第二预提交请求,以指示所述第一存储节点执行如下操作:
26、向至少一个第二存储节点分别发送副本同步指令;
27、当所述至少一个第二存储节点均完成同步时,向所述计算节点返回针对所述第二预提交请求的预提交完成指令。
28、可选地,所述若接收到客户端发送的提交语句,且所发送的至少一条预提交请求均已完成,则向第一存储节点发送所述提交语句中的提交请求,以供所述第一存储节点提交所述待处理事务,包括:
29、接收所述客户端发送的提交语句;
30、若检测到存在未被预提交的kv键值对,则将所述未被预提交的kv键值对对应的第二预提交请求发送至所述第一存储节点;
31、若基于所述预提交完成指令确定出所发送的至少一条第二预提交请求均已完成,则将所述提交语句中的提交请求发送至所述第一存储节点,以供所述第一存储节点提交所述待处理事务。
32、根据本申请实施例的另一个方面,提供了一种数据处理装置,该装置包括:
33、语句接收模块,用于接收客户端发送的针对待处理事务的至少一条执行语句;
34、预提交执行模块,用于若检测到执行语句中写语句的数量符合预设数量,则向第一存储节点发送至少一条预提交请求,以供所述第一存储节点执行所述至少一条预提交请求;向所述客户端返回第一响应指令;
35、提交执行模块,用于若接收到客户端发送的提交语句,且所发送的至少一条预提交请求均已完成,则向第一存储节点发送所述提交语句中的提交请求,以供所述第一存储节点提交所述待处理事务。
36、根据本申请实施例的另一个方面,提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述任一种数据处理方法的步骤。
37、根据本申请实施例的再一个方面,提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种数据处理方法的步骤。
38、本申请实施例提供的技术方案带来的有益效果是:
39、本申请实施例中,计算节点是在检测到接收到的写语句达到预设数量,就会向存储节点发送预提交请求,也就是说计算节点只需要对少量写语句或者不需要对写语句进行缓存操作,降低了对计算节点的内存的消耗,使得分布式系统能够对大事务进行有效地处理。
40、进一步地,本申请实施例中,计算节点是在检测到接收到的写语句达到预设数量,向存储节点发送预提交请求;在接收到提交语句,且检本文档来自技高网...
【技术保护点】
1.一种数据处理方法,其特征在于,应用于计算节点,包括:
2.根据权利要求1所述的数据处理方法,其特征在于,所述若检测到执行语句中写语句的数量符合预设数量,则向第一存储节点发送至少一条预提交请求,以供所述第一存储节点执行所述至少一条预提交请求,包括:
3.根据权利要求2所述的数据处理方法,其特征在于,所述执行所述第一预提交请求,向所述计算节点返回第二响应指令,包括:
4.根据权利要求2所述的数据处理方法,其特征在于,所述若接收到客户端发送的提交语句,且所发送的至少一条预提交请求均已完成,则向第一存储节点发送所述提交语句中的提交请求,以供所述第一存储节点提交所述待处理事务,包括:
5.根据权利要求1所述的数据处理方法,其特征在于,所述若检测到执行语句中写语句的数量符合预设数量,则向第一存储节点发送至少一条预提交请求,以供所述第一存储节点执行所述至少一条预提交请求,包括:
6.根据权利要求5所述的数据处理方法,其特征在于,所述向所述第一存储节点发送所述预设数量的写语句对应的第二预提交请求,以供所述第一存储节点执行所述第二预提
7.根据权利要求6所述的数据处理方法,其特征在于,所述若接收到客户端发送的提交语句,且所发送的至少一条预提交请求均已完成,则向第一存储节点发送所述提交语句中的提交请求,以供所述第一存储节点提交所述待处理事务,包括:
8.一种数据处理装置,其特征在于,包括:
9.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述方法的步骤。
...【技术特征摘要】
1.一种数据处理方法,其特征在于,应用于计算节点,包括:
2.根据权利要求1所述的数据处理方法,其特征在于,所述若检测到执行语句中写语句的数量符合预设数量,则向第一存储节点发送至少一条预提交请求,以供所述第一存储节点执行所述至少一条预提交请求,包括:
3.根据权利要求2所述的数据处理方法,其特征在于,所述执行所述第一预提交请求,向所述计算节点返回第二响应指令,包括:
4.根据权利要求2所述的数据处理方法,其特征在于,所述若接收到客户端发送的提交语句,且所发送的至少一条预提交请求均已完成,则向第一存储节点发送所述提交语句中的提交请求,以供所述第一存储节点提交所述待处理事务,包括:
5.根据权利要求1所述的数据处理方法,其特征在于,所述若检测到执行语句中写语句的数量符合预设数量,则向第一存储节点发送至少一条预提交请求,以供所述第一存储节点执行所述至...
【专利技术属性】
技术研发人员:林品,刘奇,黄东旭,崔秋,
申请(专利权)人:平凯星辰北京科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。