数据库环境中的自动查询重试制造技术

技术编号:28329159 阅读:20 留言:0更新日期:2021-05-04 13:11
用于自动重试查询的系统、方法和装置。一种方法包括:接收针对数据库数据的查询,并将查询的执行分配给数据库平台的一个或更多个执行节点。该方法包括确定查询的执行不成功。该方法包括在第一版本的数据库平台上分配查询的第一重试执行,以及在第二版本的数据库平台上分配查询的第二重试执行。

【技术实现步骤摘要】
【国外来华专利技术】数据库环境中的自动查询重试相关申请的交叉引用本申请要求在2019年8月29日提交的美国专利申请序列号16/555,951的优先权,其内容在此通过引用以其整体并入。
本公开涉及数据库,并且更具体地涉及数据库系统中的自动查询重试。背景数据库是数据的有组织的集合,其使数据能够易于访问、操纵和更新。数据库用作一种以有效方式存储、管理和检索信息的方法。传统的数据库管理要求公司提供基础设施和资源来管理数据中心中的数据库。传统数据库的管理可能非常昂贵,并且需要由拥有广泛技术技能的多个人员进行监督。数据库被广泛用于计算应用中的数据存储和访问。数据库存储的目标是以有组织的方式提供大量信息,以便可以对其进行访问、管理和更新。在数据库中,数据可以组织成行、列和表。不同的数据库存储系统可以用于存储不同类型的内容,诸如书目、全文、数字和/或图像内容。此外,在计算中,可以根据数据库的组织方法对不同的数据库系统进行分类。有许多不同类型的数据库,包括关系数据库、分布式数据库、云数据库、面向对象的数据库和其他数据库。传统的关系数据库管理系统(RDMS)需要大量的计算和存储资源,并且可扩展性有限。大量数据可以跨多个计算设备存储。服务器可以管理数据,使得客户利用内部操作对其可访问。对于希望拥有自身的数据库服务器的实体,该实体必须在用于数据库的硬件和基础设施的资本投资以及用于存储数据库基础设施的大量物理空间上花费大量资源。此外,在断电或其他灾难情况下,数据库可能极易遭受数据丢失的影响。这样的传统数据库系统具有可以通过基于云的数据库系统来减轻的重大缺陷。云数据库系统可以通过云平台进行部署和交付,该云平台允许组织和最终用户从云存储、管理和检索数据。一些云数据库系统包括传统的数据库体系结构,该体系结构通过在计算云之上安装数据库软件来实现。可以通过网页浏览器或应用编程接口(API)访问该数据库,以进行应用和服务集成。某些云数据库系统由供应商运营,该供应商代表客户直接管理数据库安装、部署和资源分配任务的后端流程。客户端可以具有多个最终用户,这些最终用户可以通过网页浏览器和/或API访问数据库。通过减轻丢失数据库数据的风险并允许跨多个地理区域的多个用户访问数据,云数据库可以为某些客户带来重大利益。各种实体和公司都使用数据库来存储可能需要访问或分析的信息。在示例中,零售公司可以将所有销售交易的清单存储在数据库中。数据库可以包括关于交易何时发生、交易发生在哪里、交易的总成本、在交易中购买的所有物品的标识符和/或描述等信息。同一家零售公司还可能在同一数据库中存储例如员工信息,该信息可能包括员工姓名、员工联系信息、员工工作历史记录、员工薪酬率等。根据该零售公司的需求,员工信息和交易信息可以存储在同一数据库的不同表中。当零售公司想要得知存储在数据库中的信息时,可能需要“查询”其数据库。该零售公司可能希望找到有关例如在特定商店工作的所有员工的姓名、在特定日期工作的所有员工的姓名、在特定时间范围内针对特定产品进行的所有交易的数据,等等。当零售商店要查询其数据库以从数据库中提取某些组织的信息时,将针对数据库数据执行查询语句。该查询根据一个或更多个查询谓词返回特定数据,这些谓词指示该查询应返回哪些信息。该查询从数据库中提取特定数据,并将该数据格式化为可读形式。可以用数据库理解的语言(诸如结构化查询语言(“SQL”))编写查询,以便数据库系统可以确定应定位哪些数据以及应如何返回数据。该查询可以请求存储在数据库内的任何相关信息。如果可以找到适当的数据来响应查询,则数据库有可能揭示复杂的趋势和活动。只能通过使用成功执行的查询来利用此功能。在某些情况下,查询的执行失败。查询执行(queryexecution)可能由于多种不同的原因(包括间歇性故障或软件回归)而失败。间歇性故障可能是由硬件故障、断电、电气连接故障、温度变化、振动等引起的。间歇性故障很难预测和识别。软件回归可能是由软件代码中的程序错误(bug)或错误(error)引起的。软件回归可能会导致查询执行继续出现问题,因此应予以识别和修复。在某些情况下,希望重试失败的查询,以便可以将有效的查询响应返回给客户端。鉴于前述内容,本文公开了用于数据库系统中的自动查询重试的系统、方法和设备。本文公开的系统、方法和设备提供了用于查询数据、确定应如何重试查询以及在何处重试查询以及分析查询重试的装置。附图简述参考以下附图描述了本公开的非限制性和非穷举性的实施方式,其中,除非另外指明,否则贯穿各个视图,相似的参考数字指代相同或相似的部分。关于以下描述和附图,将更好地理解本公开的优点,其中:图1是示出了用于在数据库上调度任务并在数据库平台中分离内部任务和外部任务的示例处理流程的框图;图2是示出数据处理平台的框图;图3是示出计算服务管理器的框图;图4是示出执行平台的框图;图5是示出示例操作环境的框图;图6是用于重试失败的查询的过程流程的示意图;图7是对于查询重试运行的处理流程的示意图;图8是示出资源管理器的框图;图9是用于重试失败的查询的方法的示意性流程图;图10是用于确定是回归(regression)还是间歇性故障引起查询失败的方法的示意性流程图;图11是用于重试失败的查询的方法的示意性流程图;图12是用于在数据库平台中生成和过滤用于查询尝试的事务日志的方法的示意性流程图;图13是用于重试失败的查询的方法的示意性流程图;图14是用于重试失败的查询的方法的示意性流程图;以及图15是示例计算设备的示意性框图。详细描述本文公开了用于数据库平台中的自动查询重试的系统、方法和设备。可以实现本公开的系统、方法和设备以基于查询重试尝试来自动重试失败的查询并识别系统错误。可以实现本公开的实施例以识别数据库平台中的软件回归。另外,可以实现本公开的实施例以将软件回归与间歇性故障区分开。在本公开的一个实施例中,一种方法可以由数据库平台的资源管理器和/或计算服务管理器来实现。该方法包括:接收针对数据库数据的查询,并将该查询的执行分配给执行平台的一个或更多个执行节点。一个或更多个执行节点可以被配置为在第一软件版本的数据库平台上执行查询。该方法包括确定查询的执行不成功。该方法包括在第一软件版本的数据库平台上分配查询的第一重试执行,以及在第二软件版本的数据库平台上分配查询的第二重试执行。可以分析查询的第一和第二重试执行,以确定查询的原始失败执行是由于软件回归还是由于间歇性故障而失败。在实施例中,查询最多成功一次,使得只有在先前的重试尝试失败之后才调度另外的重试尝试。在这样的实施例中,如果第一重试尝试成功,则将不调度另外的重试尝试。数据库被广泛用于计算应用中的数据存储和数据访问。数据库可以包括一个或更多个表,这些表包括或引用可以使用查询进行读取、修改或删除的数据。然而,对于某些现代数据仓库系统,执行查询可能是异常地时间和资源密集型的,因为现代数据仓库系统通常包本文档来自技高网...

