技术新讯 > 计算推算,计数设备的制造及其应用技术 > 分布式数据库查询方法、分布式数据库、设备、介质及产品与流程  >  正文

分布式数据库查询方法、分布式数据库、设备、介质及产品与流程

  • 国知局
  • 2024-10-09 15:24:37

本发明涉及分布式数据库,尤其涉及分布式数据库查询方法、分布式数据库、设备、介质及产品。

背景技术:

1、分布式数据库是将业务的结构化查询语言(structured query language,sql)请求分解到多个存储节点上执行。存储节点通常能保证acid(原子性、一致性、隔离性以及持久性)的特性,但是仅仅将业务sql请求分解成多个请求在存储节点进行执行,不能保证分布式事务作为整体的隔离性。

2、操作相同数据表的事务间可能出现脏读的情况。例如,假定分布式数据库具有存储节点a和b。分布式事务1在存储节点a和b上均进行数据更新。进入提交阶段,提交请求会被分解为存储节点a和b的提交指令。假如存储节点a的提交速度比存储节点b快,会存在一个中间状态,当a提交完成,b未提交完成。如果此时分布式事务2查询存储节点a和b,会查询到分布式事务1在存储节点a发生了修改但不会查到b上发生了修改。但事实上。分布式事务1作为一个整体应视为未完成提交,对分布式事务2而言,这个查询结果是一个脏读,没有遵循正确的隔离性。无法保证分布式事务的acid的一致性,即全局事务读一致性。

3、基于tso server(全局时钟服务)的多版本并发控制方法可以解决上述问题,但是此方法存在性能问题,分布式数据库入口gate从各个存储节点串行查询多个表的所有数据行,如果表较大,延时会较高。

技术实现思路

1、本发明提供了一种分布式数据库查询方法、分布式数据库、设备、介质及产品,以解决分布式数据库查询多个存储节点的数据行时延时较高的问题。

2、根据本发明的一方面,提供了一种分布式数据库查询方法,应用于分布式数据库,所述分布式数据库中包括分布式数据库入口以及至少一个存储节点,包括:

3、分布式数据库入口在接收到客户端的查询请求后,若所述查询请求满足目标条件,根据所述查询请求确定至少一个待查询存储节点及其对应的子查询请求,并将所述子查询请求发送给对应的所述待查询存储节点;

4、每个待查询存储节点,通过所述待查询存储节点与所述分布式数据库入口之间的主连接和至少一个辅助连接并行查询所述待查询存储节点中的数据表,确定所述子查询请求对应的查询结果并反馈给所述分布式数据库入口,其中,所述辅助连接基于所述主连接的连接标识以及主连接上开启的单机事务的分布式快照查询所述待查询存储节点中的数据表;

5、所述分布式数据库入口对各所述子查询请求对应的查询结果进行连接计算,确定目标查询请求,并在各所述待查询存储节点与所述客户端对应的主连接上执行目标查询请求,确定所述查询请求的查询结果。

6、根据本发明的另一方面,提供了一种分布式数据库,所述分布式数据库中包括分布式数据库入口以及至少一个存储节点;

7、分布式数据库入口,用于在接收到客户端的查询请求后,若所述查询请求满足目标条件,根据所述查询请求确定至少一个待查询存储节点及其对应的子查询请求,并将所述子查询请求发送给对应的所述待查询存储节点;

8、每个待查询存储节点,用于通过所述待查询存储节点与所述分布式数据库入口之间的主连接和至少一个辅助连接并行查询所述待查询存储节点中的数据表,确定所述子查询请求对应的查询结果并反馈给所述分布式数据库入口,其中,所述辅助连接基于所述主连接的连接标识以及主连接上开启的单机事务的分布式快照查询所述待查询存储节点中的数据表;

9、所述分布式数据库入口,用于对各所述子查询请求对应的查询结果进行连接计算,确定目标查询请求,并在各所述待查询存储节点与所述客户端对应的主连接上执行目标查询请求,确定所述查询请求的查询结果。

10、根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:

11、至少一个处理器,以及与所述至少一个处理器通信连接的存储器;

12、其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的分布式数据库查询方法。

13、根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的分布式数据库查询方法。

14、根据本发明的另一方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序在被处理器执行时实现本发明任一实施例所述的分布式数据库查询方法。

