基于分布式数据库的任务执行方法及装置制造方法及图纸

技术编号:14063184 阅读:37 留言:0更新日期:2016-11-28 01:45
本申请提供了一种基于分布式数据库的任务执行方法及装置,所述方法包括:任务执行过程,该任务执行过程包括:实时从所述分布式数据库中获取符合预设执行条件的目标任务;依据所述目标任务的相关执行信息和任务类型执行所述目标任务;其中,所述目标任务的任务类型用于表示针对所述分布式数据库的操作类型。采用本申请实施例的方法或装置,可以自动实现分布式数据库的运维,提高分布式数据库在运维过程中任务执行的效率和准确率。

【技术实现步骤摘要】

本申请涉及数据库领域,特别涉及一种基于分布式数据库的任务执行方法及装置
技术介绍
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库.分布式数据库系统通常使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都可能有DBMS的一份完整拷贝副本,或者部分拷贝副本,并具有自己局部的数据库,位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的逻辑上集中、物理上分布的大型数据库。以分布式数据库oceanbase集群为例,在实际应用中,需要对分布式数据库进行运行维护,例如需要对oceanbase集群进行安装、升级、扩容、下线、下发配置、重启等操作,现有技术一般通过人工方式在相应的机器上执行一系列的任务来完成上述的相应操作。
技术实现思路
但是专利技术人在研究过程中发现,对分布式数据库进行运维时所有的任务都需要通过人工的方式登录到相应的服务器上来执行。在分布式数据库oceanbase集群数量和服务器数量少时可能没有太大问题,但是当oceanbase集群数量或者服务器数量增多时,需要手工执行步骤的总数也将增多,运维难度将大幅增加,不仅会导致运维效率非常低下,而且非常容易出现操作出错的情况。本申请所要解决的技术问题是提供一种基于分布式数据库的任务执行方法,用以尽量避免现有技术中采用人工方式进行分布式数据库运维的现象,从而自动实现分布式数据库的运维,进而提高分布式数据库在
运维过程中任务执行的效率和准确率。本申请还提供了一种基于分布式数据库的任务执行装置,用以保证上述方法在实际中的实现及应用。为了解决上述问题,本申请公开了一种基于分布式数据库的任务执行方法,包括任务执行过程,所述任务执行过程包括:实时从分布式数据库中获取符合预设执行条件的目标任务;其中,所述分布式数据库中保存有任务的相关执行信息;依据所述目标任务的相关执行信息和任务类型执行所述目标任务;其中,所述目标任务的任务类型用于表示针对所述分布式数据库的操作类型。本申请公开了一种基于分布式数据库的任务执行装置,包括:任务执行单元,所述任务执行单元包括:获取模块,用于实时从分布式数据库中获取符合预设执行条件的目标任务;其中,所述分布式数据库中保存有任务的相关执行信息;执行模块,用于依据所述目标任务的相关执行信息和任务类型执行所述目标任务;其中,所述目标任务的任务类型用于表示针对所述分布式数据库的操作类型。与现有技术相比,本申请包括以下优点:在本申请实施例中,接收用户的输入信息后即可触发目标任务的执行,并且在执行任务的过程中,如果某个任务执行失败,还可以在失败处的原子任务继续执行下去,无需从头开始执行该任务,使得任务执行的效率比较高。同时随着分布式数据库oceanbase集群或者服务器数量加大时,特别是当oceanbase集群或者服务器的数量达到规模化的程度时,其高效的任务自动执行效果也就越专利技术显。进一步的,在本申请实施例中,任务执行过程中分布式数据库oceanbase冶无需停止服务,这对线上生产环境同样具有重大意义。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本申请的基于分布式数据库的任务执行方法实施例的流程图;图2是本申请的方法实施例在实际应用中的应用场景架构图;图3是本申请的基于分布式数据库的任务执行装置实施例的结构框图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请可用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。参考图1,示出了本申请一种基于分布式数据库的任务执行方法实施例的流程图,本实施例可以包括以下步骤:步骤101:响应于用户提交输入信息,按照预先设置的任务格式生成待执行的初始任务。本申请实施例的方法流程可以包括预处理流程和任务执行流程,这两
个流程之间可以是相互独立的。其中,预处理流程包括步骤101~步骤102,任务执行流程包括步骤103~步骤104。在步骤101中,用户可以通过交互式界面来输入信息,例如输入新任务的相关信息。假设用户输入的新任务为:新建海量数据库(oceanbase)集群,则用户可以输入的新任务的相关信息就可以包括:集群名称、集群数量、存储服务器(chunkserver)的类型、存储服务器(chunkserver)的数量、更新服务器(updatechunkserver)的类型、更新服务器(updateserver)的数量、机房名称、用户名、集群执行安装的时间和/或需要安装的oceanbase的版本等信息,进而根据这些输入信息,按照预先设置好的任务格式生成待执行的初始任务,即新建oceanbase集群的任务。可以理解的是,在生成待执行的初始任务的时候,可以按照预先设置的任务格式,例如,预先约定了初始任务中的某个字段代表什么操作,或者约定了传输数据的格式,或者其他需要约定的内容,都可以预先设置为任务格式的内容,以便后续根据任务格式来生成待执行的命令。在实际应用中,在接收到用户的输入信息的情况下,还可以判断用户的输入信息是否合理,例如,是否为计算机可读的内容,或者用户输入的内容是否不是乱码,等等。如果用户的输入信息不合理,则提示用户输入有误;如果用户的输入信息合理,则按照预先设置的任务格式构造初始任务。接着参考图2所示,为本申请方法实施例在实际应用中的场景架构图。在图2中,可以由实际中的控件组(OBCONTROL)201来执行步骤101和步骤102。其中,OBCONTROL是一个面向用户的交互式系统,可以接收用户的输入信息。接着返回图1,进入步骤102:将所述初始任务的相关执行信息持久化存储至分布式数据库中;所述相关执行信息包括:用户提交的所述输入信息。在本步骤中,可以再由OBCONTROL将初始任务的相关执行信息持久化存储至分布式数据库202(参考图2所示)中,其中,相关执行信息可以是步骤101中用户提交的输入信息按照约定格式生成的任务信息,
其中包括用户提交的输入信息。当然,还可以包括相关的初始任务的执行信息,例如,初始任务的执行状态,该执行状态可以包括:初始任务是否开始执行,是否执行本文档来自技高网
...
基于分布式数据库的任务执行方法及装置

