【技术实现步骤摘要】
分布式数据库的数据操作请求处理方法及装置
本申请涉及分布式数据库领域,尤其涉及分布式数据库的数据操作请求处理方法及装置。
技术介绍
为了解决单级数据库的扩容问题,分布式数据库作为一种解决方法被广泛采用。相对于传统人工分库分表的数据库部署,分布式数据库提供了数据分区的功能以支持数据横向扩展。分布式数据库可以使用由多个独立节点组成、节点间采用网络互联的计算机集群实现数据库的分布式存储、计算等功能。分布式数据库可以使用相互独立的计算节点,则同一张数据表的不同数据可以根据分区策略被分配到不同的节点进行存储,考虑到网络时延和带宽原因,跨节点的数据操作效率一般远小于节点内部的数据操作效率,为了保证分布式数据库的高效运行,针对不同数据的数据操作请求需要被尽可能地路由到其对应的存储节点,其中,数据操作请求可以是诸如结构化查询语言(StructuredQueryLanguage,SQL)请求等可用于请求操作分布式数据库中数据的请求。在现有技术中,由于分布式数据库的分区规则的复杂性,数据操作请求路由往往通过少量的服务器(称为路由代理服务器)集中部署。具体地,分布式数据库对应的客户端可以与路由代理服务器建立会话并发出数据操作请求,路由代理服务器接收到数据操作请求后,根据数据操作请求所依赖的数据分区,将数据操作请求转发到该分区所处节点进行处理,由于处理结果也需要路由代理服务器转发回到客户端。但是,由于路由代理服务器往往只有少数机器组成,其接受数据处理请求的吞吐量较小,从而导致数据操作请求路由效率低。
技术实现思路
本申请实施例提供分布式数据库的数据操作请求处理方法及装置,用以解决现有 ...
【技术保护点】
一种分布式数据库的数据操作请求处理方法,其特征在于,包括:客户端接收数据操作请求,所述数据操作请求中包含其所请求操作的数据对应的关键字和数据表的表名;所述客户端根据所述关键字和所述表名,当确定所述数据表为分区表时,获取与所述数据操作请求和所述分区表对应的分区策略;所述客户端根据所述分区策略,将所述数据操作请求发送给所述数据操作请求所请求操作的数据所处的服务器。
【技术特征摘要】
1.一种分布式数据库的数据操作请求处理方法,其特征在于,包括:客户端接收数据操作请求,所述数据操作请求中包含其所请求操作的数据对应的关键字和数据表的表名;所述客户端根据所述关键字和所述表名,当确定所述数据表为分区表时,获取与所述数据操作请求和所述分区表对应的分区策略;所述客户端根据所述分区策略,将所述数据操作请求发送给所述数据操作请求所请求操作的数据所处的服务器。2.如权利要求1所述的方法,其特征在于,所述客户端根据所述关键字和所述表名,当确定所述数据表为分区表时,获取与所述数据操作请求和所述分区表对应的分区策略,具体包括:所述客户端对所述数据操作请求进行解析,获得所述表名;所述客户端根据所述表名,在所述客户端上保存的分区表模式信息和/或所述客户端的服务端上保存的分区表模式信息中进行查询,以确定所述数据表是否为分区表;若是,对所述数据操作请求进行参数化处理,获得所述关键字,并根据所述关键字和所述表名,获取与所述数据操作请求和所述分区表对应的分区策略。3.如权利要求2所述的方法,其特征在于,所述客户端根据所述表名,在所述客户端上保存的分区表模式信息和/或所述客户端的服务端上保存的分区表模式信息中进行查询,以确定所述数据表是否为分区表,具体包括:所述客户端根据所述表名,在所述客户端上保存的分区表模式信息中进行查询,以确定所述客户端上保存的分区表模式信息是否包含所述数据表对应的分区表模式信息;若是,根据所述客户端上保存的分区表模式信息,确定所述数据表是否为分区表;否则,根据所述表名,在所述客户端的服务端上保存的分区表模式信息中查询,以确定所述数据表是否为分区表,以及若查询获得所述数据表对应的分区表模式信息,将所述数据表对应的分区表模式信息保存至所述客户端上。4.如权利要求1所述的方法,其特征在于,获取与所述数据操作请求和所述分区表对应的分区策略,具体包括:所述客户端根据所述关键字和所述表名,从所述客户端和/或所述客户端的服务端,获取与所述数据操作请求和所述分区表对应的分区策略。5.如权利要求4所述的方法,其特征在于,所述客户端根据所述关键字和所述表名,从所述客户端和/或所述客户端的服务端,获取与所述数据操作请求和所述分区表对应的分区策略,具体包括:所述客户端根据所述关键字和所述表名,确定所述客户端上保存的分区策略中是否包含与所述数据操作请求和所述分区表对应的分区策略;若是,从所述客户端获取与所述数据操作请求和所述分区表对应的分区策略;否则,从所述客户端的服务端获取与所述数据操作请求和所述分区表对应的分区策略,以及将与所述数据操作请求和所述分区表对应的分区策略保存至所述客户端上。6.如权利要求5所述的方法,其特征在于,从所述客户端的服务端获取与所述数据操作请求和所述分区表对应的分区策略,具体包括:所述客户端将所述数据操作请求发送给所述客户端的服务端,以使所述客户端的服务端根据所述数据操作请求包含的所述关键字和所述表名,确定与所述数据操作请求和所述分区表对应的分区策略并返回给所述客户端。7.如权利要求6所述的方法,其特征在于,所述客户端将所述数据操作请求发送给所述客户端的服务端,具体包括:所述客户端将携带所述数据操作请求的虚拟表查询请求发送给所述客户端的服务端,以使所述服务端通过对应的虚拟表,确定与所述数据操作请求和所述分区表对应的分区策略并返回给所述客户端。8.如权利要求1所述的方法,其特征在于,所述客户端根据所述分区策略,将所述数据操作请求发送给所述数据操作请求所请求操作的数据所处的服务器,具体包括:所述客户端根据所述分区策略以及所述关键字,确定所述数据操作请求所请求操作的数据所处分区的分区物理标识;根据所述分区物理标记,在保存的分区物理位置信息中确定所述分区物理标记对应的分区物理位置信息;根据所述分区物理标记对应的分区物理位置信息,确定所述数据所请求操作的数据所处的服务器的地址,并将所述数据操作请求发送给所述服务器。9.如权利要求8所述的方法,其特征在于,当所述分区为范围range分区时,所述客户端根据所述分区策略以及所述关键字,确定所述数据操作请求所请求操作的数据所处分区的分区物理标识,具体包括:所述客户端获取所述分区表对应的分区表模式信息;所述客户端根据所述分区表对应的分区表模式信息、所述分区策略以及所述关键字,确定所述数据操作请求所请求操作的数据所处分区的分区物理标识。10.如权利要求1~9任一项所述的方法,其特征在于,所述客户端上保存的分区策略和/或分区表模式信息和/或分区物理位置信息分别保存在对应的缓存中。11.一种分布式数据库的数据操作请求处理方法,其特征在于,包括:服务端接收客户端发送的数据操作请求,所述数据操作请求中包含其所请求操作的数据对应的关键字和数据表的表名,所述数据表为分区表;所述服务端根据所述关键字和所述表名,获取与所述数据操作请求和所述分区表对应的分区策略;所述服务端将所述分区策略返回给所述客户端,以便于所述客户端根据所述分区策略,将所述数据操作请求发送给所述数据操作请求所请求操作的数据所处的服务器。12.如权利要求10所述的方法,其特征在于,服务端接收客户端发送的数据操作请求,具体包括:服务端接收客户端发送的携带数据操作请求的虚拟表查询请求。13.如权利要求12所述的方法,其特征在于,所述服务端根据所述数据操作请求,确定与所述数据操作请求和所述分区表对应的分区策略,具体包括:所述服务端响应于所述虚拟表查询请求,通过对应的虚拟表对所述数据操作请求进行解析,确定与所述数据操作请求和所述分区表对应的分区策略。14.如权利要求11所述的方法,其特征在于,所述服务端将所述分区策略返回给所述客户端,具体包括:所述服务端将所述分区策略序列化;所述服务端将序列化的分区策略返回给所述服务端,以便于所述客户端对所述序列化的分区策略反序列化后使用。15.一种分布式数据库的数据操作请求处理方法,其特征在于,包括:客户端接收数...
【专利技术属性】
技术研发人员:陈萌萌,冯柯,庄明强,陈俊全,万全威,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛,KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。