15、本发明实施例的技术方案,通过分布式数据库入口在接收到客户端的查询请求后,若所述查询请求满足目标条件,根据所述查询请求确定至少一个待查询存储节点及其对应的子查询请求,并将所述子查询请求发送给对应的所述待查询存储节点;每个待查询存储节点,通过所述待查询存储节点与所述分布式数据库入口之间的主连接和至少一个辅助连接并行查询所述待查询存储节点中的数据表,确定所述子查询请求对应的查询结果并反馈给所述分布式数据库入口,其中,所述辅助连接基于所述主连接的连接标识以及主连接上开启的单机事务的分布式快照查询所述待查询存储节点中的数据表;所述分布式数据库入口对各所述子查询请求对应的查询结果进行连接计算,确定目标查询请求,并在各所述待查询存储节点与所述客户端对应的主连接上执行目标查询请求,确定所述查询请求的查询结果,解决了分布式数据库查询多个存储节点的数据行时延时较高的问题,在保证全局事务一致性的同时,支持分布式数据库入口基于分布式快照从每个存储节点对应客户端的多个连接上并行的查询到各个表的所有的数据行,降低了分布式数据库执行复杂sql的查询延时,提高查询效率。

16、应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。

技术特征:

1.一种分布式数据库查询方法,其特征在于,应用于分布式数据库,所述分布式数据库中包括分布式数据库入口以及至少一个存储节点,包括:

2.根据权利要求1所述的方法,其特征在于,还包括:

3.根据权利要求1所述的方法,其特征在于,所述待查询存储节点通过所述待查询存储节点与所述分布式数据库入口之间的辅助连接查询所述待查询存储节点中的数据表,确定所述子查询请求对应的查询结果,包括:

4.根据权利要求3所述的方法,其特征在于,所述根据所述待查询表名称获取表解析对象,包括:

5.根据权利要求4所述的方法,其特征在于,所述获取临时表的表解析对象,包括:

6.根据权利要求5所述的方法,其特征在于,在获取临时表的表解析对象之后,还包括:

7.根据权利要求5所述的方法,其特征在于,在从所述可用表解析对象列表中选择一个表解析对象作为临时表的表解析对象之后,还包括:

8.根据权利要求3所述的方法,其特征在于,所述待查询存储节点基于所述表解析对象、所述过滤条件和所述分布式快照读取所述待查询存储节点中的数据表的数据行,确定所述子查询请求对应的查询结果,包括:

9.根据权利要求8所述的方法,其特征在于,基于所述表解析对象和所述分布式快照对数据行的最新版本进行可见性判断,包括:

10.根据权利要求9所述的方法,其特征在于,所述数据行的事务标识在更新数据行时根据更新所述数据行的当前事务的事务标识确定;所述数据行的提交时间戳在更新数据行时设置为预设值,并在更新所述数据行的当前事务提交时设置为当前事务的提交时间戳。

11.根据权利要求3所述的方法,其特征在于,如果所述表解析对象为临时表的表解析对象,在确定子查询请求对应的查询结果之后,还包括:

12.根据权利要求3-11任一项所述的方法,其特征在于,还包括:

13.一种分布式数据库,其特征在于,所述分布式数据库中包括分布式数据库入口以及至少一个存储节点;

14.一种电子设备,其特征在于,所述电子设备包括:

15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-12中任一项所述的分布式数据库查询方法。

16.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-12中任一项所述的分布式数据库查询方法。

技术总结本发明公开了一种分布式数据库查询方法、分布式数据库、设备、介质及产品;该方法包括:分布式数据库入口在查询请求满足目标条件时,确定待查询存储节点及其对应的子查询请求,将子查询请求发送给对应的待查询存储节点;每个待查询存储节点,通过待查询存储节点与分布式数据库入口之间的主连接和至少一个辅助连接并行查询待查询存储节点中的数据表,并反馈给分布式数据库入口;分布式数据库入口对查询结果进行连接计算,确定目标查询请求,并在各待查询存储节点与客户端对应的主连接上执行目标查询请求,确定查询结果,解决了分布式数据库查询多个存储节点的数据行时延时较高的问题,降低了分布式数据库执行复杂sql的查询延时,提高查询效率。技术研发人员:丛阳受保护的技术使用者:星环信息科技(上海)股份有限公司技术研发日:技术公布日:2024/9/29

本文地址:https://www.jishuxx.com/zhuanli/20241009/308647.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。