CN111949454A - 一种基于微服务组件的数据库系统及相关方法 - Google Patents
一种基于微服务组件的数据库系统及相关方法 Download PDFInfo
- Publication number
- CN111949454A CN111949454A CN201910399731.0A CN201910399731A CN111949454A CN 111949454 A CN111949454 A CN 111949454A CN 201910399731 A CN201910399731 A CN 201910399731A CN 111949454 A CN111949454 A CN 111949454A
- Authority
- CN
- China
- Prior art keywords
- service
- component
- micro
- components
- execution path
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
- G06F11/1423—Reconfiguring to eliminate the error by reconfiguration of paths
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
- G06F11/1484—Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/256—Integrating or interfacing systems involving database management systems in federated or virtual databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2035—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2046—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share persistent storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2048—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share neither address space nor persistent storage
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Computational Linguistics (AREA)
- Operations Research (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种基于微服务组件的数据库系统,通过将数据库内核拆分成能够独立启动和运行,且功能解耦的微服务组件,实现数据库的灵活组装和管理。微服务组件基于系统资源及业务形态进行部署,组件之间可以通过轻量级通讯机制相互协作。组件管理器提供服务组件的注册、注销、组件资源管理、组件容错、组件升级等能力,实现组件在运行环境中的动态管理。作业调度器根据用户提交的作业,选择由多个组件形成的最优的执行路径,并在作业执行过程中进行资源管理和调度,从而实现负载均衡和高可用。
Description
技术领域
本申请涉及数据库领域,更为具体地,涉及一种基于微服务组件的数据库系统及相关方法。
背景技术
数据库系统是许多应用系统的核心,用于为应用程序提供数据操作、权限控制、数据持久化、并发控制、崩溃恢复等能力。传统的数据库系统架构是面向通用处理器设计的,核心组件包含结构化查询语言(Structured Query Language,SQL)解析器,SQL优化器,SQL执行器和存储引擎。传统的数据库系统在逻辑架构上进行了组件的功能划分,但是物理上却是紧耦合的实现。即数据库系统作为一个整体被开发,并被部署到特定的硬件设备上,以实现数据维护管理的功能。这样紧耦合的实现在过去几十年较为单一的硬件和应用环境下发挥了巨大作用,但是面对当前新硬件层次不穷,异构环境越来越普遍,用户对于数据库系统的可用性和灵活性的要求越来越高的情况下,紧耦合的数据库架构暴露出越来越多的问题,主要有以下几个方面:。
1)系统韧性低,某一个功能模块发生故障都可能扩散影响系统的可用性。
2)软件开发、验证和维护成本高。紧耦合因为架构分层不清晰,组件之间的交互没有严格的接口定义、全局变量使用混乱,调用短路的情况随处可见,形式化验证困难。随着时间的推移,后续很难维护和升级。
3)不同配置机器资源利用率不高。如或X86处理器、内存、图形处理器(graphics processing unit,GPU)、加速卡、存储介质等资源在不同机器配置不一样时,现有数据库架构无法对不同机器进行差异化配置,导致硬件不能完全发挥各自的性能优势。
发明内容
本申请提供一种基于微服务组件的自组装数据库系统及相关方法,采用微服务组件化的数据库内核架构,充分利用硬件平台和用户负载的差异性搭建异构数据库系统,实现资源的高效利用和系统的灵活组装。
第一方面,本申请实施例提供数据库系统,包括:多个计算节点,作业管理器、组件管理器,以及部署在该多个计算节点上的多个数据库微服务组件;其中,每个计算节点上部署有至少一个微服务组件,每一个微服务组件用于实现数据库管理系统的一个子功能;所述组件管理器用于,确定至少一条执行路径,所述执行路径指示有序执行的多个微服务组件;所述作业管理器用于,接收客户端提交的查询,响应于所述查询,根据所述组件管理器确定的执行路径,调用所述多个微服务组件对所述查询进行处理,以得到查询结果,将所述处理结果返回给所述客户端。本申请实施例的方案,通过将数据库管理系统的内核拆分成能够独立启动和运行,且功能解耦的微服务组件,实现数据库的灵活组装和管理。微服务组件基于系统资源及业务形态进行部署,组件之间可以通过轻量级通讯机制相互协作。作业调度器根据用户提交的作业,选择由多个组件形成的最优的执行路径,并在作业执行过程中进行资源管理和调度,从而实现负载均衡和高可用。
在一种可能的实现方式中,所述组件管理器还用于,维护微服务组件的元数据,所述元数据包括所述数据库系统当前可用的微服务组件信息,以及每个微服务组件的部署位置。
在一种可能的实现方式中,可以向组件管理器注册新的微服务组件,例如通过向组件管理器发送注册请求来完成组件注册,相应地,组件管理器会基于组件注册请求,更新其维护的元数据,进而可以实现服务组件的注册及动态管理。
在一种可能的实现方式中,所述多个微服务组件包括解析器服务、优化器服务、执行器服务、存储引擎服务、元数据服务、统计服务、自监控服务和时钟服务中的至少两种。
在一种可能的实现方式中,所述多个微服务组件可以组合实现一个数据库管理系统的功能。
在一种可能的实现方式中,所述多个微服务组件包括解析器和优化器组合服务、执行器服务和存储引擎服务。
在一种可能的实现方式中,数据库系统可以包含具有相同功能的多个微服务组件,或者功能实质相同,但具体实现方式由差异的多个微服务组件,比如多种类型的存储引擎等。
在一种可能的实现方式中,该数据库系统包含多个作业管理器,比如3个。多个作业管理器可以并行执行,从而可以避免作业管理器成为系统瓶颈。
在一种可能的实现方式中,所述多个计算节点之间通过高速网络通信,比如,使用无限带宽(InfiniBand)网络或者远程直接内存访问(remote direct memory access,RDMA)网络通信,InfiniBand是一个用于高性能计算的计算机网络通信标准,它具有极高的吞吐量和极低的延迟,从而可以满足微服务组件之间跨节点通信的低时延要求。
在一种可能的实现方式中,计算节点为具备硬件资源的物理机。
在一种可能的实现方式中,计算节点上运行有虚拟机或容器,一个微服务组件可以部署在一个虚拟机或容器中,多个微服务组件也可以部署在同一个虚拟机或容器中。
在一种可能的实现方式中,一个微服务组件运行在虚拟机或容器中的独立进程、线程或实例。
在一种可能的实现方式中,微服务组件可以以动态链接库的方式存储在存储器中,并在特定的时机被动态加载执行。
在一种可能的实现方式中,所述至少一条执行路径包括最优执行路径和备选执行路径;所述作业管理器具体用于,根据所述最优执行路径,调用多个微服务组件对所述查询进行处理,当所述最优执行路径中的某一微服务组件发生错误时,根据所述备选执行路径,调用多个微服务组件对所述查询进行处理,以得到查询结果,通过这种多路径执行的方式容错,从而实现系统的高可用。
在一种可能的实现方式中,所述组件管理器还用于,基于确定所述数据库系统中的第一微服务组件的负载超出设定阈值,在空闲计算节点上启动所述第一微服务组件的备份,并生成新的执行路径,所述新的执行路径包含所述第一微服务组件的备份,所述第一微服务组件和所述第一微服务组件的备份的功能相同。
第二方面,本申请实施例提供一种提供数据库服务的方法,包括:将多个微服务组件部署到多个计算节点,其中,每个计算节点上部署有至少一个微服务组件,每一个微服务组件用于实现数据库管理系统的一个子功能;确定至少一条执行路径,每一条执行路径指示有序执行的多个微服务组件;接收客户端提交的查询,响应于所述查询,根据确定的所述至少一条执行路径,调用多个微服务组件对所述查询进行处理,以得到查询结果;将所述处理结果返回给所述客户端。
在一种可能的实现方式中,该方法还包括:响应于组件注册请求,更新微服务组件的元数据,所述元数据包括所述数据库系统当前可用的微服务组件信息,以及每个微服务组件的部署位置。
在一种可能的实现方式中,所述多个微服务组件包括解析器服务、优化器服务、执行器服务、存储引擎服务、元数据服务、统计服务、自监控服务和时钟服务中的至少两种。
在一种可能的实现方式中,所述多个微服务组件可以组合实现一个数据库管理系统的功能。
在一种可能的实现方式中,所述多个微服务组件包括解析器和优化器组合服务、执行器服务和存储引擎服务。
在一种可能的实现方式中,数据库系统可以包含具有相同功能的多个微服务组件,或者功能实质相同,但具体实现方式由差异的多个微服务组件,比如多种类型的存储引擎等。
在一种可能的实现方式中,该数据库系统包含多个作业管理器,比如3个。多个作业管理器可以并行执行,从而可以避免作业管理器成为系统瓶颈。
在一种可能的实现方式中,所述多个计算节点之间通过高速网络通信,比如,使用InfiniBand网络或者RDMA网络通信。
在一种可能的实现方式中,计算节点为具备硬件资源的物理机。
在一种可能的实现方式中,计算节点上运行有虚拟机或容器,一个微服务组件可以部署在一个虚拟机或容器中,多个微服务组件也可以部署在同一个虚拟机或容器中。
在一种可能的实现方式中,一个微服务组件运行在虚拟机或容器中的独立进程、线程或实例。
在一种可能的实现方式中,微服务组件可以以动态链接库的方式存储在存储器中,并在特定的时机被动态加载执行。
在一种可能的实现方式中,所述至少一条执行路径包括第一执行路径和第二执行路径;所述根据确定的所述至少一条执行路径,调用多个微服务组件对所述查询进行处理包括:根据所述第一执行路径,调用多个微服务组件对所述查询进行处理;当所述第一执行路径中的微服务组件发生错误时,根据所述第二执行路径,调用多个微服务组件对所述查询进行处理,以得到查询结果。
在一种可能的实现方式中,该方法还包括:基于确定所述多个微服务组件中的第一微服务组件的负载超出设定阈值,在空闲计算节点上启动所述第一微服务组件的备份,并生成新的执行路径,所述新的执行路径包含所述第一微服务组件的备份,所述第一微服务组件和所述第一微服务组件的备份的功能相同。
第三方面,本申请实施例提供一种提供数据库系统,包括用于执行上述第一方面或第一方面的任一实现方式所描述的方法的一个或多个功能单元,这些功能单元可以由软件模块实现,或者由硬件,比如处理器实现,或者由软件结合必要的硬件实现。
第四方面,本申请实施例提供一种设备,包括存储器、处理器以及存储在所述存储器上的计算机程序,当所述处理器执行所述计算机程序时实现上述第二方面或第二方面的任一实现方式所描述的方法的步骤。
第五方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序(指令),该程序(指令)被处理器执行时实现上述第二方面或第二方面的任一实现方式所描述的方法的步骤。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍。
图1是本申请实施例提供的一种数据库系统的架构图。
图2是本申请实施例的数据库管理系统的逻辑架构图。
图3是本申请实施例的数据库微服务组件的部署示意图。
图4是本申请实施例的数据库微服务组件的部署示意图。
图5是本申请实施例的数据库管理系统的工作流程示意图。
图6A是本申请实施例的动态加载微服务组件的过程示意图。
图6B是本申请实施例的动态加载微服务组件的过程示意图。
图7是本申请实施例的组件执行路径示意图。
图8是本申请实施例的数据库管理系统处理用户查询的流程图。
图9是本申请实施例的多路径执行示意图。
图10是本申请实施例的基于业务负载调整微服务组件的示意图。
图11是本申请实施例的数据库系统的示意图。
图12是本申请实施例的配置微服务组件的过程示意图。
图13是本申请实施例的数据库系统的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行详细描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部实施例。
本申请实施例中所涉及的多个,是指两个或两个以上。另外,需要理解的是,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
本申请实施例提供的方法可应用于数据库系统(Database System)中。图1示出了本申请实施例提供的一种数据库系统的架构,根据图1,数据库系统20包括数据库201、数据存储器(Data Storage)203和数据库管理系统(Database Management System,DBMS)200。
数据库201是存储在数据存储器203中的有组织的数据集合,即按照特定的数据模型组织、存储和使用的相关联的数据集合。根据组织数据所使用的数据模型的不同,数据可分为多种类型,比如关系型数据(relational data)、图(graph)数据、时间序列(timeseries)数据等。关系型数据是使用关系模型建模的数据,通常表示为表,表中的行表示一个对象或实体的相关值的集合。图数据,简称为“图”,用于表示对象或实体之间的关系,比如社交关系。时间序列数据,简称时序数据,是按时间顺序记录和索引的数据列,用于描述一个对象在时间维度上的状态变化信息。
数据库管理系统200是数据库系统的核心,是用于组织、存储以及维护数据的系统软件。客户端10经由网络30可以与数据库管理系统200建立通信连接,并可以通过数据库管理系统200访问数据库201,数据库管理员(Database Administrator,DBA)也通过数据库管理系统200进行数据库201的维护工作。数据库管理系统200提供多种功能,供客户端10建立,修改和查询数据库201,其中,客户端10可以为应用程序,或者用户设备。数据库管理系统200所提供的功能可以包括但不限于以下几项:(1)数据定义功能,数据库管理系统200提供数据定义语言(Data Definition Language,DDL)来定义数据库201的结构,DDL用于刻画数据库框架,并可以被保存在数据字典中;(2)数据存取功能,数据库管理系统200提供数据操纵语言(Data Manipulation Language,DML),实现对数据库201的基本存取操作,比如检索、插入、修改和删除;(3)数据库运行管理功能,数据库管理系统200提供数据控制功能对数据库201运行进行有效地控制和管理,以确保数据正确有效;(4)数据库的建立和维护功能,包括数据库初始数据的载入,数据库的转储、恢复、重组织,系统性能监视、分析等功能;(5)数据库的传输,数据库管理系统200提供处理数据的传输,以实现客户端10与数据库管理系统200之间的通信,通常与操作系统协调完成。
数据库管理系统200的运行依赖于必要的软硬件环境,包括但不限于硬件层251和操作系统255。其中,硬件层251包含操作系统255和数据库管理系统200运行所需的基本硬件单元,例如,处理器,内存(Memory)、输入/输出(I/O)设备、网络接口控制器(networkinterface controller,NIC)等。操作系统255是管理硬件单元的系统软件,可以提供内存管理、线程调度等功能。
数据存储器203可以是硬盘、磁盘、存储阵列、存储服务器、云存储、存储区网络(Storage Area Network,SAN)等非瞬态计算机可读存储介质,与硬件层251所在的计算节点通信连接。或者,数据存储器203也可以集成在硬件层251所在的计算节点,与处理器和I/O设备通过总线或其它内部通信方式交互数据。需要说明的是,本申请实施例中的“计算节点”,是指具备执行数据计算和/或存储所需的硬件资源的实体,比如物理机或数据库服务器等,或者能够调用硬件资源进行计算和/或存储的实体,比如物理机中部署的虚拟机(virtual machine,VM)或容器等。
在一个实施例中,数据库管理系统200的功能可以由处理器执行内存中存储的可执行代码来实现。应理解,在本发明的各种实施例中,“可执行程序”应被广泛地解释为包括但不限于:指令,指令集,代码,代码段,子程序,软件模块,应用,软件包,线程,进程,函数,固件,中间件等。
所属领域的技术人员可以理解一个数据库系统可能包括比图1中所示的部件更少或更多的组件,或者包括与图1中所示组件不同的组件,图1仅仅示出了与本发明实施例所公开的实现方式更加相关的组件。
图2示出了本申请实施例的一种数据库管理系统200的逻辑架构。根据图2,数据库管理系统200提供一系列功能解耦的微服务组件,包括但不限于:解析器服务260、优化器服务270、执行器服务280、存储引擎服务282、元数据服务284、统计服务286、自监控服务288和时钟服务290。其中,每一种功能的微服务组件的数量为一个或多个,比如,图中示出了2个解析器服务、2个优化器服务、3个执行器服务以及3个存储服务,而元数据服务、统计服务和加速器服务的数量均为1个。数据库管理系统200也可能包含具备相同功能的多种类型的微服务组件。以存储服务280为例,图2示出了列存引擎、行存引擎和内存引擎三种类型的存储引擎。又例如,数据库管理系统200可以同时包含多种类型的解析器服务组件,比如用于解析关系型查询的解析器、用于解析图查询的解析器、用于解析时序查询的解析器等。每一种类型的微服务组件的数量可以为一个或多个。数据库管理系统200可以基于客户端提交的查询类型,以及系统负载,灵活调度不同的微服务组件以响应客户端提交的查询。下面进一步描述各个微服务组件的功能:
解析器服务(parser service)260:主要功能是对输入的SQL语句进行词法分析、语法分析、语义分析,输出查询解析树;
优化器服务(Optimizer Service)270:主要功能是对输入的查询解析树进行处理生成执行计划,其处理逻辑包括查询重写,路径生成,代价模型评估,最优路径选择,执行计划树生成;
执行器服务(Executer Service)280:负责将数据从存储引擎读取出来,根据执行计划将数据处理加工后返回给客户端;
存储引擎服务(Storage Engine Service)282:主要功能是保证数据的持久化存储,提供高效数据访问能力,实现数据库的原子性、一致性、隔离性、持久性(Atomicity,Consistency,Isolation,Durability,ACID)能力;
元数据服务(MetaData Service)284:主要提供元数据的持久化存储,高效元数据访问能力;
统计服务(Statistics Service)286:主要负责收集和存储表的统计信息,主要包括表的页面个数,行数,各个列的取值分布信息等;
自监控服务(Instrumentation Service):监控数据库的各种状态数据,比如硬件资源使用信息(CPU,I/O,内存,网络),数据库各服务组件的关键性能指标(KeyPerformance Indicator,KPI)等;
时钟服务(Clock Service)290:提供唯一且递增的时间戳,误差通常在100ns以内。
服务微服务组件能够独立启动、运行。例如,每个微服务组件可以运行为一个或多个实例,这里的实例,可以为线程。服务组件之间采用轻量级通讯机制相互通信。在一个实施例中,多个微服务组件也可以组合为更大粒度的组合服务组件,比如图2所示的解析器和优化器组合服务262,是同时包含解析器服务和优化器服务功能的组合服务组件。
微服务组件能够独立部署到裸机或者容器中,并支持在线升级。用户或者数据库内核可以根据当前的业务场景,灵活搭配和组装微服务组件以构建不同类型的数据库管理系统。在一个实施例中,如图3所示,数据库管理系统200的微服务组件可以分布式部署到数据中心中计算节点上,或者跨数据中心部署。数据中心的计算节点之间通过高速网络互连,比如,通过无限带宽(InfiniBand)网络互连。计算节点为物理机,或者具备数据处理能力的其它设备。每个计算节点包含操作系统和应用程序运行所需的基本硬件资源,例如,处理器,内存(Memory)、输入/输出(I/O)设备等。一个计算节点上运行有一个或多个虚拟机(virtual machine,VM),每一个VM上可以部署一个或多个微服务组件。虽然图3中每一个微服务组件部署在1个单独的VM,但应理解,多个微服务组件也可以部署在同一个VM。
在另一个实施例中,数据库管理系统200的微服务组件也可以以一体机的形式部署。如图4所示,每个物理机上部署有一个或多个微服务组件,多个物理机可以集成到一个机柜中,通过总线,比如PCI-E总线进行通信。
进一步地,如图2所示,数据库管理系统200还包括应用程序接口(API)210,作业管理器(Job Manager)220、组件管理器(component manager)230以及消息通信服务240。应用程序接口210是提供给客户端连接和访问数据库管理系统200的接口,比如Java数据库连接(Java Database Connectivity,JDBC)接口、开放数据库互连(Open DatabaseConnectivity,ODBC)接口等等。消息通信服务240提供低时延高带宽的通信能力,可用于微服务组件之间通信。组件管理器230主要负责微服务组件的管理,包括但不限于:组件注册与注销、组件启停、组件容错、组件升级、组件状态监控等。
a)组件注册与注销:当添加新服务组件时,需要到组件管理器230注册,当删除服务组件时,也需要到组件管理器230注销,组件管理器230可以维护相关的元数据,以记录各个服务组件的状态,部署位置等信息,这样可以确保组件管理器230了解系统中的可用服务组件,以及每个服务组件的部署位置。
b)组件启停:系统启动时,组件管理器230根据硬件配置,启动元数据服务、自监控服务、统计服务等服务组件;在分布式场景下,每个服务组件可启动多份(具体数量可配置),以用于备份。
c)组件容错:当某个服务组件失败时,组件管理器230需要调度备用服务组件来继续执行当前组装方案。
d)组件升级:组件可以轮转升级,对于无状态的组件可以随时升级;对于有状态的组件,必须当前任务完成时才能升级。
e)组件状态监控:监控服务组件运行过程中的运行状态,当数据库系统中有节点加或者退出时,需要更新运行状态,其中,运行状态包括:
1)组件服务状态:每个正在运行的服务组件执行的任务数量,资源使用情况;
2)组件集群状态:每个计算节点正在运行的服务组件、可用的服务组件;每个计算节点的资源使用情况。
进一步地,组件管理器230还依据系统资源确定一条或多条服务组件执行路径(以下简称“执行路径”),比如生成TOP-N最优组件执行路径。每一条组件执行路径指示有序执行的多个微服务组件,这些有序执行的微服务组件构成一个可端到端执行的完整的数据库管理系统,执行路径上的每个微服务组件可以部署在不同的计算节点。
在一个实施例中,如图5所示,组件管理器230包含一个组件管理器服务器231和多个组件管理器客户端232,每个组件管理器客户端部署在单一计算节点(物理机或虚拟机)中,实现该节点上组件注册、组件注销、组件启停、组件资源管理、组件升级等功能。在整个数据库管理系统中,可以有多个组件管理器作为备份,比如3个。
在一个实施例中,作业管理器220包括调度器221,根据来自客户端的用户请求,比如查询,从组件管理器服务器231提供的执行路径选择最优执行路径,并基于最优执行路径调度服务组件以进行相应处理。当执行路径中的某个微服务组件发生错误,调度器221调度备用执行路径来继续执行当前用户请求,从而提升数据库服务可用性。
在一个实施例中,微服务组件可以动态链接库的方式被动态加载。例如,一个微服务组件执行的过程中,可以动态加载以动态链接库形式存在的其它一个或多个微服务组件,如图6A和6B所示。
在一个实施例中,如图2和图5所示,作业管理器220自身也可以内嵌解析器224、优化器225、执行器226以及存储引擎227等服务组件。调度器221可以调用作业管理器220内嵌的服务组件,也可以调用作业管理器220外部的服务组件,比如解析器和优化器组合服务262、执行器服务280等。在调用外部的服务组件时,可以采用远程过程调用(RemoteProcedure Call,RPC)方式。
图8示出了作业管理器220对不同的用户请求调度不同的执行路径的过程。对于用户请求1(OLAP负载),执行路径如下:
解析器服务 | 优化器服务 | 执行器服务 | 消息通信服务 | 存储引擎服务 |
解析器1_v0 | 优化器2_v1 | 执行器1_v0 | TCP | 数据存储2_v1 |
而对于用户请求2(OLTP负载),执行路径如下:
解析器服务 | 优化器服务 | 执行器服务 | 消息通信服务 | 存储引擎服务 |
解析器3_v0 | 优化器3_v0 | 执行器2_v0 | RDMA | 数据存储3_v0 |
可以看到,虽然对于用户请求1和2,作业管理器220均调用了解析器、优化器、执行器等服务组件,但对于不同的请求,其分别调用了部署在不同节点的微服务组件来处理该请求,即执行路径并不完全相同。
下面描述组件管理器230确定服务组件执行路径的一个实施例。具体地,主要包括三个阶段:
(1)自组装离线学习(初调):通常在数据库测试阶段,根据已知的各种典型场景(通过GAN生成式对抗网络技术来生成各种场景所需的数据和负载),对查询、负载、数据进行向量化表示,学习出最优的Top-N路径,利用最优控制论来实现自组装的初调,即每种场景(例如金融、云)选择Top-N的执行路径,推荐给用户;
(2)自组装部署学习(精调):一般使用于数据库开具阶段,根据用户真实数据和场景,在Top-N组装方案中再次提炼学习出Top-3执行路径;
(3)自组装在线学习(微调):根据用户运行场景,在线轮转Top-3方案,在Top-3方案中进行微调,得到最优组装方案(执行路径)。
可以理解的是,组件管理器230并不一定要完整实现上述三个阶段,比如可以只实现上述阶段(1)和(2),或者仅实现阶段(1)。
在一个实施例中,组件管理器230可以确定出多条执行路径,其中包含最优执行路径和备选执行路径。最优执行路径可以
在一个实施例中,可以定义如下接口以实现服务组件之间的通信:
基于上述定义的接口,作业管理器220调度微服务组件处理用户请求的过程如图7所示。根据图8,客户端10与作业管理器220建立连接后的处理流程包括:
步骤S1:客户端提交用户请求给作业管理器220,比如客户端10发起一个选择查询。
步骤S2:作业管理器220创建一个工作线程work_thd,初始化会话(session)。
步骤S3:作业管理器220的工作线程work_thd向时钟服务290发送快照(snapshot)请求,以获取快照;
步骤S4:作业管理器220依据最优执行路径向解析器和优化器组合服务262发送执行计划请求,该请求携带会话信息Session Info,以及用户请求信息,比如查询语句。
步骤S5:解析器和优化器组合服务262根据查询生成的执行计划,并将执行计划返回给作业管理器220。
步骤S6:作业管理器220向执行器服务280发送执行请求,执行请求包含会话信息以及执行计划。
步骤S7:执行器服务280根据执行计划调用算子进行处理,比如调用扫描(scan)算子,扫描算子通过向存储服务282发送扫描请求以获取数据存储器中的特定数据行。
步骤S8:执行器服务280返回查询结果至作业管理器220。
步骤S9:作业管理器220将查询结果返回给客户端10。
在一个实施例中,在调用执行路径处理用户查询时,如果执行路径中的某个服务组件出现错误或故障,则会向作业管理器220上报错误信息,作业管理器220根据错误类型,选择其它备选执行路径执行。具体地,如图9所示,假定组件管理器230确定的最优执行路径为解析器和优化器服务1->执行器服务1->存储引擎服务1,其中,解析器和优化器服务1和执行器服务1部署在计算节点1,作业管理器220在调用该执行路径处理用户请求时,解析器和优化器服务1出现故障,则组件管理器230基于该故障,确定备用执行路径为解析器和优化器服务2->执行器服务2->存储引擎服务1,其中,解析器和优化器服务2和执行器服务2部署在计算节点2。作业管理器220进而根据该备用执行路径,调用相应的服务组件继续处理用户请求。
由于,业务在不同时间段的负载大小是不一样的,有流量高峰也有低谷,因此需要根据业务负载情况,自动组装以及调整微服务组件,以满足不同的业务负载需求,图9示出了基于业务负载自动调整微服务组件的过程。如图10所示。本实施例中对于部分服务组件进行了更细粒度划分,比如,将执行器服务280划分为行执行(Row Execution)服务,向量执行(Vector Execution)服务,将存储引擎服务282更细粒度划分为行存引擎、列存引擎和内存引擎。服务组件分布式部署到多个计算节点,比如图10中的计算节点101-106,每个计算节点上部署有一个或多个服务组件,并且部署有一个组件管理器客户端232,用于管理本节点上的服务组件。作业管理器220接收多个查询请求,并依据组件管理器服务器231确定的执行路径,通过组件管理器客户端232调用各个计算节点上的相应服务组件进行业务处理。在业务高峰到时,若组件管理器服务器231根据服务监控信息,确定当前系统计算为瓶颈点,则基于空闲计算节点104的硬件配置(这里假设空闲节点包含GPU),确定需要在空闲节点上开启的微服务组件,包括SQL执行器服务280和GPU加速服务298。组件管理器服务器231向空闲节点104上的组件管理器客户端232请求启动SQL执行器服务和GPU加速服务。空闲节点104启动SQL执行器服务280和GPU加速服务298,以应对业务高峰。空闲计算节点104可以为负载低于预设值的节点,也可以为新增加的节点。
图11示出了本申请实施例提供的一种数据库系统的示意图,该数据库系统是采用共享磁盘(Shared-storage)架构的集群数据库系统,包括多个计算节点(如图11中的节点1-N),每个节点部署有一个或多个数据库微服务组件,如前述实施例中的解析器服务、优化器服务、执行器服务、存储引擎服务、元数据服务、统计服务、自监控服务和时钟服务等等。按照特定顺序被调度执行的多个微服务组件构成一条执行路径,可以实现数据库管理系统的功能,以为用户提供数据的查询和修改等服务。组件管理器用于管理系统中的所有微服务组件。具体地,组件管理器负责微服务组件的注册和注销,维护有微服务组件的元数据,元数据包括但不限于:数据库系统当前可用的微服务组件信息,以及每个微服务组件的部署位置(比如所在计算节点的ID)。组件管理器还可以基于用户配置的规则,在各个计算节点上配置一个或多个微服务组件,如图12所示。基于异构硬件环境中,各个计算节点的资源差异,组件管理器可以配置差异化的微服务组件,以充分发挥计算节点各自的硬件优势。例如,在具有GPU的计算节点上配置基于向量化执行和矩阵计算的SQL执行器服务。
进一步地,组件管理器可以基于系统可用的微服务组件,生成一条或多条执行路径。比如,组件管理器可以生成最优执行路径和次优执行路径,或者生成TOP-N的执行路径。其中次优执行路径作为备选路径。相应地,作业管理器接收客户端提交的查询,依照组件管理器生成的最优执行路径来调用多个数据库微服务组件对查询进行处理,以得到查询结果,然后将查询结果返回给客户端。当最优执行路径中有微服务组件发生错误时,依照备选执行路径,调用多个微服务组件对所述查询进行处理。
在一个实施例中,当系统中某个微服务组件的负载较高时,例如该微服务组件执行的任务数量超过设定阈值时,组件管理器可以在空闲计算节点上启动一个或多个该微服务组件的备份,其中,微服务组件的备份可以视为是微服务组件的实例,与该微服务组件的功能相同。作业管理器通过调用该微服务组件的备份来分担该微服务组件的负载,以提高系统的可用性。也就是说,组件管理器可以基于系统的负载来动态调整微服务组件,并调整执行路径。
在一个实施例中,计算节点之间通过无限带宽InfiniBand网络通信。共享数据存储器中存储有可被多个计算节点访问的共享数据。计算节点通过交换机对共享数据存储器中的数据执行读写操作。共享数据存储器可以为共享磁盘阵列或云存储等。计算节点可以为物理机,比如数据库服务器,也可以为运行在抽象硬件资源上的虚拟机。若节点为物理机,则交换机为存储区网络(Storage Area Network,SAN)交换机、以太网交换机,光纤交换机或其它物理交换设备。若节点为虚拟机,则交换机为虚拟交换机。
图13为采用无共享(Shared-nothing)架构的集群数据库系统示意图。根据图13,每个计算节点具有各自独享的硬件资源(如数据存储器)、操作系统和数据库,节点之间通过高速网络来通信。该架构下,数据将根据数据库模型和应用特点被分配到各个节点上,查询任务将被分割成若干部分,在所有节点上并行执行,彼此协同计算,作为整体提供数据库服务,所有通信功能都在一个高宽带网络互联体系上实现。每个节点上部署有一个或多个数据库微服务组件,如前述实施例中的解析器服务、优化器服务、执行器服务、存储引擎服务、元数据服务、统计服务、自监控服务和时钟服务等等。每个节点在处理查询任务时,可以通过作业管理器调用位于其他计算节点的微服务组件来协助进行查询处理。数据存储器(Data Store)包括但不限于固态硬盘(SSD)、磁盘阵列或其他类型的非瞬态计算机可读介质。
如同图11所描述的共享磁盘架构的集群数据库系统一样,这里的计算节点既可以是物理机,也可以是虚拟机。
需要说明的是,图11和13所示的数据库系统中,微服务组件、作业管理器和组件管理器的具体功能及工作流程可以参照前述相关的实施例,此处不再赘述。
所属领域的技术人员可以理解一个数据库系统可能包括比图11和图13中所示的部件更少或更多的组件,或者包括与图11或图13中所示组件不同的组件,图11和图13仅仅示出了与本申请实施例所公开的实现方式更加相关的组件。例如,虽然图11和图13中描述了4个计算节点,但所属领域的技术人员可理解成一个集群数据库系统可包含任何数量的节点。各节点的数据库管理系统功能可分别由运行在各节点上的软件、硬件和/或固件的适当组合来实现。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以硬件、或者计算机软件和硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能。
Claims (16)
1.一种数据库系统,其特征在于,包括:多个计算节点,作业管理器和组件管理器;其中,每个计算节点上部署有至少一个微服务组件,每一个微服务组件用于实现数据库管理系统的一个子功能;
所述组件管理器用于,确定至少一条执行路径,所述执行路径指示有序执行的多个微服务组件;
所述作业管理器用于,接收客户端提交的查询,响应于所述查询,根据所述组件管理器确定的执行路径,调用所述多个微服务组件对所述查询进行处理,以得到查询结果,将所述处理结果返回给所述客户端。
2.根据权利要求1所述的数据库系统,其特征在于,所述组件管理器还用于,维护微服务组件的元数据,所述元数据包括所述数据库系统当前可用的微服务组件信息,以及每个微服务组件的部署位置。
3.根据权利要求2所述的数据库管理系统,其特征在于,所述多个微服务组件包括解析器服务、优化器服务、执行器服务和存储引擎服务。
4.根据权利要求1至3任一项所述的数据库系统,其特征在于,所述多个计算节点之间通过无限带宽InfiniBand网络通信。
5.根据权利要求1至4任一项所述的数据库系统,其特征在于,所述多个计算节点中的每一个上运行有至少一个虚拟机或容器,每一个虚拟机或容器中部署有一个或多个微服务组件。
6.根据权利要求1至5任一项所述的数据库系统,其特征在于,所述至少一条执行路径包括第一执行路径和第二执行路径;所述作业管理器具体用于,根据所述第一执行路径,调用多个微服务组件对所述查询进行处理,当所述第一执行路径中的微服务组件发生错误时,根据所述第二执行路径,调用多个微服务组件对所述查询进行处理,以得到查询结果。
7.根据权利要求1至6任一项所述的数据库系统,其特征在于,所述组件管理器还用于,监控所述数据库系统中各个微服务组件的运行状态,所述运行状态包括微服务组件的负载信息。
8.根据权利要求7所述的数据库系统,其特征在于,所述组件管理器还用于,基于确定所述数据库系统中的第一微服务组件的负载超出设定阈值,在空闲计算节点上启动所述第一微服务组件的备份,并生成新的执行路径,所述新的执行路径包含所述第一微服务组件的备份,所述第一微服务组件和所述第一微服务组件的备份的功能相同。
9.根据权利要求1至8任一项所述的数据库系统,其特征在于,所述组件管理器具体用于,通过机器学习的方式确定出最优执行路径,所述至少一条执行路径包括所述最优执行路径。
10.根据权利要求1至8任一项所述的数据库系统,其特征在于,所述组件管理器具体用于,根据用户配置的规则,确定所述至少一条执行路径。
11.一种提供数据库服务的方法,其特征在于,包括:
将多个微服务组件部署到多个计算节点,其中,每个计算节点上部署有至少一个微服务组件,每一个微服务组件用于实现数据库管理系统的一个子功能;
确定至少一条执行路径,每一条执行路径指示有序执行的多个微服务组件;
接收客户端提交的查询,响应于所述查询,根据确定的所述至少一条执行路径,调用多个微服务组件对所述查询进行处理,以得到查询结果;
将所述处理结果返回给所述客户端。
12.根据权利要求11所述的方法,其特征在于,还包括:
响应于组件注册请求,更新微服务组件的元数据,所述元数据包括所述数据库系统当前可用的微服务组件信息,以及每个微服务组件的部署位置。
13.根据权利要求11或12所述的方法,其特征在于,所述多个微服务组件包括解析器服务、优化器服务、执行器服务和存储引擎服务。
14.根据权利要求11至13任一项所述的方法,其特征在于,所述多个计算节点中的每一个上运行有至少一个虚拟机或容器,所述将多个微服务组件部署到多个计算节点包括:在每一个虚拟机或容器中部署一个或多个微服务组件。
15.根据权利要求11至14任一项所述的方法,其特征在于,所述至少一条执行路径包括第一执行路径和第二执行路径;所述根据确定的所述至少一条执行路径,调用多个微服务组件对所述查询进行处理包括:
根据所述第一执行路径,调用多个微服务组件对所述查询进行处理;
当所述第一执行路径中的微服务组件发生错误时,根据所述第二执行路径,调用多个微服务组件对所述查询进行处理,以得到查询结果。
16.根据权利要求11至15任一项所述的方法,其特征在于,还包括:基于确定所述多个微服务组件中的第一微服务组件的负载超出设定阈值,在空闲计算节点上启动所述第一微服务组件的备份,并生成新的执行路径,所述新的执行路径包含所述第一微服务组件的备份,所述第一微服务组件和所述第一微服务组件的备份的功能相同。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910399731.0A CN111949454B (zh) | 2019-05-14 | 2019-05-14 | 一种基于微服务组件的数据库系统及相关方法 |
EP20806640.7A EP3958126A4 (en) | 2019-05-14 | 2020-04-29 | MICROSERVICE COMPONENT BASED DATABASE SYSTEM AND RELATED PROCESS |
PCT/CN2020/087732 WO2020228534A1 (zh) | 2019-05-14 | 2020-04-29 | 一种基于微服务组件的数据库系统及相关方法 |
US17/525,400 US20220067044A1 (en) | 2019-05-14 | 2021-11-12 | Microservice component-based database system and related method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910399731.0A CN111949454B (zh) | 2019-05-14 | 2019-05-14 | 一种基于微服务组件的数据库系统及相关方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111949454A true CN111949454A (zh) | 2020-11-17 |
CN111949454B CN111949454B (zh) | 2022-09-16 |
Family
ID=73289211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910399731.0A Active CN111949454B (zh) | 2019-05-14 | 2019-05-14 | 一种基于微服务组件的数据库系统及相关方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220067044A1 (zh) |
EP (1) | EP3958126A4 (zh) |
CN (1) | CN111949454B (zh) |
WO (1) | WO2020228534A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112734360A (zh) * | 2020-12-28 | 2021-04-30 | 深圳市瞬点科技有限公司 | 端到端的业务流程管理方法、装置、设备及存储介质 |
CN112860450A (zh) * | 2020-12-04 | 2021-05-28 | 武汉悦学帮网络技术有限公司 | 一种请求处理方法及装置 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11010235B1 (en) * | 2019-11-01 | 2021-05-18 | Splunk Inc. | Tracking error propagation across microservices based applications using distributed error stacks |
CN113014435B (zh) * | 2021-03-15 | 2022-10-11 | 杭州米络星科技(集团)有限公司 | 链路探测方法、装置、电子设备及存储介质 |
CN113360262A (zh) * | 2021-06-08 | 2021-09-07 | 山东浪潮科学研究院有限公司 | 一种基于微服务的量子计算任务调度方法 |
US11500870B1 (en) * | 2021-09-27 | 2022-11-15 | International Business Machines Corporation | Flexible query execution |
CN114780261B (zh) * | 2022-04-28 | 2022-11-29 | 四川虹魔方网络科技有限公司 | 智能设备运营管理中基础数据微服务化共享系统及方法 |
CN115357403A (zh) * | 2022-10-20 | 2022-11-18 | 智己汽车科技有限公司 | 一种用于任务调度的微服务系统及任务调度方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105959138A (zh) * | 2016-04-29 | 2016-09-21 | 深圳前海大数点科技有限公司 | 基于云计算的微服务动态部署的系统及方法 |
CN107612959A (zh) * | 2017-07-21 | 2018-01-19 | 哈尔滨工程大学 | 一种基于云微服务自管理的云服务平台 |
CN108664378A (zh) * | 2018-05-10 | 2018-10-16 | 西安电子科技大学 | 一种微服务最短执行时间的优化方法 |
CN108768716A (zh) * | 2018-05-22 | 2018-11-06 | 北京邮电大学 | 一种微服务路径选择方法及装置 |
CN109144660A (zh) * | 2017-06-28 | 2019-01-04 | 英特尔公司 | 微服务架构 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8874961B2 (en) * | 2010-03-22 | 2014-10-28 | Infosys Limited | Method and system for automatic failover of distributed query processing using distributed shared memory |
US9311354B2 (en) * | 2012-12-29 | 2016-04-12 | Futurewei Technologies, Inc. | Method for two-stage query optimization in massively parallel processing database clusters |
US10305829B2 (en) * | 2015-05-15 | 2019-05-28 | VoterCircle, Inc. | Database systems and methods for integrating data items collected from multiple data sources |
US10635670B2 (en) * | 2016-09-23 | 2020-04-28 | Sap Se | Integration of query processing engines in a distributed database system |
US10853159B1 (en) * | 2017-04-26 | 2020-12-01 | EMC IP Holding Company, LLC | Analysis system and method |
US10606672B2 (en) * | 2017-05-04 | 2020-03-31 | Microsoft Technology Licensing, Llc | Micro-service framework derived from third-party apps |
US10853124B2 (en) * | 2017-09-25 | 2020-12-01 | Splunk Inc. | Managing user data in a multitenant deployment |
US11347518B2 (en) * | 2019-07-24 | 2022-05-31 | Vmware, Inc. | System and method for adaptively sampling application programming interface execution traces based on clustering |
US11321160B2 (en) * | 2019-11-01 | 2022-05-03 | Splunk Inc. | In a microservices-based application, mapping distributed error stacks across multiple dimensions |
US11809421B2 (en) * | 2020-07-23 | 2023-11-07 | II Craig Ken Yamato | System and method for data analytics |
-
2019
- 2019-05-14 CN CN201910399731.0A patent/CN111949454B/zh active Active
-
2020
- 2020-04-29 EP EP20806640.7A patent/EP3958126A4/en active Pending
- 2020-04-29 WO PCT/CN2020/087732 patent/WO2020228534A1/zh unknown
-
2021
- 2021-11-12 US US17/525,400 patent/US20220067044A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105959138A (zh) * | 2016-04-29 | 2016-09-21 | 深圳前海大数点科技有限公司 | 基于云计算的微服务动态部署的系统及方法 |
CN109144660A (zh) * | 2017-06-28 | 2019-01-04 | 英特尔公司 | 微服务架构 |
CN107612959A (zh) * | 2017-07-21 | 2018-01-19 | 哈尔滨工程大学 | 一种基于云微服务自管理的云服务平台 |
CN108664378A (zh) * | 2018-05-10 | 2018-10-16 | 西安电子科技大学 | 一种微服务最短执行时间的优化方法 |
CN108768716A (zh) * | 2018-05-22 | 2018-11-06 | 北京邮电大学 | 一种微服务路径选择方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112860450A (zh) * | 2020-12-04 | 2021-05-28 | 武汉悦学帮网络技术有限公司 | 一种请求处理方法及装置 |
CN112860450B (zh) * | 2020-12-04 | 2024-04-19 | 武汉悦学帮网络技术有限公司 | 一种请求处理方法及装置 |
CN112734360A (zh) * | 2020-12-28 | 2021-04-30 | 深圳市瞬点科技有限公司 | 端到端的业务流程管理方法、装置、设备及存储介质 |
CN112734360B (zh) * | 2020-12-28 | 2024-04-26 | 深圳市瞬点科技有限公司 | 端到端的业务流程管理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111949454B (zh) | 2022-09-16 |
US20220067044A1 (en) | 2022-03-03 |
WO2020228534A1 (zh) | 2020-11-19 |
EP3958126A4 (en) | 2022-06-22 |
EP3958126A1 (en) | 2022-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111949454B (zh) | 一种基于微服务组件的数据库系统及相关方法 | |
US11366797B2 (en) | System and method for large-scale data processing using an application-independent framework | |
US20220171781A1 (en) | System And Method For Analyzing Data Records | |
US7650331B1 (en) | System and method for efficient large-scale data processing | |
CN111061788B (zh) | 一种基于云架构的多源异构数据转换整合系统及其实现方法 | |
CN108762900A (zh) | 高频任务调度方法、系统、计算机设备和存储介质 | |
US10691712B2 (en) | System and method for merging a mainframe data file to a database table for use by a mainframe rehosting platform | |
WO2009019104A1 (en) | Query execution and optimization | |
US7249140B1 (en) | Restartable scalable database system updates with user defined rules | |
Fang et al. | Integrating workload balancing and fault tolerance in distributed stream processing system | |
CN116302574B (zh) | 一种基于MapReduce的并发处理方法 | |
Gopalakrishna et al. | Untangling cluster management with Helix | |
CN115562676B (zh) | 一种图计算引擎的触发方法 | |
CN111400097A (zh) | 数据的备份方法、装置、系统和计算机可读存储介质 | |
CN113127441A (zh) | 一种动态选择数据库组件的方法及自组装数据库管理系统 | |
US20080189288A1 (en) | Query governor with network monitoring in a parallel computer system | |
CN114880103B (zh) | 一种flink任务适配hadoop生态的系统和方法 | |
Lin et al. | Anser: Adaptive Information Sharing Framework of AnalyticDB | |
CN115080609A (zh) | 一种高性能高可靠业务流程引擎实现方法和系统 | |
CN114896054A (zh) | 一种跨异构计算引擎的大数据任务调度方法、设备及介质 | |
CN116150263A (zh) | 一种分布式图计算引擎 | |
Huang et al. | Architecture for a Web-based Environmental Research Support Portal | |
WO2004077212A2 (en) | Data server independent of communication protocols, operating systems, formats, features and syntaxes | |
Yadava | When to Use Berkeley DB |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |