CN110058932B - 一种用于数据流驱动计算的存储方法和存储系统 - Google Patents

一种用于数据流驱动计算的存储方法和存储系统 Download PDF

Info

Publication number
CN110058932B
CN110058932B CN201910318779.4A CN201910318779A CN110058932B CN 110058932 B CN110058932 B CN 110058932B CN 201910318779 A CN201910318779 A CN 201910318779A CN 110058932 B CN110058932 B CN 110058932B
Authority
CN
China
Prior art keywords
task
path
node
storage
execution
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
CN201910318779.4A
Other languages
English (en)
Other versions
CN110058932A (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.)
Shenzhen Institute of Advanced Technology of CAS
Original Assignee
Shenzhen Institute of Advanced Technology of CAS
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 Shenzhen Institute of Advanced Technology of CAS filed Critical Shenzhen Institute of Advanced Technology of CAS
Priority to CN201910318779.4A priority Critical patent/CN110058932B/zh
Publication of CN110058932A publication Critical patent/CN110058932A/zh
Application granted granted Critical
Publication of CN110058932B publication Critical patent/CN110058932B/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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种用于数据流驱动计算的存储方法和存储系统。该方法包括:根据数据流驱动计算的执行顺序的关联关系构建任务路径图,其中,每条任务路径包含涉及输入/输出操作的多个任务节点;基于所述任务路径图,根据任务执行时长选择任务路径作为第一关键路径;对于所述第一关键路径上的任务节点标记优先级标签并调度分配给相应的计算节点;所述计算节点基于所述优先级标签控制执行接收的任务,以实现数据读取。本发明的存储方法和存储系统能够提高数据流驱动计算的处理效率。

Description

