CN107025134A - 数据库服务系统及兼容多种数据库的方法 - Google Patents
数据库服务系统及兼容多种数据库的方法 Download PDFInfo
- Publication number
- CN107025134A CN107025134A CN201710121228.XA CN201710121228A CN107025134A CN 107025134 A CN107025134 A CN 107025134A CN 201710121228 A CN201710121228 A CN 201710121228A CN 107025134 A CN107025134 A CN 107025134A
- Authority
- CN
- China
- Prior art keywords
- task
- database
- subtask
- plug
- parameter
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据库服务系统,属于计算机技术领域,包括:插件层,包括与数据库类型一一对应的至少一个插件,所述插件用于输出相应类型数据库的数据库操作参数;多级任务系统,用于执行数据库操作;插件中间层,位于所述插件层和所述多级任务系统之间,用于通过所述插件层中的插件获取数据库操作参数后,转换为所述多级任务系统的任务调度参数,由所述多级任务系统根据转换得到的所述任务调度参数调度与所述数据库操作关联的任务,以执行数据库操作。解决了现有技术中数据库服务系统支持多种数据库的时需要为新增的数据库类型单独开发一套任务流和任务而导致的开发效率低下的问题。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据库服务系统及兼容多种数据库的方法。
背景技术
PaaS(Platform as a Service,平台即服务),是在虚拟化技术的基础上,提供一系列中间件,其中最为常见也是最重要的一类是数据库服务系统。数据库的种类繁多,如关系型数据库MySQL、PostgreSQL,非关系型MongoDB,缓存类的数据库Redis、Memcached等。不同类型数据库的基本管理功能(创建、删除、调整配置、启停等)具有较大的差异性。PaaS系统在支持不同类型数据库时,需要兼容不同类型数据库的部署和管理的差异性。PaaS系统上针对每一个基本数据库相关的管理功能都需要经过一系列任务完成,包括虚拟化、存储、网络、数据库等任务。现有技术中,PaaS系统在支持多种类型的数据库时,每种数据库类型都单独对应一套任务,每增加一种新类型的数据库支持时,需要开发维护一套新的任务,开发周期长,开发效率低下。
可见,现有技术中的数据库服务系统及兼容多种数据库的方法至少存在开发效率低下的问题。
发明内容
本申请提供一种数据库服务系统及兼容多种数据库的方法,解决现有技术中兼容多种数据库时开发效率低下的问题。
为了解决上述问题,第一方面,本申请实施例提供了一种数据库服务系统包括:
插件层,包括与数据库类型一一对应的至少一个插件,所述插件用于输出相应类型数据库的数据库操作参数;
多级任务系统,用于执行数据库操作;
插件中间层,位于所述插件层和所述多级任务系统之间,用于从所述插件层中的插件获取数据库操作参数后,转换为所述多级任务系统的任务调度参数,由所述多级任务系统根据转换得到的所述任务调度参数调度与所述数据库操作关联的任务,以执行数据库操作。
第二方面,本申请实施例提供了一种兼容多种数据库的方法,应用于本申请实施例中所述的数据库服务系统,所述方法包括:
根据接收的数据库操作指令确定待调度的任务;
通过所述插件中间层获取所述数据库操作指令对应的任务调度参数;
根据所述任务调度参数调度所述待调度的任务,以执行所述数据库操作指令。
第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时本申请实施例公开的所述PaaS平台兼容多种数据库方法的步骤。
本申请实施例公开的数据库服务系统,通过在插件层中预置不同类型数据库的操作参数,并由插件中间层将所述数据库的操作参数转换为任务调度参数,以实现多级任务系统中的任务流以及任务的调度,进一步实现数据库服务系统提供给上层应用的数据库服务,解决了现有技术中数据库服务系统支持多种数据库的时需要为新增的数据库类型单独开发一套任务流和任务而导致的开发效率低下的问题。通过本申请公开的数据库服务系统,当需要支持新的数据库类型时,只需要在插件层中的增加相应类型数据库的插件,以保证多级任务系统能够通过插件中间层获取针对该类型数据库的任务调度参数,便可支持该类型数据库的服务,有效提高了数据库服务系统的开发效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例一的数据库服务系统的结构示意图;
图2是本申请实施例一的数据库服务系统的结构示意图之二;
图3是本申请实施例二兼容多种数据库的方法流程图;
图4是本申请实施例三兼容多种数据库的方法流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
本申请公开的一种数据库服务系统,如图1所示,该系统包括:插件层100、插件中间层110和多级任务系统120。
其中,所述插件层100,包括与数据库类型一一对应的至少一个插件,所述插件用于输出相应类型数据库的数据库操作参数。
所述多级任务系统120,用于执行数据库操作。
所述插件中间层110,位于所述插件层100和所述多级任务系统120之间,用于从所述插件层中的插件获取数据库操作参数后,转换为所述多级任务系统的任务调度参数,由所述多级任务系统根据转换得到的所述任务调度参数调度与所述数据库操作关联的任务,以执行数据库操作。
具体实施时,所述插件层100中预设有多个插件1001,每个插件对应一种数据库类型。所述插件1001用于输出相应类型数据库的操作参数,例如:创建数据库操作的执行的函数名称列表、数据库操作函数的参数、数据库操作函数执行结果等。
数据库服务系统,如PaaS系统,提供的数据库服务包括:创建数据库集群、读取数据库、查询数据库,删除数据库等,PaaS系统通常会提供给上层应用统一的接口,便于上层应用调用相关数据库服务。对于不同类型的数据库,PaaS系统提供的数据库服务会有所不同,PaaS系统提供的数据库服务时执行的数据库操作的函数名称、函数参数以及执行结果等操作参数全部预先设置在相应的插件中。
如图2所示,所述多级任务系统120包括四层,分别为:任务流层、任务层、子任务集层以及子任务层。
在多级任务系统120中,将实现数据库创建或运行过程中运行的每一个原子功能定义为一个子任务1204。例如“创建集群”子任务create group,“创建虚拟IP”子任务attach network。所述子任务1204按照实现的功能类别分别隶属于对应子任务系统,其中,所述子任务系统至少包括:计算子任务系统、存储子任务系统、网络子任务系统、中间件子任务系统。例如:实现网络功能的全部子任务1204隶属于网络子任务系统,如:实现计算功能的全部子任务1204隶属于计算子任务系统。每个子任务系统分别对应一个执行组件,用于执行隶属于该子任务系统中的子任务1204。具体实施时,通过将不同的子任务系统部署到不同的服务器上,或者并行调用各子任务系统的执行组件以执行子任务1204,可以提高PaaS系统的运行效率,并降低维护难度,提高系统稳定性。具体实施时,所述执行组件作为对应子任务系统的程序运行主进程,多级任务系统的任务或任务流通过http协议将任务调度指令发送至相应的子任务系统,该子任务系统的执行组件根据所述任务调度指令调度相应的子任务运行,以实现相应功能。
子任务集1203是由一批固定的子任务1204组成的。具体实施时,将各子任务1204按照实现功能的不同进行预定义,构成子任务集层的子任务集1203。子任务集1203由一个或多个子任务1204组成,实现一个特定的复杂功能,例如:实现网络分配功能的子任务集、实现存储功能的子任务集。子任务集中的子任务可以属于不同的子任务系统。
每个任务对应至少一个子任务集,其中,每个所述子任务集根据对应任务的任务调度参数加载至少一个子任务,每个所述子任务用于实现数据库的一个原子功能。任务层的每个任务1202则由一个或多个子任务集1203组成,不同的任务1202可能包含相同的子任务集1203,任务是任务流复用的基本单位。任务1202是由一批固定的子任务集1203组成。在任务调度的过程中,根据任务调度参数动态加载构成该任务的每一个子任务集中的子任务,由任务调度参数决定加载的对象。例如,子任务集A负责网络分配功能,由a1、a2、a3、a4四个子任务组成,传递给子任务集A的参数是分配内网,则需要加载并执行a1、a2、a3三个子任务;若传入的参数为分配外网,则需要加载并执行a1、a2、a4三个子任务。
任务流层包括至少一个任务流1201,每个任务流1201对应Paas系统提供的一类数据库功能,例如:第一个任务流1201对应“创建集群”功能,第二个任务流1201对应“删除集群”功能。
每个任务流1201对应的数据库功能适用于所有类型的数据库。每个所述任务流1201由下一层级中依序执行的至少一个任务1202构成,每个任务1202对应数据库创建和运行过程中执行的一个功能,以实现数据库的相应功能。例如,“创建集群”功能对应的任务流包含多个任务1202分别为:初始化、创建server、部署集群、状态检查等,具体实施时,每个任务流1201中包括的多个任务1202将按照预设的执行顺序依次执行,以实现该任务流提供给上层应用的数据库服务。任务流包括的任务,以及任务的执行顺序根据不同类型的数据库创建和运行时所执行的各功能模块的顺序确定。
在PaaS系统运行过程中,所述插件中间层110,位于所述插件层100和所述多级任务系统120之间,用于进行数据库操作参数和任务调度参数的传递和转换。具体实施时,针对不同类型的数据库,预先建立数据库操作的操作参数和多级任务系统中预置的各种任务的任务调度参数的映射关系。所述任务流和任务通过插件中间层获取任务调度参数。
本申请实施例公开的数据库服务系统,通过在插件层中预置不同类型数据库的操作参数,并由插件中间层将所述数据库的操作参数转换为任务调度参数,以实现多级任务系统中的任务流以及任务的调度,进一步实现数据库服务系统提供给上层应用的数据库服务,解决了现有技术中数据库服务系统支持多种数据库的时需要为新增的数据库类型单独开发一套任务流和任务而导致的开发效率低下的问题。通过本申请公开的数据库服务系统,当需要支持新的数据库类型时,只需要在插件层中的增加相应类型数据库的插件,以保证多级任务系统能够通过插件中间层获取针对该类型数据库的任务调度参数,便可支持该类型数据库的服务,有效提高了数据库服务系统的开发效率。
实施例二
本实施例公开的一种兼容多种数据库的方法,如图3所示,该方法包括:步骤300至步骤320。所述方法应用于实施例一所述的数据库服务系统。
步骤300,根据接收的数据库操作指令确定待调度的任务。
首先数据库服务系统接收上层应用发出的数据库操作指令,所述数据库操作指令用于指示数据库服务系统提供请求的数据库服务。具体实施时,所述数据库操作指令可以包括:创建集群、查询数据库、删除数据库、写数据库等指令。数据库操作指令通常包括数据库操作和操作参数两部分。以数据库操作指令为“创建集群”为例,数据库操作指令包括的数据库操作为创建集群,创建集群操作的操作参数包括:数据库类型、配置大小、节点数量等。
数据库服务系统根据接收到的数据库操作指令,提取其中的数据库类型、数据库操作等信息,并根据数据库操作选择多级任务系统中与所述数据库操作功能匹配的一个预设的任务流。多级任务系统中预设的每个任务流与数据库的一类功能对应,并且,每个任务流对应多个任务,并预先设置了任务流对应的多个任务的执行顺序。选择了任务流之后,即确定了实现所述数据库操作指令对应的数据库操作所需按顺序执行的任务。
步骤310,通过所述插件中间层获取所述数据库操作指令对应的任务调度参数。
插件中间层预先建立了数据库操作参数和任务调度参数的映射关系,用于将从数据库角度描述的每个插件输出的数据库操作参数转换为从多级任务系统的任务角度描述的任务调度参数。插件中间层还用于将任务调度结果传输至插件层中的相应插件,以获取所述插件对任务调度结果的判断结果,并进一步确定任务调度是否完成,以及下一步任务调度所需的任务调度参数。
步骤320,根据所述任务调度参数调度所述待调度的任务,以执行所述数据库操作指令。
多级任务系统根据获取的任务调度参数按照执行顺序依次调度待调度任务,以执行该待调度任务,实现数据库的相应功能。多级任务系统中的每个任务包括多个子任务集,每个子任务集中又包括多个子任务,每一个子任务用于实现数据库的一个原子功能。任务的调度过程实际上是执行该任务包括的子任务集中各子任务的过程。在任务调度过程中,当前任务根据任务调度参数加载器包括的子任务集中的各子任务,并根据任务调度参数调度各子任务。待当前任务的各子任务执行完毕,当前任务将执行结果发送至插件中间层,有插件中间层将任务执行结果转换为数据库角度的执行结果,并发送至相应类型的插件,有插件判断当前任务对应的数据库功能是否执行成功,并将执行成功与否的结果通过插件中间层发送至多级任务系统,便于多级任务系统根据当前数据库功能的执行结果确定下一个待调度任务的任务调度参数。直至所有任务调度完成。
具体实施时,任务包括的子任务集中的子任务分别隶属于不同的子任务系统,因此,子任务在被调度的过程中,由其隶属的子任务系统的执行组建执行。
本申请实施例公开的数据库服务系统兼容多种数据库的方法,通过根据接收的数据库操作指令确定待调度的任务,然后,通过所述插件中间层获取所述数据库操作指令对应的任务调度参数,并根据所述任务调度参数调度所述待调度的任务,以执行所述数据库操作指令,解决了现有技术中数据库服务系统支持多种数据库的时需要为新增的数据库类型单独开发一套任务流和任务而导致的开发效率低下的问题。通过本申请公开的数据库服务系统和兼容多种数据库的方法,当需要支持新的数据库类型时,只需要在插件层中的增加相应类型数据库的插件,多级任务系统通过插件中间层获取针对该类型数据库的任务调度参数,便可支持该类型数据库的服务,有效提高了数据库服务系统的开发效率。
实施例三
本实施例公开的一种兼容多种数据库的方法,如图4所示,该方法包括:步骤400至步骤470。所述方法应用于实施例一所述的数据库服务系统,本实施例中,具体以PaaS数据库服务系统为例说明多种数据库的兼容方法。
步骤400,数据库服务系统接收数据库操作指令。
具体实施时,PaaS系统可以通过消息中间件或者队列监控的方式,实时接收数据库服务的相关数据库操作指令,例如:“创建数据库集群”的指令、“查询数据库”的指令、“删除数据库集群”的指令等。以PaaS系统收到“创建数据库集群”的指令为例,数据库操作指令的参数包括:数据库类型、配置大小、节点数量等(如MySQL数据库、CPU4核、内存4G、磁盘200G、主节点1个、从节点2个、代理节点1个等等)。
数据库类型不同,或者数据库操作指令不同时,数据库操作指令的参数会略有不同。
步骤410,数据库服务系统根据接收的数据库操作指令确定待调度的任务。
在接收到数据库操作以指令之后,数据库服务系统根据接收的数据库操作指令确定待调度的任务,包括:根据接收的数据库操作指令选择需要执行的任务流;获取选择的所述任务流对应的任务以及任务的执行顺序。
每个任务流对应PaaS系统提供的一类数据库功能任务流。具体实施时,PaaS系统预先建立多级任务系统,所述多级任务系统包括多个任务流,例如:对应“创建集群”功能的任务流、对应“查询数据库”功能的任务流、对应“删除集群”功能的任务流等。PaaS系统预先建立的任务流的数量根据系统支持的数据库服务的类型、数据库功能确定。以PaaS系统接收到“创建集群”的请求为例,根据数据操作指令确定任务流为“创建集群”,同时,根据数据库操作指令的操作参数确定请求的数据库类型对应的插件层中的插件(MySQL数据库),然后,由多级任务系统开始执行“创建集群”任务流。
任务流由顺序执行的多个任务组成。PaaS系统中的多级任务系统预先建立了任务流和任务的关联关系,并确定了构成任务流的各任务的执行顺序。获取选择的所述任务流对应的任务以及任务的执行顺序,根据预设的任务流包括的任务以及任务的执行顺序,同时确定了实现该数据服务请求所需执行的任务,以及各任务的执行顺序。以“创建集群”任务流为例,包括顺序执行的:初始化、创建server、部署集群、状态检查四个任务。
步骤420,通过所述插件中间层获取所述数据库操作指令对应的任务调度参数。
具体实施时,通过所述插件中间层获取所述数据库操作指令对应的任务调度参数,包括:根据所述数据库操作指令确定数据库操作及数据库操作参数;根据预设的数据库操作参数和任务调度参数的映射关系,将所述数据库操作参数转换为所述多级任务系统的任务调度参数。插件中间层预先建立了数据库操作参数和任务调度参数的映射关系,用于将从数据库角度描述的每个插件输出的数据库操作参数转换为从多级任务系统的任务角度描述的任务调度参数。所述任务流和任务通过插件中间层获取任务调度参数。
根据所述任务调度参数调度所述待调度的任务,以执行所述数据库操作指令,包括:根据所述任务调度参数,按照所述执行顺序依次调度所述任务流对应的任务,即执行选择的任务流。
具体实施时,根据所述任务调度参数,按照所述执行顺序依次调度所述任务流对应的任务,包括:确定调度的所述任务流中的当前任务;基于任务调度参数执行所述当前任务;根据所述当前任务的执行结果更新所述任务流中的任务调度参数;重复执行确定所述任务流中的当前任务,并基于任务调度参数执行所述当前任务,然后更新所述任务流中的任务调度参数的步骤,直至所述任务流对应的任务全部执行完毕。执行任务流的过程中,多级任务系统的任务层通过插件中间层和插件层中的插件往复进行数据交互,以实现数据库操作参数和任务调度参数的转换和获取,保证多个任务的顺序执行。
步骤430,确定根据所述数据库操作指令选择的任务流中的当前任务。
具体实施时,可以设置程序队列,将待调度任务按照执行顺序从前到后依次放入程序队列,然后从程序队列的队首开始,首先取第一个任务作为当前任务,当前任务执行完成之后,再取第二个任务作为当前任务,依次完成待调度任务的执行。
步骤440,基于任务调度参数执行所述当前任务。
PaaS系统的插件中间层,位于所述插件层和所述多级任务系统之间,针对不同类型的数据库,插件中间层预先建立有数据库操作的操作参数和多级任务系统中预置的各种任务的任务调度参数的映射关系。所述任务流和任务通过插件中间层获取任务调度参数。
确定当前任务之后,基于任务调度参数执行所述当前任务。任务调度参数可能包括当前任务对应的子任务集中各子任务的执行参数,如函数参数。当前任务不同,任务调度参数可能不同,任务调度参数由多级任务系统的任务层通过插件中间层和插件层中的插件往复进行数据交互获取到。
基于任务调度参数执行所述当前任务,包括:根据所述任务调度参数确定当前调度的任务对应的子任务集;根据所述任务调度参数加载每个子任务集对应的子任务;通过各子任务隶属的子任务系统执行相应子任务。
首先,根据任务调度参数和多级任务系统预定义的任务和子任务集的对应关系确定当前调度的任务对应的子任务集。例如:多级任务系统中,“初始化”任务预定义的子任务集包括:“创建group”、“创建虚拟IP”、“创建负载均衡”。如果数据库操作指令中的数据库操作参数指定的数据库类型为MySQL数据库,则多级任务系统通过插件中间层得到的任务调度参数是MySQL数据库的各功能对应的任务的任务调度参数。即,多级任务系统根据任务调度参数确定MySQL数据库的“初始化”任务的子任务集包括“创建group”子任务集和“创建虚拟IP”子任务集。
然后,根据所述任务调度参数加载每个子任务集对应的子任务。多级任务系统根据子任务的功能,预先定义了每个子任务集包括的子任务,然后,根据任务调度参数动态加载各子任务集中的子任务。例如,“创建虚拟IP”子任务集由“attach network”、“allocatestatic ip”和“allocate dynamic ip”三个子任务组成,传递给子任务集“创建虚拟IP”的任务调度参数是分配静态IP地址,则根据任务调度参数只需要加载“attachnetwork”和“allocate static ip”两个子任务。
按照前述方法,可以确定以“创建集群”任务流包括的任务,每个任务包括的子任务,以及任务的执行顺序、子任务的任务调度参数。最后,通过各子任务隶属的子任务系统执行相应子任务。
例如:执行”初始化“任务时,多级任务系统询问插件中间层初始化参数,插件中间层从MySQL插件中获取初始化参数:group名称、VIP等,插件中间层根据预先定义的映射关系,将获取到的数据库操作参数,转换为任务调度参数:group name、虚拟IP-true、elb-false,并将参数返回给多级任务系统。多级任务系统得到参数后,确认执行的子任务集是“创建group”、“创建虚拟IP”,并加载子任务集中的子任务,然后将每个子任务分别发送至该子任务隶属的子任务系统去执行,以完成相应任务。例如:将“创建group”子任务集中的“creategroup”子任务发送至“create group”子任务所隶属的存储子任务系统执行;将“创建虚拟IP”子任务集中的“attach network”和“allocate static ip”两个子任务发送至“attach network”和“allocate static ip”所隶属的网络子任务系统执行。
具体实施时,子任务系统会将子任务的执行结果返回给该子任务所在的子任务集。一个子任务集中的所有子任务全部执行完成后,子任务集将子任务集的执行结果反馈给该子任务集所在的当前任务。当前任务根据子任务集的执行结果判断所有子任务集中的子任务全部执行完成后,该子任务集执行完成后;所有子任务集执行完成之后,当前任务执行完成。
步骤450,根据所述当前任务的执行结果更新所述任务流中的任务调度参数。
插件中间层还用于将任务调度结果传输至插件层中的相应插件,以获取所述插件对任务调度结果的判断结果,并进一步确定任务调度是否完成,以及下一步任务调度所需的任务调度参数。本实施例中,初始化任务将执行结果通过插件中间层反馈给MySQL插件,并获取后一个任务,即创建server任务的任务调度参数。
步骤460,判断所有待调度任务是否全部执行完成,若是,则跳转至步骤470,结束任务调度,否则跳转至步骤430,继续执行后续待调度任务。
在每一个任务执行结束之后,判断该任务流的所有任务是否全部执行完成,若是,则结束本次任务流,即结束本次数据库服务的任务调度。如果,当前任务流中仍有待调度的任务,则确定下一个待调度的任务为当前任务,并基于获取的任务调度参数继续执行任务调度。
如果当前任务流中的任务未执行完,例如,“状态检查”任务尚未执行,则多级任务系统可以通过插件中间层向插件层的插件,如本例中的MySQL数据库插件,进一步获取“状态检查”任务的任务调度参数。如果当前任务流中的所有任务均已执行完,例如,本实施例“状态检查”任务的所有子任务均已执行完,则任务流获取到的任务调度参数将为指示任务流结束的参数。
具体实施时,在任务的执行结果返回后,该任务需要数据库插件判断执行结果,即多级任务系统将执行结果通过插件中间层传递给数据库插件,数据库插件判断结果后返回“成功”或“失败”给多级任务系统,多级任务系统根据结果判断下一步是继续执行任务或者重试或者返回失败。
步骤470,结束任务调度。
待选择的务流中所有任务执行完成后,任务流返回执行成功或者失败,然后,结束本次任务调度。
具体实施时,多级任务系统包括的任务流、任务流对应的数据库服务功能、任务流对应的任务以及任务的执行顺序、任务包括的子任务集以及子任务集中包括的子任务,根据数据库支持的数据库操作以及各数据库功能的具体实现功能模块确定,本申请对此不做限定。
本申请实施例公开的兼容多种数据库方法,通过数据库服务系统接收数据库操作指令,然后根据接收的数据库操作指令确定待调度的任务;并通过所述插件中间层获取所述数据库操作指令对应的任务调度参数;然后,按照根据所述数据库操作指令选择的任务流中设定的任务执行顺序和所述任务调度参数,依次执行待调度任务,直至选择的任务流中的所有任务执行完成,解决了现有技术中数据库服务系统支持多种数据库的时需要为新增的数据库类型单独开发一套任务流和任务而导致的开发效率低下的问题。通过本申请公开的数据库服务系统和兼容多种数据库的方法,当需要支持新的数据库类型时,只需要在插件层中的增加相应类型数据库的插件,多级任务系统通过插件中间层获取针对该类型数据库的任务调度参数,便可支持该类型数据库的服务,有效提高了数据库服务系统的开发效率。
本申请还公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例二和实施例三兼容多种数据库的方法的步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本申请提供的一种数据库服务系统以及兼容多种数据库的方法进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
Claims (12)
1.一种数据库服务系统,其特征在于,包括:
插件层,包括与数据库类型一一对应的至少一个插件,所述插件用于输出相应类型数据库的数据库操作参数;
多级任务系统,用于执行数据库操作;
插件中间层,位于所述插件层和所述多级任务系统之间,用于从所述插件层中的插件获取数据库操作参数后,转换为所述多级任务系统的任务调度参数,由所述多级任务系统根据转换得到的所述任务调度参数调度与所述数据库操作关联的任务,以执行数据库操作。
2.根据权利要求1所述的系统,其特征在于,所述多级任务系统包括至少一个任务流,每个所述任务流由下一层级中依序执行的至少一个任务构成,以实现数据库的相应功能。
3.根据权利要求2所述的系统,其特征在于,每个所述任务对应至少一个子任务集,其中,每个所述子任务集根据对应任务的任务调度参数加载至少一个子任务,每个所述子任务用于实现数据库的一个原子功能。
4.根据权利要求3所述的系统,其特征在于,所述子任务按照功能类别分别隶属于对应子任务系统,其中,所述子任务系统至少包括:计算子任务系统、存储子任务系统、网络子任务系统、中间件子任务系统。
5.根据权利要求4所述的系统,其特征在于,每个子任务系统分别对应一个执行组件,用于执行隶属于该子任务系统中的子任务。
6.一种兼容多种数据库的方法,应用于权利要求1至5所述的数据库服务系统,其特征在于,包括:
根据接收的数据库操作指令确定待调度的任务;
通过所述插件中间层获取所述数据库操作指令对应的任务调度参数;
根据所述任务调度参数调度所述待调度的任务,以执行所述数据库操作指令。
7.根据权利要求6所述的方法,其特征在于,所述根据接收的数据库操作指令确定待调度的任务的步骤,包括:
根据接收的数据库操作指令选择需要执行的任务流;
获取选择的所述任务流对应的任务以及任务的执行顺序。
8.根据权利要求7所述的方法,其特征在于,所述根据所述任务调度参数调度所述待调度的任务,以执行所述数据库操作指令的步骤,包括:
根据所述任务调度参数,按照所述执行顺序依次调度所述任务流对应的任务。
9.根据权利要求8所述的方法,其特征在于,所述根据所述任务调度参数,按照所述执行顺序依次调度所述任务流对应的任务的步骤,包括:
确定调度的所述任务流中的当前任务;
基于任务调度参数执行所述当前任务;
根据所述当前任务的执行结果更新所述任务流中的任务调度参数;
重复执行上述步骤,直至所述任务流对应的任务全部执行完毕。
10.根据权利要求9所述的方法,其特征在于,所述基于任务调度参数执行所述当前任务的步骤,包括:
根据所述任务调度参数确定当前调度的任务对应的子任务集;
根据所述任务调度参数加载每个子任务集对应的子任务;
通过各子任务隶属的子任务系统执行相应子任务。
11.根据权利要求6所述的方法,其特征在于,所述通过所述插件中间层获取所述数据库操作指令对应的任务调度参数的步骤,包括:
根据所述数据库操作指令确定数据库操作及数据库操作参数;
根据预设的数据库操作参数和任务调度参数的映射关系,将所述数据库操作参数转换为所述多级任务系统的任务调度参数。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求6至11任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710121228.XA CN107025134B (zh) | 2017-03-02 | 2017-03-02 | 数据库服务系统及兼容多种数据库的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710121228.XA CN107025134B (zh) | 2017-03-02 | 2017-03-02 | 数据库服务系统及兼容多种数据库的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107025134A true CN107025134A (zh) | 2017-08-08 |
CN107025134B CN107025134B (zh) | 2020-09-25 |
Family
ID=59526133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710121228.XA Active CN107025134B (zh) | 2017-03-02 | 2017-03-02 | 数据库服务系统及兼容多种数据库的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107025134B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107844339A (zh) * | 2017-11-15 | 2018-03-27 | 湖北盛天网络技术股份有限公司 | 任务调度方法及插件和服务器 |
CN109739868A (zh) * | 2019-01-08 | 2019-05-10 | 深圳市网心科技有限公司 | 一种数据处理方法及其相关设备 |
CN112765246A (zh) * | 2020-12-30 | 2021-05-07 | 北京知因智慧科技有限公司 | 任务处理方法、装置、电子设备和存储介质 |
CN114706918A (zh) * | 2022-06-01 | 2022-07-05 | 杭州安恒信息技术股份有限公司 | 一种多类型数据库兼容方法、装置、设备、存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101291337A (zh) * | 2008-05-30 | 2008-10-22 | 同济大学 | 一种网格资源管理系统及管理方法 |
CN103942234A (zh) * | 2013-01-21 | 2014-07-23 | 中国电信股份有限公司 | 对多个异构数据库操作的方法、中间件装置及系统 |
-
2017
- 2017-03-02 CN CN201710121228.XA patent/CN107025134B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101291337A (zh) * | 2008-05-30 | 2008-10-22 | 同济大学 | 一种网格资源管理系统及管理方法 |
CN103942234A (zh) * | 2013-01-21 | 2014-07-23 | 中国电信股份有限公司 | 对多个异构数据库操作的方法、中间件装置及系统 |
Non-Patent Citations (1)
Title |
---|
李天阳: ""一种电力实时监控系统异构数据库访问方法"", 《计算机与现代化》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107844339A (zh) * | 2017-11-15 | 2018-03-27 | 湖北盛天网络技术股份有限公司 | 任务调度方法及插件和服务器 |
CN107844339B (zh) * | 2017-11-15 | 2021-07-30 | 湖北盛天网络技术股份有限公司 | 任务调度方法及插件和服务器 |
CN109739868A (zh) * | 2019-01-08 | 2019-05-10 | 深圳市网心科技有限公司 | 一种数据处理方法及其相关设备 |
CN112765246A (zh) * | 2020-12-30 | 2021-05-07 | 北京知因智慧科技有限公司 | 任务处理方法、装置、电子设备和存储介质 |
CN112765246B (zh) * | 2020-12-30 | 2024-05-24 | 北京知因智慧科技有限公司 | 任务处理方法、装置、电子设备和存储介质 |
CN114706918A (zh) * | 2022-06-01 | 2022-07-05 | 杭州安恒信息技术股份有限公司 | 一种多类型数据库兼容方法、装置、设备、存储介质 |
CN114706918B (zh) * | 2022-06-01 | 2022-09-16 | 杭州安恒信息技术股份有限公司 | 一种多类型数据库兼容方法、装置、设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107025134B (zh) | 2020-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108614726B (zh) | 虚拟机创建方法及装置 | |
CN109062658A (zh) | 实现计算资源服务化的调度方法、装置、介质、设备及系统 | |
CN107025134A (zh) | 数据库服务系统及兼容多种数据库的方法 | |
CN108287756A (zh) | 一种处理任务的方法及装置 | |
CN109194538A (zh) | 基于分布式协调的测试方法、装置、服务器及存储介质 | |
CN106789339A (zh) | 一种基于轻量级虚拟化架构的分布式云仿真方法与系统 | |
CN110162388A (zh) | 一种任务调度方法、系统及终端设备 | |
CN104272258B (zh) | 用于在事务中间件机器环境中支持隐式版本控制的系统和方法 | |
CN106844198A (zh) | 一种分布式调度自动化测试平台及方法 | |
CN105867955A (zh) | 一种应用程序部署系统及部署方法 | |
CN104243617B (zh) | 一种异构集群中面向混合负载的任务调度方法及系统 | |
CN109034396A (zh) | 用于处理分布式集群中的深度学习作业的方法和装置 | |
CN106548261A (zh) | 一种业务流程控制方法、装置及电子设备 | |
CN106325976B (zh) | 一种渲染任务调度处理方法及服务器 | |
CN106681834A (zh) | 分布式计算方法、管理装置及系统 | |
CN105677441B (zh) | 虚拟机迁移方法、虚拟设施管理器及协调器 | |
CN106557471A (zh) | 任务调度方法及装置 | |
CN110162481A (zh) | 一种软件测试方法、装置、设备以及存储介质 | |
CN106776008A (zh) | 一种基于zookeeper实现负载均衡的方法及系统 | |
CN107370796A (zh) | 一种基于Hyper TF的智能学习系统 | |
CN107066292A (zh) | 服务器环境部署方法和装置 | |
CN106357791A (zh) | 业务处理方法、装置及系统 | |
CN106445631A (zh) | 一种布署虚拟机的方法、系统以及物理服务器 | |
CN105791166B (zh) | 一种负载均衡分配的方法及系统 | |
CN110275681A (zh) | 一种数据存储方法及数据存储系统 |
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 |