【技术保护点】
1.一种方法,包括:/n由包括至少一个硬件处理器的数据库平台接收针对存储在数据库平台上的数据库数据的查询;/n由所述数据库平台将在第一版本的所述数据库平台上执行所述查询的初始尝试分配给所述数据库平台的一个或更多个执行节点;/n由所述数据库平台确定执行所述查询的所述初始尝试不成功;/n由所述数据库平台将在所述第一版本的所述数据库平台上执行所述查询的第一重试尝试分配给所述数据库平台的一个或更多个执行节点;以及/n由所述数据库平台将在第二版本的所述数据库平台上执行所述查询的第二重试尝试分配给所述数据库平台的一个或更多个执行节点。/n

【技术特征摘要】
【国外来华专利技术】20190829 US 16/555,9511.一种方法,包括:
由包括至少一个硬件处理器的数据库平台接收针对存储在数据库平台上的数据库数据的查询;
由所述数据库平台将在第一版本的所述数据库平台上执行所述查询的初始尝试分配给所述数据库平台的一个或更多个执行节点;
由所述数据库平台确定执行所述查询的所述初始尝试不成功;
由所述数据库平台将在所述第一版本的所述数据库平台上执行所述查询的第一重试尝试分配给所述数据库平台的一个或更多个执行节点;以及
由所述数据库平台将在第二版本的所述数据库平台上执行所述查询的第二重试尝试分配给所述数据库平台的一个或更多个执行节点。


2.根据权利要求1所述的方法,还包括:
确定在所述第一版本的所述数据库平台上执行所述查询的所述第一重试尝试是成功还是不成功;以及
确定在所述第二版本的所述数据库平台上执行所述查询的所述第二重试尝试是成功还是不成功。


3.根据权利要求2所述的方法,还包括:响应于确定所述第一重试尝试不成功而所述第二重试尝试成功,生成指示所述第一版本的所述数据库平台中可能存在回归的报告。


4.根据权利要求2所述的方法,还包括:响应于确定所述第一重试尝试成功并且所述第二重试尝试成功,生成指示执行所述查询的所述初始尝试可能是由于所述数据库平台中的间歇性故障而不成功的报告。


5.根据权利要求2所述的方法,还包括:响应于确定所述第一重试尝试不成功并且所述第二重试尝试不成功,生成指示以下项的报告:
所述第一版本的所述数据库平台中可能存在回归;
所述第二版本的所述数据库平台中可能存在回归;以及
所述数据库平台的被分配了执行所述查询的所述初始尝试的所述一个或更多个执行节点中的至少一个节点可能存在错误。


6.根据权利要求1或权利要求2所述的方法,其中:
执行所述查询的所述初始尝试的分配由接收到所述查询的资源管理器执行;
执行所述查询的所述第一重试尝试的分配由配置为管理内部数据库任务的计算服务管理器执行;以及
执行所述查询的所述第二重试尝试的分配由所述计算服务管理器执行。


7.根据权利要求1或权利要求2所述的方法,其中,在所述第一版本的所述数据库平台上执行所述查询的所述第一重试尝试的分配包括以下项中的一项或更多项:
分配计算服务管理器来管理执行所述查询的所述第一重试尝试的操作;以及
识别被分配了执行所述查询的所述第一重试尝试的所述一个或更多个执行节点。


8.根据权利要求1或权利要求2所述的方法,还包括:响应于所述第一重试尝试和所述第二重试尝试中的至少一者成功,存储对所述查询的响应。


9.根据权利要求1或权利要求2所述的方法,还包括基于用于所述查询的结构化查询语言(SQL)文本尚未被截断来确定所述查询的重试执行。


10.根据权利要求1或权利要求2所述的方法,其中,响应于确定由于与所述数据库平台相关联的内部错误而不是与所述查询的文本相关联的错误而导致执行所述查询的所述初始尝试不成功,执行所述第一重试尝试的分配和所述第二重试尝试的分配。


11.一种系统,包括:
数据库平台,所述数据库平台包括共同存储数据库数据的多个共享存储设备,并且还包括独立于所述多个共享存储设备的执行平台;以及
一个或更多个处理器,所述处理器被配置为执行用于执行操作的指令,所述操作包括:
接收针对所述数据库数据的查询;
向所述执行平台的一个或更多个执行节点分配在第一版本的所述数据库平台上执行所述查询的初始尝试;
确定执行所述查询的所述初始尝试不成功;
向所述执行平台的一个或更多个执行节点分配在所述第一版本的所述数据库平台上执行所述查询的第一重试尝试;以及
向所述执行平台的一个或更多个执行节点分配在第二版本的所述数据库平台上执行所述查询的第二重试尝试。


12.根据权利要求11所述的系统,所述操作还包括:
确定在所述第一版本的所述数据库平台上执行所述查询的所述第一重试尝试是成功还是不成功;以及
确定在所述第二版本的所述数据库平台上执行所述查询的所述第二重试尝试是成功还是不成功。


13.根据权利要求12所述的系统,所述操作还包括:响应于确定所述第一重试尝试不成功而所述第二重试尝试成功,生成指示所述第一版本的所述数据库平台中可能存在回归的报告。


14.根据权利要求12所述的系统,所述操作还包括:响应于确定所述第一重试尝试成功并且所述第二重试尝试成功,生成指示执行所述查询的所述初始尝试可能是由于所述数据库平台中的间歇性故障而不成功的报告。


15.根据权利要求12所述的系统,所述操作还包括:响应于确定所述第一重试尝试不成功且所述第二重试尝试不成功,生成指示以下项的报告:
所述第一版本的所述数据库平台中可能存在回归;
所述第二版本的所述数据...

【专利技术属性】
技术研发人员:本诺特·戴奇维勒约翰·哈尔约诺西蒙·霍尔姆·詹森库纳尔·普拉富拉·纳巴史蒂文·詹姆斯·佩利
申请(专利权)人:斯诺弗雷克公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1