一种用于数据流驱动计算的存储方法和存储系统
技术领域
本发明涉及计算机技术领域,尤其涉及一种用于数据流驱动计算的存储方法和存储系统。
背景技术
数据流驱动计算一般是由一组具有不同功能的、复杂的、有数据依赖关系的程序组成,共同完成一个良好定义的计算作业。随着大数据处理技术的出现,数据流驱动计算变得越来越数据密集型。数据流驱动计算的数据密集性特征决定了调度任务的I/O(输入/输出)操作通常是整个计算的性能瓶颈,存储访问的性能逐渐超越计算资源的局限成为制约数据流计算效率的主要瓶颈。为了解决这一难题,近些年在存储设备方面出现了一些新技术,例如,SSD(Solid State Drive)固态盘拥有的低I/O延迟,高数据带宽以及低能耗等优势使其正在成为高性能计算的新宠。但由于价格和一些物理特性的限制,在实际中,大规模地应用SSD代替传统的硬盘HDD(Hard Disk Drive)的情况并不多见。因此,对于数据中心集群中大多数的服务器,存储还是以HDD与SSD的混合形式为多。
在现有技术中,存在软件定义存储方法,软件定义存储通过将数据访问和数据服务从硬件资源池中分离将硬件存储资源整合起来,并以软件的方式对这些资源进行定义,用户可以根据应用策略来配置和使用存储服务,并将这些资源部署在一系列优化的硬件乃至数据中心的多种硬件之上,以实现动态适应应用负载的存储服务。
在工业界,作为软件定义数据中心的重要支撑,软件定义存储的基础架构多是以存储的抽象化、池化和自动化为主要特征。存储软件在每个节点汇集存储资源,所有这些分布的存储资源被整合起来形成一个单一的共享存储池,以统一的虚拟盘方式进行分配。例如,VMWare的VSAN和DataCore的Virtual SAN。与这两个基于块级数据面(data plane)的架构不同,IBM利用其为大规模数据共享应用而设计的并行文件系统GPFS为软件定义的基础设施实现了一个超融合系统,其中GPFS提供了一个跨所有服务器的全局优化的数据面,使得应用程序免受数据位置和网络互连类型的影响。GPFS获得这一优势的手段就是条带化数据并将它们分配到不同的服务器和虚拟盘池中,同时通过虚拟的NSD基础设施提供对所有资源的共享访问。与VMWare VSAN和DataCore的Virtual SAN相比,IBM的架构功能上更加强大和多样化,但它需要一个共享的分布式文件系统支持。上述这三种架构的优点是能够消除增加额外存储控制器的成本和复杂性,并且这些架构都可以使用服务器级别的存储介质,而不是企业级硬盘和闪存存储,这两个功能相结合极大地降低了成本。
相较于工业界对虚拟化的强调,学术界的涵盖面更加周全,专注于软件定义的概念在存储系统栈各个层级的应用。如来自MIT的Beckmann和Sanchez针对共享Caches的两个基本限制(即可扩展性和相互干扰性问题)提出了Jigsaw。Jigsaw克服了已有研究成果的局限性(即解决了一个限制却以恶化另一个为代价),能同时解决可扩展性和相互干扰性这两类限制。在Jigsaw中,硬件允许软件定义一些shares并把数据映射到shares,shares是由一堆Cache bank分区的集合组成的虚拟Caches,用来对数据的放置和存储分配以软件的方式进行控制,从而提高Cache的利用率和数据的就近访问。在软件定义的存储体系结构方面,另一个值得注意的工作是微软研究院Thereska等人的工作。他们发现数据中心中发出I/O操作的地方到存储器的路径长而复杂,包括许多层级和阶段,使控制I/O流性能的端到端的策略很难施行。这些策略一般要求沿流路径上进行I/O分化(I/O differentiation)并且要在控制面(control plane)上全局可见。为解决这个问题,他们提出了IOFlow,其是一种利用逻辑上成中心控制的面板去使能高层级流策略。IOFlow在数据面阶段加入了一个队列抽象并把它显露给控制器,控制器可以把策略翻译成各个阶段的排队规则。
数据流管理系统支持科研人员可对复杂计算流程进行描述、修改、运行、重运行和监控,并能自动调配资源,控制数据流任务的执行顺序,保证任务在多种约束条件下顺利完成。通常数据流系统由流定义和流引擎两大模块组成。流定义利用定义工具根据用户的需求进行任务组合并形成抽象的数据流描述,该描述一般以有向无环图DAG为模型来表示数据流中的任务以及任务间的数据依赖关系。在流定义之后,用户将数据流描述及用户定义的约束一起发送到流引擎,由流引擎对抽象的数据流进行解析、调度、执行和监控。在这个过程中,数据流的调度优化是至关重要的一个环节,关乎着系统资源的利用效果和整个数据执行的性能。
数据流调度是对数据流结构进行评估,并在满足数据流作业约束以及用户约束的条件下,将作业合理地分配到各资源的过程。围绕这一问题,国内外均有大量的研究工作,针对不同的应用场景分别提出了多种调度算法。特别地,在有存储约束条件的情况下,已有一些工作考虑了如何充分有效地利用存储资源,高效地完成数据流计算。如Bent等人基于BAD FS提出了存储空间感知的(capacity-aware)调度。该调度由一个中心批调度器通过为来自多个流水线数据流实例的任务仔细分配存储卷的方式来实现,避免了存储空间的溢出和缓存的颠簸(cache thrashing)。Ramakrishnan等人考虑了具有一般DAG形状的数据密集型的数据流驱动计算在多个具有存储约束的分布式计算节点间的调度问题,而Vairavanathan等人则提出了支持基于单个文件访问的数据流优化技术,通过将数据的位置暴露给流引擎的方式实现了数据感知的数据流调度。
综上,针对数据中心环境下数据流驱动计算面临的存储瓶颈带来的挑战,现有的研究主要从“软件定义存储”和“数据流调度与管理”两个角度来解决,两种研究取得了一定成果,但是本质上隔离了集群存储调度与数据流计算。目前围绕混合软件定义存储的研究多是针对单个程序的冷热数据,鲜有考虑程序之间的数据依赖关系并藉此进行存储优化,也并没有针对数据流驱动计算提供特别的控制、支持和优化。并且,数据流的管理调度对计算环境的感知应对策略缺乏灵活性,感知策略的实现多是预定义在系统或中间件中的,缺少灵活的动态控制,增加了为应对环境变化进行优化的困难,从而影响了计算的整体执行性能。
因此,需要对现有技术进行改进,以提供改进的用于数据流驱动计算的存储方法和存储系统。
发明内容
本发明的目的在于克服上述现有技术的缺陷,提供一种用于数据流驱动计算的存储方法和存储系统。
根据本发明的第一方面,提供了一种用于数据流驱动计算的存储方法,该方法包括以下步骤:
步骤S1:根据数据流驱动计算的执行顺序的关联关系构建任务路径图,其中,每条任务路径包含涉及输入/输出操作的多个任务节点;
步骤S2:基于所述任务路径图,根据任务执行时长选择任务路径作为第一关键路径;
步骤S3:对于所述第一关键路径上的任务节点标记优先级标签并调度分配给相应的计算节点;
步骤S4:所述计算节点基于所述优先级标签控制执行接收的任务,以实现数据读取。
在一个实施例中,步骤S2包括:
基于任务执行时长和存储资源的使用情况从所述任务路径图中选择一条或多条任务路径构建为关键路径结构树,其中,结构树中每一层的节点保存从任务开始到当前任务节点的任务执行时长,并且每一层的节点都由一个链表串接;
遍历所述关键路径结构树的最底层节点,选择总的任务执行时长最高的任务路径作为所述第一关键路径。
在一个实施例中,在步骤S2中,还包括以下步骤来执行所述关键路径结构树的迭代更新:
将已经执行的所述第一关键路径从所述关键路径结构树中删除,并将所述第一关键路径中的每一个节点从每一层的链表中删除;
从所述关键路径结构树对应的第二层链表开始,在每一层的链表中,寻找包含在所述第一关键路径中的相邻任务节点;
在执行删除操作之后的关键路径结构树中,将所找到的相邻任务节点之间的任务执行时长减掉,获得迭代更新后的关键路径结构树。
在一个实施例中,所述关键路径结构树中包含的任务路径数目根据实时监测的存储资源使用情况确定。
在一个实施例中,步骤S3包括:
基于任务节点对执行性能的影响力标记优先级标签;
设置控制任务节点执行的规则;
基于存储资源的使用情况将所述第一关键路径的任务节点分配给相应计算节点。
根据本发明的第二方面,提供了一种用于数据流驱动计算的存储系统,该系统包括中心存储控制器、数据流调度器,节点级控制面和异构存储模块,其中:
所述中心存储控制器用于根据数据流驱动计算的执行顺序的关联关系构建任务路径图,每条任务路径包含涉及输入/输出操作的多个任务节点;
所述数据流调度器用于从所述任务路径图中根据任务执行时长选择任务路径作为第一关键路径;
所述中心存储控制器还用于对于所述第一关键路径上的任务节点标记优先级标签并调度分配给相应的计算节点的节点级控制面;
所述节点级控制面用于基于所述优先级标签控制执行接收到任务,以实现针对所述异构存储模块的数据读取。
在一个实施例中,所述数据流调度器用于执行以下步骤:
基于任务执行时长和存储资源的使用情况从所述任务路径图中选择一条或多条任务路径构建为关键路径结构树,其中,结构树中每一层的节点保存从任务开始到当前任务节点的任务执行时长,并且每一层的节点都由一个链表串接;
遍历所述关键路径结构树的最底层节点,选择总的任务执行时长最高的任务路径作为所述第一关键路径。
在一个实施例中,所述异构存储模块包括SSD和HDD,所述关键路径结构树包含的任务路径数目由SSD的资源使用情况确定。
在一个实施例中,所述节点级控制面存储以下信息中的至少一项:异构存储模块的分配规则和策略、存储资源的使用信息、存储资源的触发事件;所述中心存储控制器存储以下信息中的至少一项:从所述数据流调度器获得的数据流任务及其关联的读写文件信息;数据流任务使用资源的规则;对性能和资源利用率的要求;计算节点的资源使用情况。
与现有技术相比,本发明的优点在于:
1)、利用软件定义存储架构将数据流调度与底层的文件系统联系起来,将数据流驱动计算与底层异构存储系统相融合,突破传统数据流计算在这两者间的藩篱,令彼此共享对方的信息,以达到同时优化任务调度和数据存储的目的;
2)、提供了用于加速异构存储上的数据流驱动计算的动态调动方法,不同于传统调度方法,该动态调动方法以加速关键路径上的任务为目的,通过反复迭代优化关键路径上的I/O操作,降低整个数据流计算的时间。
附图说明
以下附图仅对本发明作示意性的说明和解释,并不用于限定本发明的范围,其中:
图1示出了根据本发明一个实施例的用于数据流驱动计算的存储系统的架构图;
图2示出了根据本发明一个实施例的用于数据流驱动计算的存储方法的流程图;
图3示出了根据本发明一个实施例的数据流DAG的示意图;
图4示出了根据本发明另一实施例的数据流DAG的示意图;
图5示出了根据本发明一个实施例的关键路径结构树的示意图;
图6(a)和图6(b)示出了根据本发明一个实施例的调整关键路径结构树的示意图。
具体实施方式
为了使本发明的目的、技术方案、设计方法及优点更加清楚明了,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。
在本文示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
根据本发明的一个实施例,提供了一种用于数据流驱动计算的存储系统,参见图1所示,该系统包括中心存储控制器110、数据流调度器120、多个集群节点130、异构存储模块140。其中,示出了两个集群节点(Host1和Host2),每个集群节点各包括一个节点级控制面(表示为Ctrl P);异构存储模块140包括SSD和HDD;中心存储控制器110、数据流调度器120、集群节点130和异构存储模块中的SSD和HDD之间可通过高速网络连接(High SpeedNetwork);中心存储控制器110与节点级控制面、异构存储模块140具有通信连接,集群节点130和异构存储模块140进行交互,实现文件或数据的读写等I/O操作。
在图1的实施例中,中心存储控制器110、数据流调度器120、节点级控制面可采用软件定义架构实现,异构存储模块140可以是HPC文件系统,相对于HDD,SSD可实现更高速的数据读取,并且数据可在HDD和SSD之间迁移。应理解的是,异构存储模块140中还可以包括其他类型的存储设备,例如,既包含传统硬盘又有闪存模块的混合硬盘HHD(hybrid harddrive)。
中心存储控制器110用于基于不同任务对数据流驱动计算的整体性能的影响力来标记优先级,实现标签(tag)机制。
数据流调度器120与中心存储控制器110具有通信连接,用于从中心存储控制器110接收数据流驱动计算任务,动态筛选待执行的关键路径并将筛选结果反馈给中心存储控制器110,其中,所述关键路径是指从任务开始到任务结束执行时间最长的逻辑路径。
在一个实施例中,标签机制的原理是:对于数据流计算的整体性能而言,不同的任务有不同的影响。影响大的任务,其I/O操作对整体性能的影响可能也大。因此,这部分任务及其关联的I/O操作由中心存储控制器110标记出来,不同的tag依据对影响力的判断,赋给不同任务的I/O操作。例如,在图1中,任务J1处在非关键路径上,其关联的文件foo和bar标记为低优先级,用0表示。相反,任务J2处在关键路径上,其关联的读写文件tang和stor则标记为高优先级,用1表示,通过标记优先级为将来对这些文件的读写加速提供识别机制。
位于集群节点130中的节点级控制面从中心存储控制器110接收待执行的任务并控制各自节点上I/O操作的执行流程。
例如,在标签机制的基础上,为控制每一个集群节点的I/O操作的设计一个可编程的控制面板,在节点的任务一旦进行I/O操作,该I/O操作将根据控制面板中文件的优先级标签进行相应的流程。在另一实施例中,控制面板结构还包括一个可编程的界面,各节点的所有控制面板都和一个中心存储控制器110相连接。
在一个实施例中,节点级控制面还存储以下表格:
规则表格(Rule Table),用以记录异构存储的分配规则和策略,例如,涉及到I/O文件的摆放、复制、迁移等操作;
统计表格(Statistics Table),用于记录集群节点或异构存储模块140的资源的使用信息,例如资源使用率等;
触发表格(Trigger Table),用于记录性能触发器,例如,包括针对存储资源的各类触发事件。
在一个实施例中,中心存储控制器110存储以下表格:
数据流统计表格,用于记录从数据流调度器120获得的数据流任务及其关联的读写文件信息或者其他信息;
规则表格,用于存储数据流如何使用资源定义的规则,例如,“IOcp→fast”表示加速执行关键路径上任务的I/O操作。再如,“IOseq≥64KB→HDD”表示I/O大于64KB的顺序读HDD等。应用这些规则可对任务和关联的读写文件进行相应的标记,并最终安装到各控制面板,为将来对这些文件的读写提供识别;
触发表格,可以视为是对规则表格的一种高级扩充,“触发→动作”为资源的有效使用提供了一组主动规则(active rules),这些规则可以充分反映应用程序、系统以及用户对性能和资源利用率的要求,并将其传达给底层文件系统的I/O操作,例如,SSD的Cache的缺失率大于30%时,触发“SSD cache数据置换操作”,将SSD cache中的数据替换为经常被访问的热点数据;
资源统计表格,用于记录从各集群节点控制面收集的整个集群的资源使用情况,特别是在存储被池化的情况下,利用这些信息能够充分利用异构存储资源,提升数据流计算的整体性能。
进一步地,本发明实施例的系统还提供动作触发机制:为了帮助管理员定义资源管理策略以及对控制面板进行可编程的控制,除了提供基于优先级的规则控制,还提供更先进的基于“触发→动作”方式的可编程控制。触发器的设计基于性能指标的变化,如SSDCache的缺失率(miss rate)≤30等。触发器存储在控制面板的触发表格中,而动作(Action)最初则由管理员存放在中心控制器的表格中,然后依照存储资源的管理策略,下载安装到各控制面板相应的触发器表格项里(与相应的trigger对应)。这些策略可以由用户或数据中心管理员制定,通常与服务水平协议(SLA)和用户要求的QoS相关联。
例如,根据SSD的当前可利用资源情况,判断只能放置3条关键路径,但是随着任务的执行,资源被释放,可用资源增加,则会触发“增加可存储关键路径条数”这个动作。通过这种方式,能够提高资源利用率和任务处理效率。
基于图1的系统,本发明实施例还提供一种用于数据流驱动计算的存储方法,参见图2所示,该方法包括以下步骤:
步骤S210,利用有向无环图构建数据流驱动计算的任务路径图。
在数据流驱动的计算中,任务的执行速度与关键路径有关,即与执行时间最长的路径相关。
参见图3所示的数据流的DAG图,一个计算开始之后,b0和a0均要等到a执行结束之后才可以开始执行,而b1要等到b0执行结束之后才可以开始执行,b2要等到b1执行结束之后才可以开始执行,b3要等到b2和a1均执行结束之后才可以开始执行,在这种情况下,尽管a1先执行结束,但是只要b2还没有结束,b3就不能开始计算。
图4示出了利用DAG图所构建的任务路径图的示例,该任务路径图反映任务之间的依赖关系,其中,边上的权值表示任务节点之间的代价或开销,例如执行时长。任务路径图的构建可由中心存储控制器实现。
步骤S220,基于任务执行时长构建关键路径结构。
基于任务路径图,根据任务执行时长可建立关键路径结构,参见图5所示,该关键路径结构是包含多层的二叉树结构,每一层的节点都保存从任务开始到当前节点的总代价,并且每一层的节点都由一个链表串接起来。通过遍历最底层的链表,可以直接得到当前关键路径,即将执行时间最长的路径作为当前要处理的第一条关键路径。如图5所示,1→3→5→6是第一条关键路径。
需要说明的是,可根据任务执行时长从任务路径图中筛选出一定数目或全部的路径构建为关键路径结构(例如选择执行时间最长的3条路径),其中,选出的路径数目可根据SSD的容量确定或用户定义,关键路径结构的构建可由数据流调度器实现。
步骤S230,识别和处理关键路径上的任务并迭代更新关键路径结构。
在一个实施例中,通过动态调度算法优先识别和处理关键路径上的任务,同时在运行时与中心存储控制器交互,了解最新异构存储的使用情况及I/O操作针对不同介质带来的潜在影响,为关键任务节点分配异构存储介质进行相应的文件操作以降低整个数据流计算的时间。由于SSD空间有限,不能将所有的关键路径都放入SSD进行加速。
在一个实施例中,所提出的动态调度算法在选择出第一条关键路径之后,会对数据流DAG进行更新,因为由于关键路径上的I/O加速,其余关键路径可能变成了非关键路径(即任务执行时长不是最长),对此,算法感知后会进行相应策略的调整,然后再选择第二条关键路径。该过程反复迭代,直至达到关键路径上限条数。
例如,以图4来说明数据流动态调度算法,假设SSD只能存放两条关键路径,那么可以看出,在该数据流DAG图上,1→3→5→6是第一条关键路径。那么相应的,应该将该关键路径放入低I/O延迟的SSD中加速执行。但是当路径1→3→5→6加速后,原本的第二关键路径1→2→5→6变成非关键路径。而原本的非关键路径1→2→4→6变成了关键路径。为了应对这种变化,动态调度算法采取了如下方法来更新关键路径:
首先,为一个数据流DAG建立如图5所示的关键路径结构树,通过遍历最底层的链表,可以直接得到当前关键路径,即当前1→3→5→6是第一条关键路径。
将关键路径放入SSD之后,先将该关键路径从结构中删除,再将关键路径中的每一个节点从每一层的链表中删除,如图6(a)所示。然后,开始迭代更新。首先,从第二层链表开始,在每一层的链表中,寻找包含关键路径中的1→3。由于树中没有节点1→3,故下一步是寻找关键路径3→5。由于树中也没有3→5,接下来寻找关键路径5→6,并将所有包含5→6的路径中节点6的权值减去5→6的权值,获得如图6(b)所示的更新后的关键路径结构树。
以下是实现本发明实施例的数据流动态调度算法的代码,表1是涉及的符号含义。
Figure BDA0002033988500000101
Figure BDA0002033988500000111
表1:符号含义
Figure BDA0002033988500000112
需要说明的是,本文所述的关键路径是根据任务执行时长确定的,当描述关键路径时,涉及的关键路径条数应根据上下文确定,例如,关键路径结构树中可以包括由SSD存储的多条关键路径。
综上,相对于现有技术,数据流调度通常仅考虑数据的局部性和访问热度(如FIFO,LRU,LFU算法),而并不考虑任务的执行时间长短与关键路径之间的关系,本发明实施例提出的数据流动态调度方法,采用低延迟的存储设备优先执行关键路径上的任务,加速了关键路径上任务的I/O操作,进而提高了整体计算任务的处理速度,并且在关键路径处理过程中,实时感知存储资源的信息,动态更新关键路径结构,从而兼顾了资源利用率。
本发明实施例从软件定义存储的角度出发,融合软件定义存储的技术与数据的I/O优化,设计了支持数据流驱动计算的新型存储方法,有效管理和使用异构存储设备,实现高效的数据流驱动计算。并且,将数据流任务调度与数据中心异构的混合存储系统进行融合,使得I/O系统在集成多种异构存储设备和面临数据流计算的复杂I/O访问模式情况下,都能充分利用异构存储设备在性能、容量、成本等方面的特点,提供高速访问性能。
需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (9)