【技术保护点】
一种基于分布式数据库的任务执行方法,其特征在于,该方法包括:任务执行过程,所述任务执行过程包括:实时从分布式数据库中获取符合预设执行条件的目标任务;其中,所述分布式数据库中保存有任务的相关执行信息;依据所述目标任务的相关执行信息和任务类型执行所述目标任务;其中,所述目标任务的任务类型用于表示针对所述分布式数据库的操作类型。

【技术特征摘要】
1.一种基于分布式数据库的任务执行方法,其特征在于,该方法包括:任务执行过程,所述任务执行过程包括:实时从分布式数据库中获取符合预设执行条件的目标任务;其中,所述分布式数据库中保存有任务的相关执行信息;依据所述目标任务的相关执行信息和任务类型执行所述目标任务;其中,所述目标任务的任务类型用于表示针对所述分布式数据库的操作类型。2.根据权利要求1所述的方法,其特征在于,还包括:预处理过程,该预处理过程包括:响应于用户提交输入信息,按照预先设置的任务格式生成待执行的初始任务;将所述初始任务的相关执行信息持久化存储至分布式数据库中;所述相关执行信息包括:用户提交的所述输入信息。3.根据权利要求2所述的方法,其特征在于,所述相关执行信息还包括:所述初始任务的执行状态;则所述实时从所述分布式数据库中获取符合预设执行条件的目标任务,包括:创建多个线程;依据所述初始任务的执行状态,实时触发所述多个线程并行从所述分布式数据库中查找:已经到达指定的执行时间的目标任务,和,执行失败之后需要继续执行的目标任务。4.根据权利要求2所述的方法,其特征在于,所述按照所述目标任务的相关执行信息和任务类型执行所述目标任务,包括:按照所述目标任务的任务类型以及所述目标任务是否为新任务,确定所述目标任务的第一个原子任务,其中,所述原子任务为所述目标任务中的第一个执行的子任务;依据所述第一个原子任务生成所述目标任务的原子任务状态机;在所述原子任务状态机中依据所述第一个原子任务触发所述目标任务的执行,包括:在所述原子任务状态机中触发所述第一个原子任务的
\t执行;判断所述第一个原子任务是否执行成功,如果是,则依据执行所述第一个原子任务产生的结果数据确定并执行所述目标任务的第二个原子任务,以此类推,直至所述目标任务的最后一个原子任务都成功执行;如果所述目标任务的任一个原子任务执行失败,则跳出所述原子任务状态机。5.根据权利要求4所述的方法,其特征在于,在所述目标任务的原子任务执行成功的情况下,还包括:将所述执行成功的原子任务的结果数据按照其所属的目标任务存储至所述分布式数据库中;在所述目标任务的原子任务执行失败的情况下,还包括:将所述目标任务的原子任务执行失败的信息按照其所属的目标任务存储至所述分布式数据库中。6.根据权利要求5所述的方法,其特征在于,在某个原子任务执行失败的情况下,还包括:依据所述执行失败的原子任务的上一个原子任务成功执行的结果数据,重新执行所述执行失败的原子任务。7.根据权利要求2所述的方法,其特征在于,所述预处理过程还包括:判断用户提交的输入信息是否表示执行新任务,如果是,则执行按照预先设置的任务格式生成待执行的初始任务的步骤;如果否,则根据所述输入信息从分布式数据库中查询对应的详情数据以供显示。8.一种基于分布式数据库的任务执行装置,其特征在于,该装置...

【专利技术属性】
技术研发人员:饶志涛
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1