CN110362397B - 一种具有延迟约束功能的气泡执行方法 - Google Patents

一种具有延迟约束功能的气泡执行方法 Download PDF

Info

Publication number
CN110362397B
CN110362397B CN201910668313.7A CN201910668313A CN110362397B CN 110362397 B CN110362397 B CN 110362397B CN 201910668313 A CN201910668313 A CN 201910668313A CN 110362397 B CN110362397 B CN 110362397B
Authority
CN
China
Prior art keywords
bubble
bubbles
query
execution
ready
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.)
Active
Application number
CN201910668313.7A
Other languages
English (en)
Other versions
CN110362397A (zh
Inventor
赵志强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Harbin Huituo Investment Center LP
Original Assignee
Harbin Huituo Investment Center LP
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Harbin Huituo Investment Center LP filed Critical Harbin Huituo Investment Center LP
Priority to CN201910668313.7A priority Critical patent/CN110362397B/zh
Publication of CN110362397A publication Critical patent/CN110362397A/zh
Application granted granted Critical
Publication of CN110362397B publication Critical patent/CN110362397B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种具有延迟约束功能的气泡执行方法,本发明涉及气泡执行方法。本发明的目的是为了解决现有查询处理过程中的计算效率和可控度低的问题。过程为:引入查询优化器,将所有的查询语句分成若干查询计划,查询计划由有向无环图组成;将有向无环图划分为子图;若气泡中所有任务的输入都已经准备好,进入气泡队列,否则等待气泡准备好;若气泡中全部任务执行成功,将气泡从队列中移除;若气泡中某一任务执行失败,故障传播到同一气泡中的其他任务,将气泡移除队列,当失败的任务准备好,将气泡重新推送至气泡队列;若多个气泡的执行总代价没有超过数据库***要求的执行事务的代价上限,则气泡之间并行执行;否则串行执行。本发明用于气泡执行领域。

Description

一种具有延迟约束功能的气泡执行方法
技术领域
本发明涉及气泡执行方法。
背景技术
随着数据量规模逐步增大和数据操作复杂性的逐步提高,亟需一种显著降低查询执行延迟性和容错性的数据***,目前存在的***大多采用优化文件格式和改进查询算法的方法来降低容错率,但当数据量增长到成百上千个数据节点时,并行数据库方法变得极度昂贵而不再适用。交互式查询引擎解决了实时分析的需求,但使用的群执行方法在计算调用数千个操作符的复杂查询时,计算所占用资源超过执行所需,此外为了保证容错性,需要在相应执行操作器上保持中间数据而增加了延迟。
文章“Bubble Exection:Resource-aware Reliable Analytics at CloudScale”提出了一种新的用于云规模交互式工作负载下的查询处理框架,即气泡执行方法。该框架以JetScope的可伸缩架构为基础,将计算计划分离为很多小任务,执行任务排序、冗余任务消除和任务预测提取等工作。通过引入基于成本的查询优化器,采用启发式算法产生具有最佳分布式执行计划的气泡。在框架的组织阶段引入作业管理器,在避免资源浪费和死锁的前提下平滑调度气泡,在进行任务调度管理时,将任务按照优先级排序后按序分配。将任务分派给选定的计算节点,从节点收集并采用不同的策略来处理集群状态。气泡内部的任务连接采用管道通道形式,数据在内存与通道间流通,降低延迟量;气泡间的任务利用可恢复通道连接,在发生故障时使用者可以在任何节点快速读取数据。
文章“Bubble Exection:Resource-aware Reliable Analytics at CloudScale”提出的气泡执行方法进行交互式工作负载下的大规模数据量查询任务,在有效保持低查询延迟的同时提高了容错能力。但其中按照任务优先级进行任务调度管理时,采用***默认的排序方法,忽视了用户需求,根据实时性执行气泡执行方法不完全实现数据回滚。因此仅靠***进行任务调度不能很好的解决实时性执行需求,仍需进一步改进,以提高查询处理过程中的计算效率和可控度。
发明内容
本发明的目的是为了解决现有气泡执行方法按照任务优先级进行任务调度管理时,采用***默认的排序方法,忽视了用户需求,导致查询处理过程中的计算效率和可控度低的问题,而提出一种具有延迟约束功能的气泡执行方法。
一种具有延迟约束功能的气泡执行方法,其特征在于:所述方法具体过程为:
步骤一、引入查询优化器,将所有的查询语句分成若干查询计划,查询计划由有向无环图组成;
查询优化器采用贪心算法,将有向无环图划分为子图,每个子图称为一个气泡,每个气泡有自己的ID,即每个查询语句由多个气泡组成,每个气泡中有多个任务;
所述多个为大于等于2个;
步骤二、在每个气泡内部有一个队列,若气泡中所有任务的输入都已经准备好,则该气泡已经准备好,准备好的气泡进入气泡队列,气泡队列中全是已经准备好的气泡;
若气泡没有准备好,等待数据准备好;
若气泡中全部任务执行成功,则该气泡执行成功,则保存气泡执行的结果,将气泡从队列中移除;
若气泡中某一任务执行失败,故障将通过管道通道传播到同一气泡中的其他任务,将执行失败的气泡中失败的任务按照故障到达时间的顺序移入泡沫队列,并且当前气泡从气泡队列移除;当执行失败的气泡中失败的任务准备好时,将对应气泡重新推送至气泡队列;
若某个气泡要优先执行,就在对应气泡准备好之后,直接进行执行,而不是在气泡序列中按照查询语句的顺序执行;
若不存在某个气泡要优先执行,则在气泡序列中按照查询语句的顺序执行;
步骤三、若多个气泡的执行总代价没有超过数据库***要求的执行事务的代价上限,并且所访问的数据也互不冲突,则气泡之间并行执行;
若多个气泡的执行总代价超过数据库***要求的执行事务的代价上限,并且所访问的数据也互不冲突,则气泡之间串行执行;
若多个气泡的执行总代价超过数据库***要求的执行事务的代价上限,并且所访问的数据互相冲突,则等待,直至数据顺利访问,气泡之间串行执行;
每个查询语句的执行结果按照用户的要求输出即可,若用户没有要求指定结果输出顺序,则就按照查询语句的顺序输出结果。
本发明的有益效果为:
本发明的目的在于提出了一种能够依据用户需求进行延迟约束的气泡执行方法,由用户制定排列任务计算顺序,实现具有更高可控度的用于云规模交互式工作负载下的大规模数据查询处理框架。
本发明的关键点有二,其一在于由用户自主控制执行顺序,根据自身需求安排气泡序列,并将任务按照优先级排序后采用不同的策略来处理输出,使得重要度较高或发生故障失效的气泡能够以更快的速度解决,提高了查询计算效率并降低了计算成本。
其二在于以JetScope的可伸缩架构为基础,继承了气泡执行方法中的查询优化器和作业管理器,实现了最优气泡的生成和任务调度,与群执行方法相比,具有低延迟量和失效容错的性能。
与现有的方法相比,本发明提出的气泡执行方法非常适用于云规模下交互式工作负载的处理过程,避免了群执行方法在大规模数据处理时的延迟量高、失效死锁问题。同时,本方法考虑用户实际需求控制任务执行顺序调度气泡,有利于提高查询处理过程中的计算效率和可控性。
相同数量的查询语句使用本发明效率最高可在现有方法基础上提升50%。
附图说明
图1为本发明任务优先级排序示意图,B代表分区块(block),T代表一些操作(transaction),T03是合并,T02是连接,T04是合计,首先在B03中存着很多初步划分的气泡(1-100),这些基本气泡中的操作可以是分区操作,然后气泡101-125中有更复杂的操作,例如合并和连接等,要用到1-100中气泡的数据,然后执行完后,最后101-125气泡中的数据汇总到气泡126中,计算最终结果,这个图显示了一个查询语句从最基本的底层一点点向上执行,最终得出结果的过程。
具体实施方式
具体实施方式一:本实施方式一种具有延迟约束功能的气泡执行方法具体过程为:
步骤一、引入查询优化器,其作用是将查询语言按照查询数据库的逻辑,转换成高效的、分布式的物理查询计划(例如先访问A数据库的m表,再访问B数据库的n表),将所有的查询语句分成若干查询计划,查询计划由有向无环图(DAG)组成(例如上面的例子,就是有一个节点U表示“A数据库m表”,另一个节点V表示“B数据库n表”,在U和V之间有一条U指向V的边,代表先执行U,再执行V);
查询优化器采用贪心算法,将有向无环图划分为一个个子图,每个子图称为一个气泡,为气泡分配合适的内存(内存大小以及划分方法由贪心算法决定,贪心的目标可以是最终占用内存最小、并行性最好等等,由用户决定),每个气泡有自己的ID,即每个查询语句由多个气泡组成,每个气泡中有多个任务;
所述多个为大于等于2个;
步骤二、使用两阶段调用算法(第一阶段:任务准备好进入气泡内部中的队列;第二阶段:气泡准备好进入气泡队列),在每个气泡内部有一个队列(每个气泡为一个子图,按照子图中节点的拓扑顺序排序),若气泡中所有任务的输入都已经准备好,则该气泡已经准备好,准备好的气泡进入气泡队列,气泡队列中全是已经准备好的气泡;
若气泡没有准备好,意味着气泡中的任务所需访问的部分数据还不能顺利读出来,这时候等待数据准备好即可(数据准备好,任务才能访问,任务才能准备好);
若气泡中全部任务执行成功,则该气泡执行成功,则保存气泡执行的结果,将气泡从队列中移除;
若气泡中某一任务执行失败,故障将通过管道通道传播到同一气泡中的其他任务,将执行失败的气泡中失败的任务按照故障到达时间的顺序移入泡沫队列(这将进一步导致该气泡中的所有任务重新运行,因此它们将首先按照故障到达时间的顺序移入泡沫队列(专门存储执行失败的气泡中的失败的任务)),并且当前气泡从气泡队列移除;按照上面的两阶段调度逻辑,当执行失败的气泡中失败的任务准备好时,将对应气泡重新推送至气泡队列;本算法中气泡内部任务之间采用管道通道的形式进行连接,实现高性能和低资源利用率。
若某个气泡要优先执行,就在对应气泡准备好之后,直接进行执行,而不是在气泡序列中按照查询语句的顺序执行(和准备好的气泡进入气泡队列的顺序是一个顺序);
若不存在某个气泡要优先执行,则在气泡序列中按照查询语句的顺序执行(和准备好的气泡进入气泡队列的顺序是一个顺序);
步骤三、若多个气泡的执行总代价(用户预先设定,例如设定内存占用限制为单个任务最大占用内存5MB)没有超过数据库***要求的执行事务(用户设置的,数据库执行单个事务的代价,比如内存限制、时间限制)的代价(气泡准备好之后,意味着气泡中所有的任务所要访问的数据都准备好,也就意味着要访问的数据已经读入到内存中,这里代价指的就是占用内存等数据,可以预先估计出来)上限,并且所访问的数据也互不冲突,则气泡之间并行执行;
若多个气泡的执行总代价(用户预先设定,例如设定内存占用限制为单个任务最大占用内存5MB)超过数据库***要求的执行事务(用户设置的,数据库执行单个事务的代价,比如内存限制、时间限制)的代价(气泡准备好之后,意味着气泡中所有的任务所要访问的数据都准备好,也就意味着要访问的数据已经读入到内存中,这里代价指的就是占用内存等数据,可以预先估计出来)上限,并且所访问的数据也互不冲突,则气泡之间串行执行(一个一个气泡执行);
若多个气泡的执行总代价(用户预先设定,例如设定内存占用限制为单个任务最大占用内存5MB)超过数据库***要求的执行事务(用户设置的,数据库执行单个事务的代价,比如内存限制、时间限制)的代价(气泡准备好之后,意味着气泡中所有的任务所要访问的数据都准备好,也就意味着要访问的数据已经读入到内存中,这里代价指的就是占用内存等数据,可以预先估计出来)上限,并且所访问的数据互相冲突,则等待,直至数据顺利访问,气泡之间串行执行(一个一个气泡执行);
每个查询语句的执行结果按照用户的要求输出即可,若用户没有要求指定结果输出顺序,则就按照查询语句的顺序输出结果。
具体实施方式二:本实施方式与具体实施方式一不同的是,所述步骤一中查询优化器为MySQL中的查询优化器。
其它步骤及参数与具体实施方式一相同。
具体实施方式三:本实施方式与具体实施方式一或二不同的是,所述步骤二中已经准备好的气泡为任务所要访问的数据都可以访问到,数据上没有被加锁。
其它步骤及参数与具体实施方式一或二相同。
具体实施方式四:本实施方式与具体实施方式一至三之一不同的是,所述步骤二中执行失败的气泡中失败的任务准备好的过程为:
气泡间采用恢复通道进行连接,在失效节点迅速恢复数据,降低气泡重新运行成本。
其它步骤及参数与具体实施方式一至三之一相同。
本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,本领域技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (4)

1.一种具有延迟约束功能的气泡执行方法,其特征在于:所述方法具体过程为:
步骤一、引入查询优化器,将所有的查询语句分成若干查询计划,查询计划由有向无环图组成;
查询优化器采用贪心算法,将有向无环图划分为子图,每个子图称为一个气泡,每个气泡有自己的ID,即每个查询语句由多个气泡组成,每个气泡中有多个任务;
所述多个为大于等于2个;
步骤二、在每个气泡内部有一个队列,若气泡中所有任务的输入都已经准备好,则该气泡已经准备好,准备好的气泡进入气泡队列,气泡队列中全是已经准备好的气泡;
若气泡没有准备好,等待数据准备好;
若气泡中全部任务执行成功,则该气泡执行成功,则保存气泡执行的结果,将气泡从队列中移除;
若气泡中某一任务执行失败,故障将通过管道通道传播到同一气泡中的其他任务,将执行失败的气泡中失败的任务按照故障到达时间的顺序移入泡沫队列,并且当前气泡从气泡队列移除;当执行失败的气泡中失败的任务准备好时,将对应气泡重新推送至气泡队列;
若某个气泡要优先执行,就在对应气泡准备好之后,直接进行执行,而不是在气泡序列中按照查询语句的顺序执行;
若不存在某个气泡要优先执行,则在气泡序列中按照查询语句的顺序执行;
步骤三、若多个气泡的执行总代价没有超过数据库***要求的执行事务的代价上限,并且所访问的数据也互不冲突,则气泡之间并行执行;
若多个气泡的执行总代价超过数据库***要求的执行事务的代价上限,并且所访问的数据也互不冲突,则气泡之间串行执行;
若多个气泡的执行总代价超过数据库***要求的执行事务的代价上限,并且所访问的数据互相冲突,则等待,直至数据能访问,气泡之间串行执行;
每个查询语句的执行结果按照用户的要求输出即可,若用户没有要求指定结果输出顺序,则就按照查询语句的顺序输出结果。
2.根据权利要求1所述一种具有延迟约束功能的气泡执行方法,其特征在于:所述步骤一中查询优化器为MySQL中的查询优化器。
3.根据权利要求1或2所述一种具有延迟约束功能的气泡执行方法,其特征在于:所述步骤二中已经准备好的气泡为任务所要访问的数据都能访问到,数据上没有被加锁。
4.根据权利要求3所述一种具有延迟约束功能的气泡执行方法,其特征在于:所述步骤二中执行失败的气泡中失败的任务准备好的过程为:
气泡间采用恢复通道进行连接,在失效节点恢复数据。
CN201910668313.7A 2019-07-23 2019-07-23 一种具有延迟约束功能的气泡执行方法 Active CN110362397B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910668313.7A CN110362397B (zh) 2019-07-23 2019-07-23 一种具有延迟约束功能的气泡执行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910668313.7A CN110362397B (zh) 2019-07-23 2019-07-23 一种具有延迟约束功能的气泡执行方法

Publications (2)

Publication Number Publication Date
CN110362397A CN110362397A (zh) 2019-10-22
CN110362397B true CN110362397B (zh) 2023-04-21

Family

ID=68219851

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910668313.7A Active CN110362397B (zh) 2019-07-23 2019-07-23 一种具有延迟约束功能的气泡执行方法

Country Status (1)

Country Link
CN (1) CN110362397B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105279286A (zh) * 2015-11-27 2016-01-27 陕西艾特信息化工程咨询有限责任公司 一种交互式大数据分析查询处理方法
CN105574524A (zh) * 2015-12-11 2016-05-11 北京大学 基于对白和分镜联合识别的漫画图像版面识别方法和***

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100077403A1 (en) * 2008-09-23 2010-03-25 Chaowei Yang Middleware for Fine-Grained Near Real-Time Applications
US20150046207A1 (en) * 2013-08-08 2015-02-12 Hurd Hollis T System, Method, and Computer Program Product for Automatically Scheduling a Plurality of Tasks
CN104283967B (zh) * 2014-10-23 2018-07-13 武汉华大优能信息有限公司 一种基于物联网数据采集的第三方数据服务***
CN108345501B (zh) * 2017-01-24 2021-10-29 全球能源互联网研究院有限公司 一种分布式资源调度方法和***
CN108595254B (zh) * 2018-03-09 2022-02-22 北京永洪商智科技有限公司 一种查询调度方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105279286A (zh) * 2015-11-27 2016-01-27 陕西艾特信息化工程咨询有限责任公司 一种交互式大数据分析查询处理方法
CN105574524A (zh) * 2015-12-11 2016-05-11 北京大学 基于对白和分镜联合识别的漫画图像版面识别方法和***

Also Published As

Publication number Publication date
CN110362397A (zh) 2019-10-22

Similar Documents

Publication Publication Date Title
CN105117286B (zh) MapReduce中任务的调度方法和流水化执行方法
CN105808334B (zh) 一种基于资源重用的MapReduce短作业优化***及方法
US20170185648A1 (en) Optimizing skewed joins in big data
WO2016107488A1 (zh) 一种流图优化方法及其装置
EP3391214B1 (en) Processing data using dynamic partitioning
CN111079921A (zh) 一种基于异构分布式***的高效神经网络训练调度方法
US20150074669A1 (en) Task-based modeling for parallel data integration
US20150032758A1 (en) High Performance Index Creation
CN101593132B (zh) 基于线程构造模块的多核并行模拟退火方法
CN105700941A (zh) 三维调度器模型及其调度算法
US20080127145A1 (en) Methods and apparatus to optimize the parallel execution of software processes
US9400680B2 (en) Transportation network micro-simulation with pre-emptive decomposition
CN112286917B (zh) 数据处理方法、装置、电子设备和存储介质
Senthilkumar et al. A survey on job scheduling in big data
CN107943568A (zh) 综合模块化航空电子***两级调度模型与原型平台
CN112015765B (zh) 基于缓存价值的Spark缓存淘汰方法及***
CN113822173A (zh) 基于节点归并和路径预测的行人属性识别训练加速方法
Yang et al. Improving Spark performance with MPTE in heterogeneous environments
CN105138405A (zh) 基于待释放资源列表的MapReduce任务推测执行方法和装置
CN114756629A (zh) 基于sql的多源异构数据交互分析引擎及方法
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
Henzinger et al. Scheduling large jobs by abstraction refinement
CN110262896A (zh) 一种面向Spark***的数据处理加速方法
CN110362397B (zh) 一种具有延迟约束功能的气泡执行方法
CN110245022B (zh) 海量数据下并行Skyline处理方法及***

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