1.一种用于数据流驱动计算的存储方法,包括以下步骤:
步骤S1:根据数据流驱动计算的执行顺序的关联关系构建任务路径图,其中,每条任务路径包含涉及输入/输出操作的多个任务节点;
步骤S2:基于所述任务路径图,根据任务执行时长选择任务路径作为第一关键路径;
步骤S3:对于所述第一关键路径上的任务节点标记优先级标签并调度分配给相应的计算节点;
步骤S4:所述计算节点基于所述优先级标签控制执行接收的任务,以实现数据读取;
其中,步骤S3包括:
基于任务节点对执行性能的影响力标记优先级标签,该优先级标签用于对任务相关联的文件读写加速提供识别机制;
设置控制任务节点执行的规则;
基于存储资源的使用情况将所述第一关键路径的任务节点分配给相应计算节点。
2.根据权利要求1所述的方法,其特征在于,步骤S2包括:
基于任务执行时长和存储资源的使用情况从所述任务路径图中选择一条或多条任务路径构建为关键路径结构树,其中,结构树中每一层的节点保存从任务开始到当前任务节点的任务执行时长,并且每一层的节点都由一个链表串接;
遍历所述关键路径结构树的最底层节点,选择总的任务执行时长最高的任务路径作为所述第一关键路径。
3.根据权利要求2所述的方法,其特征在于,在步骤S2中,还包括以下步骤来执行所述关键路径结构树的迭代更新:
将已经执行的所述第一关键路径从所述关键路径结构树中删除,并将所述第一关键路径中的每一个节点从每一层的链表中删除;
从所述关键路径结构树对应的第二层链表开始,在每一层的链表中,寻找包含在所述第一关键路径中的相邻任务节点;
在执行删除操作之后的关键路径结构树中,将所找到的相邻任务节点之间的任务执行时长减掉,获得迭代更新后的关键路径结构树。
4.根据权利要求2所述的方法,其中,所述关键路径结构树中包含的任务路径数目根据实时监测的存储资源使用情况确定。
5.一种用于数据流驱动计算的存储系统,包括中心存储控制器、数据流调度器,节点级控制面和异构存储模块,其中:
所述中心存储控制器用于根据数据流驱动计算的执行顺序的关联关系构建任务路径图,每条任务路径包含涉及输入/输出操作的多个任务节点;
所述数据流调度器用于从所述任务路径图中根据任务执行时长选择任务路径作为第一关键路径;
所述中心存储控制器还用于对于所述第一关键路径上的任务节点标记优先级标签并调度分配给相应的计算节点的节点级控制面,包括基于任务节点对执行性能的影响力标记优先级标签,该优先级标签用于对任务相关联的文件读写加速提供识别机制;设置控制任务节点执行的规则;基于存储资源的使用情况将所述第一关键路径的任务节点分配给相应计算节点;
所述节点级控制面用于基于所述优先级标签控制执行接收到任务,以实现针对所述异构存储模块的数据读取。
6.根据权利要求 5所述的系统,其特征在于,所述数据流调度器用于执行以下步骤:
基于任务执行时长和存储资源的使用情况从所述任务路径图中选择一条或多条任务路径构建为关键路径结构树,其中,结构树中每一层的节点保存从任务开始到当前任务节点的任务执行时长,并且每一层的节点都由一个链表串接;
遍历所述关键路径结构树的最底层节点,选择总的任务执行时长最高的任务路径作为所述第一关键路径。
7.根据权利要求6所述的系统,其特征在于,所述异构存储模块包括SSD和HDD,所述关键路径结构树包含的任务路径数目由SSD的资源使用情况确定。
8.根据权利要求5所述的系统,其特征在于,所述节点级控制面存储以下信息中的至少一项:异构存储模块的分配规则和策略、存储资源的使用信息、存储资源的触发事件;所述中心存储控制器存储以下信息中的至少一项:从所述数据流调度器获得的数据流任务及其关联的读写文件信息;数据流任务使用资源的规则;对性能和资源利用率的要求;计算节点的资源使用情况。
9.一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现根据权利要求1至4中任一项所述方法的步骤。
CN201910318779.4A 2019-04-19 2019-04-19 一种用于数据流驱动计算的存储方法和存储系统 Active CN110058932B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910318779.4A CN110058932B (zh) 2019-04-19 2019-04-19 一种用于数据流驱动计算的存储方法和存储系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910318779.4A CN110058932B (zh) 2019-04-19 2019-04-19 一种用于数据流驱动计算的存储方法和存储系统

