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

分布式数据库网络延迟的动态代价校准方法及系统与流程

2022-03-04 23:13:05 来源:中国专利 TAG:


1.本发明涉及数据库技术领域,具体地说是一种分布式数据库网络延迟的动态代价校准方法及系统。


背景技术:

2.数据库管理系统(database management system,dbms,以下简称“数据库”)作为数据集中管理、存储、查询软件,是几乎所有信息系统的底层基础软件。
3.近年来,由于单个计算机的算力和容量的限制,数据库软件从单机数据库逐渐进化为了分布式数据库。分布式数据库的数据散布于多台计算机(也称“节点”),查询时可以同时利用多台计算机的硬件性能,最后将查询结果汇聚至一台计算机,达到了增加数据容量、提升查询效率的目的。
4.分布式数据库中,各个节点普遍位于同一机房,或同一城市,网络距离(在互联网中的通信距离)相似且较小,在不同的场景下,节点之间网络传输的速度可以认为是相同的,这样导致了数据查询时,一般的分布式数据库不考虑网络延迟的即时变化。
5.由于全球一体化的不断深入,很多信息系统的业务进入了全球化的阶段,全球分布式数据库应运而生。全球分布式数据库的数据散布于全球的各个数据节点,并且随着业务的进展,数据分布的情况可能会有快速的变化。节点与节点之间的网络距离各不相同且变化快速,在数据查询时,已经无法忽略各个节点之间的网络延迟的不同。
6.在查询的计划阶段,错误估计网络延时会给数据库的查询计划带来不利影响。例如在拉取数据时,可能会选择错误的数据副本节点。
7.如附图1所示,位于a城的客户端需要的数据同时存在于三个数据副本中,若在查询的计划阶段,不考虑数据延迟和带宽的代价,网关节点可能会选取网络距离较远的d城节点拉取数据,客户端就会承受较大的网络延迟和较差的查询性能。
8.针对查询的计划环节,因为节点间网络延迟无法动态估算,带来的查询性能问题,具体如下:
9.①
、在数据库运行过程中,各个节点之间的网络延迟不断变化;
10.②
、在数据库运行过程中,新加入节点的网络延迟无法估计;
11.③
、在数据查询的计划阶段,无法根据网络延迟,选取就近数据副本。


技术实现要素:

12.本发明的技术任务是提供一种分布式数据库网络延迟的动态代价校准方法及系统,来解决传统分布式数据库在数据重新分布环节由于数据节点分布不均匀导致的代价评估不精准的问题。
13.本发明的技术任务是按以下方式实现的,一种分布式数据库网络延迟的动态代价校准方法,该方法具体如下:
14.网络延迟的动态测试和存储,具体如下:
15.延迟数据测定;
16.延迟数据传播;
17.延迟数据统一;
18.查询的计划节点使用网络延迟数据,具体如下:
19.网络延迟转换为代价。
20.作为优选,延迟数据测定是指使用ping工具周期性测定延迟数据,所有节点测量自己与其他节点之间的网络延迟;其中,ping工具是tcp/ip协议的标准命令,通过发送一个因特网信报控制协议(internet control messages protocol,icmp)包来测量互联网中两个节点之间的连通性,并测试网络延迟;
21.延迟数据传播是使用gossip协议将两两之间的网络延迟传播至所有节点。
22.更优地,延迟数据统一是用两个数据的平均值算法;具体如下:
23.两两节点之间均有两个延迟数据,两个延迟数据是指两个节点分别测量的与对方的延迟;
24.每个节点均在本地计算两个延迟数据的平均值,作为两个节点的最终延迟数据。
25.更优地,网络延迟转换为代价具体如下:
26.在数据的查询优化器(optimizer,以下简称“优化器”)中,并不能直接利用网络延时的值,必须要转化为适合对应数据库的代价数值,转换方法为延迟数据乘以一个常数kc,公式如下:
27.cd=td·
kc28.其中,cd表示延迟代价;td表示延迟时间;kc为常数。
29.作为优选,该方法还包括使用代价数据;具体如下:
30.解析器对用户的请求进行解析和校验,并将解析和校验结果输入到优化器;
31.在查询的计划阶段,将代价数据注入优化器;
32.优化器根据解析和校验结果,并参考代价数据制定针对用户请求的执行计划;
33.优化器对计划的代价进行估算,选取最优代价;
34.将执行计划输入到执行器;
35.执行器实施执行计划。
36.一种分布式数据库网络延迟的动态代价校准系统,该系统包括,
37.测定模块,用于测定延迟数据;
38.传播模块,用于传播延迟数据;
39.统一模块,用于统一延迟数据;
40.转换模块,用于将网络延迟转换为代价。
41.作为优选,测定模块是使用ping工具周期性测定延迟数据,所有节点测量自己与其他节点之间的网络延迟;其中,ping工具是tcp/ip协议的标准命令,通过发送一个因特网信报控制协议(internet control messages protocol,icmp)包来测量互联网中两个节点之间的连通性,并测试网络延迟;
42.传播模块是使用gossip协议将两两之间的网络延迟传播至所有节点;
43.统一模块是采用每个节点在本地的两个延迟数据的平均值作为两个节点的最终延迟数据;
44.转换模块是在数据的查询优化器(optimizer,以下简称“优化器”)中,并不能直接利用网络延时的值,必须要转化为适合对应数据库的代价数值,转换方法为延迟数据乘以一个常数kc,公式如下:
45.cd=td·
kc46.其中,cd表示延迟代价;td表示延迟时间;kc为常数。
47.作为优选,该系统还包括使用模块,使用模块的工作过程具体如下:
48.(1)、解析器对用户的请求进行解析和校验,并将解析和校验结果输入到优化器;
49.(2)、在查询的计划阶段,将代价数据注入优化器;
50.(3)、优化器根据解析和校验结果,并参考代价数据制定针对用户请求的执行计划;
51.(4)、优化器对计划的代价进行估算,选取最优代价;
52.(5)、将执行计划输入到执行器;
53.(6)、执行器对执行计划进行实施。
54.一种电子设备,包括:存储器和至少一个处理器;
55.其中,所述存储器存储计算机执行指令;
56.所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上述的分布式数据库网络延迟的动态代价校准方法。
57.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行时,实现如上述的分布式数据库网络延迟的动态代价校准方法。
58.本发明的分布式数据库网络延迟的动态代价校准方法及系统具有以下优点:
59.(一)本发明解决了传统分布式数据库在数据重新分布环节由于数据节点分布不均匀导致的代价评估不精准的问题,使得数据库在执行数据查询时可以选取更高效的执行计划,提高了数据库查询效率;
60.(二)本发明对网络延迟的动态测量与评估,使得数据库优化器能够实时掌握数据库各个节点之前的网络延迟情况,具体如下:
61.①
、在分布式数据库运行过程中,各个节点之间的网络延迟可以动态测定;
62.②
、在分布式数据库运行过程中,新加入节点的网络延迟可以实时测定;
63.③
、数据查询的计划阶段,可以根据节点间的根据网络延迟,选取就近数据副本,提高分布式数据库的查询效率,降低网络资源占用。
附图说明
64.下面结合附图对本发明进一步说明。
65.附图1为背景技术中不同数据副本网络位置对数据传输延迟的影响的示意图;
66.附图2为数据节点之间,两两测试网络延迟的示意图;
67.附图3为gossip协议下,b城节点测定的延迟数据的传播的示意图;
68.附图4为在查询的计划阶段,延迟代价注入优化器的示意图。
具体实施方式
69.参照说明书附图和具体实施例对本发明的分布式数据库网络延迟的动态代价校准方法及系统作以下详细地说明。
70.实施例1:
71.本发明的分布式数据库网络延迟的动态代价校准方法,该方法具体如下:
72.s1、网络延迟的动态测试和存储,具体如下:
73.s101、延迟数据测定;
74.s102、延迟数据传播;
75.s103、延迟数据统一;
76.s2、查询的计划节点使用网络延迟数据,具体如下:
77.s201、网络延迟转换为代价;
78.s202、使用代价数据。
79.如附图2所示,本实施例步骤s101中的延迟数据测定是指使用ping工具周期性测定延迟数据,例如每5分钟,所有节点测量自己与其他节点之间的网络延迟;其中,ping工具是tcp/ip协议的标准命令,通过发送一个因特网信报控制协议(internet control messages protocol,icmp)包来测量互联网中两个节点之间的连通性,并测试网络延迟。
80.如附图3所示,本实施例步骤s102中的延迟数据传播是使用gossip协议将两两之间的网络延迟传播至所有节点。经过步骤s101后,每个节点都存储了自己和其他节点的网络延迟数据。由于在分布式数据库中,所有节点都有可能成为网关节点,并且在查询的计划阶段,需要所有节点两两之前的延迟数据。
81.本实施例步骤s103中的延迟数据统一是用两个数据的平均值算法;具体如下:
82.s10301、两两节点之间均有两个延迟数据,两个延迟数据是指两个节点分别测量的与对方的延迟;
83.s10302、每个节点均在本地计算两个延迟数据的平均值,作为两个节点的最终延迟数据。
84.数据节点之间两两测试网络延迟统一前,如下表:
[0085] a城b城c城d城a城010ms220ms930msb城12ms0173ms1060msc城180ms178ms01120msd城1060ms1250ms1240ms0
[0086]
两个节点的最终延迟数据统一后,如下表:
[0087]
[0088][0089]
本实施例步骤s201中的网络延迟转换为代价具体如下:
[0090]
在数据的查询优化器(optimizer,以下简称“优化器”)中,并不能直接利用网络延时的值,必须要转化为适合对应数据库的代价数值,转换方法为延迟数据乘以一个常数kc,公式如下:
[0091]cd
=td·
kc[0092]
其中,cd表示延迟代价;td表示延迟时间;kc为常数。
[0093]
如附图4所示,本实施例步骤s202中的使用代价数据具体如下:
[0094]
s20201、解析器对用户的请求进行解析和校验,并将解析和校验结果输入到优化器;
[0095]
s20202、在查询的计划阶段,将代价数据注入优化器;
[0096]
s20203、优化器根据解析和校验结果,并参考代价数据制定针对用户请求的执行计划;
[0097]
s20204、优化器对计划的代价进行估算,选取最优代价;
[0098]
s20205、将执行计划输入到执行器;
[0099]
s20206、执行器实施执行计划。
[0100]
实施例2:
[0101]
本发明的分布式数据库网络延迟的动态代价校准系统,该系统包括,
[0102]
测定模块,用于测定延迟数据;
[0103]
传播模块,用于传播延迟数据;
[0104]
统一模块,用于统一延迟数据;
[0105]
转换模块,用于将网络延迟转换为代价。
[0106]
本实施例中的测定模块是使用ping工具周期性测定延迟数据,所有节点测量自己与其他节点之间的网络延迟;其中,ping工具是tcp/ip协议的标准命令,通过发送一个因特网信报控制协议(internet control messages protocol,icmp)包来测量互联网中两个节点之间的连通性,并测试网络延迟;
[0107]
本实施例中的传播模块是使用gossip协议将两两之间的网络延迟传播至所有节点;
[0108]
本实施例中的统一模块是采用每个节点在本地的两个延迟数据的平均值作为两个节点的最终延迟数据;
[0109]
本实施例中的转换模块是在数据的查询优化器(optimizer,以下简称“优化器”)中,并不能直接利用网络延时的值,必须要转化为适合对应数据库的代价数值,转换方法为延迟数据乘以一个常数kc,公式如下:
[0110]cd
=td·
kc[0111]
其中,cd表示延迟代价;td表示延迟时间;kc为常数。
[0112]
本实施例中的还包括使用模块,使用模块的工作过程具体如下:
[0113]
(1)、解析器对用户的请求进行解析和校验,并将解析和校验结果输入到优化器;
[0114]
(2)、在查询的计划阶段,将代价数据注入优化器;
[0115]
(3)、优化器根据解析和校验结果,并参考代价数据制定针对用户请求的执行计划;
[0116]
(4)、优化器对计划的代价进行估算,选取最优代价;
[0117]
(5)、将执行计划输入到执行器;
[0118]
(6)、执行器对执行计划进行实施。
[0119]
实施例3:
[0120]
本发明实施例还提供了一种电子设备,包括:存储器和处理器;
[0121]
其中,所述存储器存储计算机执行指令;
[0122]
处理器执行所述存储器存储的计算机执行指令,使得处理器执行任一实施例的分布式数据库网络延迟的动态代价校准方法。
[0123]
处理器可以是中央处理单元(,cpu),还可以是其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通过处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0124]
存储器可用于储存计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现电子设备的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器还可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,只能存储卡(smc),安全数字(sd)卡,闪存卡、至少一个磁盘存储期间、闪存器件、或其他易失性固态存储器件。
[0125]
实施例4:
[0126]
本发明实施例还提供了一种计算机可读存储介质,其中存储有多条指令,指令由处理器加载,使处理器执行本发明任一实施例中的分布式数据库网络延迟的动态代价校准方法。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或cpu或mpu)读出并执行存储在存储介质中的程序代码。
[0127]
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
[0128]
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如cd-rom、cd-r、cd-rw、dvd-rom、dvd-ram、dvd-rw、dvd rw)、磁带、非易失性存储卡和rom。可选择地,可以由通信网络从服务器计算机上下载程序代码。
[0129]
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
[0130]
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的cpu等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
[0131]
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
再多了解一些

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

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

相关文献