一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

分布式数据库于多region部署场景下的SQL执行优化方法与流程

2022-07-31 05:55:33 来源:中国专利 TAG:
分布式数据库于多region部署场景下的sql执行优化方法
技术领域
:1.本发明公开一种方法,涉及分布式数据库优化领域,具体地说是分布式数据库于多region部署场景下的sql执行优化方法。
背景技术
::2.分布式关系型数据库,针对可扩展,强一致和高可靠等特性而设计。可扩展性表现在:分布式数据库采用完全去中心化架构,集群中各个节点的地位完全对等,server端对外提供标准sql接口,接入节点把sql计划转换为对应的kv操作,并且在必要时将该操作发送至其它节点进行处理。3.但分布式关系型数据库在多region的部署场景下,一般跨region的网络延迟较高,在一些读写场景下容易出现性能问题。技术实现要素:4.本发明针对现有技术的问题,提供分布式数据库于多region部署场景下的sql执行优化方法,通过对分布式数据库的多region的支持,自定义数据的放置策略,适配上层应用的业务类型,在tp和ap混合的场景下能够保证较好的性能。tp场景为oltp,联机事务处理,查询简单,有比较频繁数据修改操作的场景。ap场景为olap联机分析处理,几乎无数据修改操作,查询涉及数据量大的场景。5.本发明提出的具体方案是:6.本发明提供分布式数据库于多region部署场景下的sql执行优化方法,根据kv存储模式下的分布式数据库,配置分布式数据库表的range副本策略,根据range副本策略部署分布式数据库表在多region场景下的range副本分布:每个region包含至少一个数据库节点,每个数据库节点根据range副本策略部署分布式数据库表的range副本;7.根据分布式数据库表在多region场景下的副本分布,对分布式数据库表执行region下相应操作时转换为包含分布式数据库表的range副本的分布式数据库节点进行相关操作。8.进一步,所述的分布式数据库于多region部署场景下的sql执行优化方法中对分布式数据库表执行region下insert语句操作时,转换为包含分布式数据库表的range副本的分布式数据库节点进行kv插入操作。9.进一步,所述的分布式数据库于多region部署场景下的sql执行优化方法中进行kv插入操作,包括:10.获取kv中的key包含的range范围,根据range范围获得range的leader副本所在数据库节点,将kv插入操作信息下发至所述数据库节点执行。11.进一步,所述的分布式数据库于多region部署场景下的sql执行优化方法中对分布式数据库表执行region下查询操作时,转换为包含分布式数据库表的range副本的分布式数据库节点进行查询操作。12.进一步,所述的分布式数据库于多region部署场景下的sql执行优化方法中所述进行查询操作,包括:13.若查询sql的谓词使用唯一索引列,则判断查询操作为精确命中查询,14.根据分布式数据库表的range副本所在region的数量,构建相应数量的精确key值并行向region内下包含分布式数据库表的range副本的分布式数据库节点下发查询操作。15.进一步,所述的分布式数据库于多region部署场景下的sql执行优化方法中对分布式数据库表执行region下离线分析操作时,转换为对相应region下包含分布式数据库表的range副本的分布式数据库节点进行分布式计算分析操作。16.本发明还提供分布式数据库于多region部署场景下的sql执行优化系统,包括配置模块和优化执行模块,17.配置模块根据kv存储模式下的分布式数据库,配置分布式数据库表的range副本策略,根据range副本策略部署分布式数据库表在多region场景下的range副本分布:每个region包含至少一个数据库节点,每个数据库节点根据range副本策略部署分布式数据库表的range副本;18.优化执行模块根据分布式数据库表在多region场景下的副本分布,对分布式数据库表执行region下相应操作时转换为包含分布式数据库表的range副本的分布式数据库节点进行相关操作。19.本发明还提供分布式数据库于多region部署场景下的sql执行优化装置,包括:至少一个存储器和至少一个处理器;20.所述至少一个存储器,用于存储机器可读程序;21.所述至少一个处理器,用于调用所述机器可读程序,执行所述的分布式数据库于多region部署场景下的sql执行优化方法。22.本发明的有益之处是:23.本发明提供分布式数据库于多region部署场景下的sql执行优化方法,基于kv存储模式下的分布式数据库,自定义数据库表的range副本在region的放置策略,应对多region的集群部署场景实现了对sql执行的优化处理,在region之间网络延时较高的情况下能够保证用户的某些sql执行性能。附图说明24.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。25.图1是应用本发明方法部署多region场景数据库表的副本的示意图。具体实施方式26.range:kv存储模式下的分布式数据库的数据的划分范围。27.kv:key-value,键值对,表示存储中的一行记录。28.raft:共识算法,保证多副本同步和一致性。29.replica:数据副本。30.shuffle:数据的重分布。31.cbo:sql基于成本的优化。32.rbo:sql基于规则的优化。33.union:关系运算,并。34.下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。35.本发明提供分布式数据库于多region部署场景下的sql执行优化方法,根据kv存储模式下的分布式数据库,配置分布式数据库表的range副本策略,根据range副本策略部署分布式数据库表在多region场景下的range副本分布:每个region包含至少一个数据库节点,每个数据库节点根据range副本策略部署分布式数据库表的range副本;36.根据分布式数据库表在多region场景下的副本分布,对分布式数据库表执行region下相应操作时转换为包含分布式数据库表的range副本的分布式数据库节点进行相关操作。37.应用本发明方法可以根据实际的场景可以灵活地配置副本策略,根据副本的配置策略可以极大地优化在跨region网络延迟场景下地读写性能。38.具体应用中,在本发明方法的一些实施例中,如基于rocksdb的kv存储模式下的分布式数据库,进行多region部署场景下的sql执行优化时,根据kv存储模式下的分布式数据库,配置分布式数据库表的range副本策略,根据range副本策略部署分布式数据库表在多region场景下的range副本分布:每个region包含至少一个数据库节点,每个数据库节点根据range副本策略部署分布式数据库表的range副本,39.其中副本策略定义数据库表的副本数量,受约束的region名称,并在集群部署的时候给每个单点的数据库服务进程附加region的标签,40.参考图1,一个多region场景下的5节点集群,一个region在实际场景中表示一个地区,每个region中可包含一到多个数据库节点,在图中表x的副本数为3,该表的全部数据包含在range1-range3当中,可以从图中看出,region1配置为全量数据区域,可用以下规则描述表x的副本分布:41.replicas(table(x))=3;42.table(x)={range1,range2,range3},range1={ region1, region3},range2={ region1, region2},range3={ region1,region3},table(x)={ region3}。43.根据分布式数据库表在多region场景下的副本分布,对分布式数据库表执行region下相应操作时转换为包含分布式数据库表的range副本的分布式数据库节点进行相关操作,其中对表x执行insert语句操作时,转换为包含分布式数据库表的range副本的分布式数据库节点进行kv插入操作,44.进一步地,计算该kv中的key命中的range范围,如果命中range1,那么会从元数据缓存中,即指range信息的缓存中找出range1的leader副本所在数据库节点,然后将kv的插入操作下发至该数据库节点执行。由于raft协议需要过半数副本一致才返回ok,如图1,range1的leader副本位于region1,该kv写入leader副本后,还将数据日志发送至region1的range1-replica1和region3的range1-replica2,由于raftgroup数量为3,因此只要任意一个follower副本返回日志写入ok之后,该insert操作才真正完成。45.在该副本的region策略下,表x的所有range的副本在每一个region上都至少有两个,向该表插入数据时的延迟不会受跨region的网络影响,提高了insert的执行性能。46.进一步,所述的分布式数据库于多region部署场景下的sql执行优化方法中对分布式数据库表执行region下查询操作时,转换为包含分布式数据库表的range副本的分布式数据库节点进行查询操作。47.其中所述进行查询操作,包括:48.若查询sql的谓词使用唯一索引列,则判断查询操作为精确命中查询,49.根据分布式数据库表的range副本所在region的数量,构建相应数量的精确key值并行向region内下包含分布式数据库表的range副本的分布式数据库节点下发查询操作。查询操作会转换为key的get操作。其中如果该数据库表的region数量为n时,则构建n个精确的key值进行查询,触发数据库rbo和cbo相关的region优化规则,把该执行计划转换为一个类似union的操作,n的key并行向n个region下发查询操作,当该union操作返回一条数据时,查询成功,如果命中的该行数据在本region,那么得到优化效果。50.进一步地,当数据库表的连接键为外表的唯一索引列时,可使用类似上述查询操作中精确查询的优化方式,如果触发多region的查询优化规则,将内表查询到的数据根据连接键计算出查询外表的key值,根据region的数量下发n个key的查询,完成一次join操作,单次join操作如果匹配则只返回一行记录,如果命中值在本region,便取得优化效果。51.进一步,所述的分布式数据库于多region部署场景下的sql执行优化方法中对分布式数据库表执行region下离线分析操作时,转换为对相应region下包含分布式数据库表的range副本的分布式数据库节点进行分布式计算分析操作。其中在离线分析场景下,一般是对历史数据进行分析,因此没有读一致性的要求,如图1所示,如果对表x进行分析操作,在region1上有表x的所有数据的副本,因此执行计划被限定到该region,并利用该region的所有数据库节点进行分布式计算,同样计算过程中的数据shuffle不会出现跨region传输的情况。52.在实际部署场景中,可以根据业务需求进行相关的副本策略定制,指定网络延迟小的一个或多个region为分布式计算的范围,提升离线分析的性能。53.本发明还提供分布式数据库于多region部署场景下的sql执行优化系统,包括配置模块和优化执行模块,54.配置模块根据kv存储模式下的分布式数据库,配置分布式数据库表的range副本策略,根据range副本策略部署分布式数据库表在多region场景下的range副本分布:每个region包含至少一个数据库节点,每个数据库节点根据range副本策略部署分布式数据库表的range副本;55.优化执行模块根据分布式数据库表在多region场景下的副本分布,对分布式数据库表执行region下相应操作时转换为包含分布式数据库表的range副本的分布式数据库节点进行相关操作。56.上述系统内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。57.同样地,本发明系统基于kv存储模式下的分布式数据库,自定义数据库表的range副本在region的放置策略,应对多region的集群部署场景实现了对sql执行的优化处理,在region之间网络延时较高的情况下能够保证用户的某些sql执行性能。58.本发明还提供分布式数据库于多region部署场景下的sql执行优化装置,包括:至少一个存储器和至少一个处理器;59.所述至少一个存储器,用于存储机器可读程序;60.所述至少一个处理器,用于调用所述机器可读程序,执行所述的分布式数据库于多region部署场景下的sql执行优化方法。61.上述装置内的处理器信息交互、执行可读程序过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。62.同样地,本发明装置基于kv存储模式下的分布式数据库,自定义数据库表的range副本在region的放置策略,应对多region的集群部署场景实现了对sql执行的优化处理,在region之间网络延时较高的情况下能够保证用户的某些sql执行性能。63.需要说明的是,上述各流程和各装置结构中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。64.以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本
技术领域
:的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献