Publications (2)

Publication Number Publication Date
CN110058932A CN110058932A (zh) 2019-07-26
CN110058932B true CN110058932B (zh) 2021-08-27

Family

ID=67319812

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910318779.4A Active CN110058932B (zh) 2019-04-19 2019-04-19 一种用于数据流驱动计算的存储方法和存储系统

Country Status (1)

Country Link
CN (1) CN110058932B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110688097A (zh) * 2019-09-22 2020-01-14 南京信易达计算技术有限公司 高可靠高可用高性能融合型软件定义存储系统及方法
CN111104102A (zh) * 2019-11-20 2020-05-05 杭州端点网络科技有限公司 一种用于构建多业务场景自动化流水线的方法
CN111061711B (zh) * 2019-11-28 2023-09-01 同济大学 一种基于数据处理行为的大数据流卸载方法和装置
CN111258740A (zh) * 2020-02-03 2020-06-09 北京无限光场科技有限公司 一种用于启动应用程序的方法、装置和电子设备
CN111309265B (zh) * 2020-02-18 2023-06-13 深圳鲲云信息科技有限公司 基于神经网络的节点存储方法、系统、服务器及存储介质
CN111309712A (zh) * 2020-03-16 2020-06-19 北京三快在线科技有限公司 基于数据仓库的优化任务调度方法、装置、设备及介质
CN111597040B (zh) * 2020-04-30 2022-09-16 中国科学院深圳先进技术研究院 一种资源分配方法、装置、存储介质和电子设备
CN112948380A (zh) * 2021-02-24 2021-06-11 深圳壹账通智能科技有限公司 基于大数据的数据存储方法、装置、电子设备及存储介质
CN112799603B (zh) * 2021-03-02 2024-05-14 王希敏 多数据流驱动的信号处理系统的任务行为模型
CN113127698A (zh) * 2021-04-19 2021-07-16 上海同态信息科技有限责任公司 一种基于有向图的数据流向关键路径存储方法
CN115509709B (zh) * 2022-09-30 2023-06-20 中电金信软件有限公司 任务分配方法、装置、电子设备及计算机存储介质
CN117453379B (zh) * 2023-12-25 2024-04-05 麒麟软件有限公司 Linux系统中AOE网计算任务的调度方法及系统
CN117634866B (zh) * 2024-01-25 2024-04-19 中国人民解放军国防科技大学 工作流调度引擎节点间数据处理方法、装置、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101630275A (zh) * 2009-07-31 2010-01-20 清华大学 一种实现生成循环任务配置信息的方法和装置
CN101630274A (zh) * 2009-07-31 2010-01-20 清华大学 一种实现对循环任务进行软硬件划分的方法和装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7932843B2 (en) * 2008-10-17 2011-04-26 Texas Instruments Incorporated Parallel CABAC decoding for video decompression
US8520736B2 (en) * 2009-04-14 2013-08-27 Fastvdo, Llc Real-time superresolution and video transmission
US9262216B2 (en) * 2012-02-14 2016-02-16 Microsoft Technologies Licensing, LLC Computing cluster with latency control
CN103473134B (zh) * 2013-09-23 2016-08-17 哈尔滨工程大学 一种异构多核处理器的依赖任务调度方法
US9690555B2 (en) * 2015-06-29 2017-06-27 International Business Machines Corporation Optimization of application workflow in mobile embedded devices
CN105117286B (zh) * 2015-09-22 2018-06-12 北京大学 MapReduce中任务的调度方法和流水化执行方法
US10152349B1 (en) * 2016-09-27 2018-12-11 Juniper Networks, Inc. Kernel scheduling based on precedence constraints and/or artificial intelligence techniques
CN107193495A (zh) * 2017-05-19 2017-09-22 深圳大学 一种分布式计算系统及其数据处理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101630275A (zh) * 2009-07-31 2010-01-20 清华大学 一种实现生成循环任务配置信息的方法和装置
CN101630274A (zh) * 2009-07-31 2010-01-20 清华大学 一种实现对循环任务进行软硬件划分的方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A case study of task priority effects in GA for cluster based DAG scheduling;Hongliang Lu;《2015 International Conference on Information Society (i-Society)》;20160104;第157-162页 *
基于剖析信息和关键路径长度的软件扇出树生成算法;曾斌等;《计算机科学》;20100315;第248-252页 *

Also Published As

Publication number Publication date
CN110058932A (zh) 2019-07-26

Similar Documents

Publication Publication Date Title
CN110058932B (zh) 一种用于数据流驱动计算的存储方法和存储系统
US20200364089A1 (en) Data storage resource allocation in managing data storage operations
US20200371879A1 (en) Data storage resource allocation by performing abbreviated resource checks of certain data storage resources to detrmine whether data storage requests would fail
US9442760B2 (en) Job scheduling using expected server performance information
Cho et al. Natjam: Design and evaluation of eviction policies for supporting priorities and deadlines in mapreduce clusters
US10467152B2 (en) Dynamic cache management for in-memory data analytic platforms
CN103098014B (zh) 存储系统
US8332862B2 (en) Scheduling ready tasks by generating network flow graph using information receive from root task having affinities between ready task and computers for execution
CN100407152C (zh) 多策略资源调度的方法和系统
CN103067425A (zh) 虚拟机创建方法、虚拟机管理系统及相关设备
CN107077300A (zh) 用于平衡分段清除与i/o工作负载的速率匹配技术
JP4801761B2 (ja) データベース管理方法およびシステム並びにその処理プログラム
US11556391B2 (en) CPU utilization for service level I/O scheduling
Chen et al. Pufferfish: Container-driven elastic memory management for data-intensive applications
CN116391175A (zh) 自动缩放用于企业级大数据工作负载的查询引擎
CN114610497A (zh) 容器调度方法、集群系统、装置、电子设备及存储介质
Chen et al. Preemptive and low latency datacenter scheduling via lightweight containers
JP6115575B2 (ja) データセット多重度変更装置、サーバ、データセット多重度変更方法、およびコンピュータ・プログラム
JP5810918B2 (ja) スケジューリング装置、スケジューリング方法及びプログラム
Chen et al. Data prefetching and eviction mechanisms of in-memory storage systems based on scheduling for big data processing
Soosai et al. Dynamic replica replacement strategy in data grid
Song et al. Memory management optimization strategy in Spark framework based on less contention
JP2012181673A (ja) リソース割当装置、リソース割当方法、およびプログラム
Bang et al. Design and Implementation of Burst Buffer Over-Subscription Scheme for HPC Storage Systems
Monti et al. /Scratch as a cache: Rethinking HPC center scratch storage

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