System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机系统,尤其涉及一种基于协程的近数据处理系统及方法。
技术介绍
1、近数据处理,也称作ndp(near data processing),即在距离数据更近的地方执行计算。近数据处理利用存储内的计算资源,将应用程序中典型的先读后算任务卸载到存储器中,以节省数据搬运开销。学术界在二十多年前就提出了基于机械硬盘的近数据处理架构,但受限于硬件性能和成本,近数据处理能力较弱。近些年,由于日渐成熟的闪存固态硬盘(solid-state drive,简称ssd)具有容量大、高并发、读写快等特点,成为近数据处理系统高性能计算大量数据的硬件基础。
2、传统的近数据处理框架如图1所示。在传统数据处理系统中,计算全部由主机处理器执行,数据都存放在存储设备里,在计算开始前需要将数据全部读到主机内存中。在数据库、大数据等数据访问量大的应用中,常使用数据过滤、搜索等操作,其中无效数据的传输带来了高昂开销。近数据处理系统可以很好地应对数据密集型任务的传输瓶颈问题。主机只需要给存储设备发送请求和任务输入后,存储设备在内部获取数据后直接计算,最后仅将结果返回给主机,减少大量数据的传输。
3、与闪存存储相比,可计算存储增加了计算能力,使用额外的加速器或性能更强的主控处理器处理数据。可计算存储具有以下特征:
4、1)硬件资源多路、异构,通常包括一种或多种ndp加速器、多核嵌入式处理器、主机接口控制器和内存等;
5、2)需要处理一种或多种ndp任务(即在存储设备内进行计算的任务),其步骤往往比传统数据读
6、3)每个ndp任务均包括多个阶段,例如解析请求、读取数据、数据处理、返回结果等,且多个任务的阶段之间存在资源竞争或潜在的数据依赖。
7、然而,现有的近数据处理,大多都存在以下三个问题:
8、1)许多ndp任务以独占整个可计算存储的方式进行设计,不同任务无法共享存内的计算资源。并且现有工作采用粗粒度的管理方式,难以支持多种任务的高效并发执行,容易造成大量任务阻塞,进而浪费存内硬件资源;
9、2)可计算存储拥有多种硬件资源,但因缺乏系统管理而不支持灵活分配。例如分配给单个任务的内存、加速器等资源被其全周期占有,即便在访问闪存控制器时发生阻塞或等待,也不释放其占有的、未使用的资源;
10、3)现有可计算存储的任务调度忽视了混合i/o任务(即同时下发i/o任务以及ndp任务)的场景,缺乏混合任务管理降低了闪存的并行度,造成显著性能损失。ndp任务一次处理的数据规模普遍大于i/o任务,导致i/o性能极大下降。
技术实现思路
1、本专利技术提供一种基于协程的近数据处理系统及方法,解决的技术问题在于:现有的近数据处理系统,大都采用粗粒度对近数据处理任务进行调度,并且未能充分利用硬件资源,进而导致了混合i/o情况下系统性能低下。
2、为解决以上技术问题,本专利技术提供一种基于协程的近数据处理系统,包括主机和可计算存储;所述可计算存储中设有固件,所述固件的上层是各种ndp任务协程、闪存服务协程和为用户提供的工具,所述固件的下层是可计算存储的各类硬件;所述固件内分为协程层、任务层和资源管理层,ndp指近数据处理;
3、所述协程层包括协程调度器和协程间通信模块;所述协程调度器用于支持多任务的优先级调度,所述协程间通信模块用于传递ndp任务协程间的请求和数据;
4、所述任务层包括任务管理模块和任务监控模块;所述任务管理模块用于控制各个ndp任务的资源分配上限、维护ndp任务协程与ndp任务的关系以及对ndp任务协程进行睡眠或唤醒;所述任务监控模块用于跟踪存内的ndp任务状态,统计实时负载;
5、所述资源管理层包括页缓冲管理模块、加速器管理模块和资源协同模块;所述页缓冲管理模块用于提供申请缓冲的接口,进行页面管理并增加锁页、共享功能;所述加速器管理模块用于动态分配存内的多个加速器,为ndp任务协程提供加速器的访问接口;所述资源协同模块用于根据当前资源的竞争情况,对ndp任务的调度进行动态调整。
6、具体的,一个ndp任务分解为访存协程、计算协程和回传协程,访存协程等待内存资源,计算协程等待计算与闪存资源,回传协程等待计算协程与主机就绪;
7、所述任务管理模块按分解出的协程控制执行频率,并通过所述协程调度器支持多个请求流水线式执行。
8、具体的,所述主机通过权重设置不同ndp任务之间的相对优先级,所述协程调度器根据调度算法得到下一个待执行的ndp协程,获取该ndp协程的状态并调用ndp协程执行;在所述协程调度器的管理下,ndp任务与所述闪存服务协程中的闪存转换层相互独立,多个ndp任务均能参与到调度中,实现多任务并发。
9、具体的,所述协程调度器采用增加了状态检查机制的加权轮询调度算法实现协程调度,该加权轮询调度算法在一个周期内交错调度队列中的各个ndp协程,为了在调度开销和调度效果之间权衡;
10、所述状态检查机制为:当所述协程调度器发现一个ndp协程处于等待资源状态且其进入点和退出点相同时,即判定出该协程在进行无效的资源轮询,所述协程调度器将清零该协程本轮周期的剩余调度机会,跳到下一协程执行;
11、所述协程间通信模块用于提供消息队列传递ndp任务间的资源请求、共享内存进行ndp任务内的数据传递。
12、具体的,所述任务管理模块在存内提供任务管理功能,包括权重设置、资源设置、睡眠、唤醒;各个ndp协程拥有修改所属任务属性的权限,而所述主机拥有修改所有ndp任务属性的权限;所述主机通过管理员指令下发控制信息,当所述任务管理模块收到指令时,会调用相应的工具进行修改;
13、所述调度任务监控模块对各个ndp任务的运行状态信息进行统计,记录存内实时的请求数量、ndp协程在所述协程调度器中的调度次数。
14、具体的,原本属于闪存转换层的页面缓冲管理功能被移除,由所述页缓冲管理模块共同管理普通i/o和ndp请求的页面缓存;对于分配给闪存服务协程的页面,所述页缓冲管理模块沿用其原本的管理策略,而分配给ndp任务协程的页面会被锁定,在释放之前不会被换出;同时,所述页缓冲管理模块为页面增加引用计数,允许多个协程共享同一个页面,当最后一个协程释放页面时才会解锁;所述页缓冲管理模块还在内存紧张时为ndp任务协程保留页面。
15、具体的,所述加速器管理模块采用先到先服务的策略动态分配加速器,被服务的协程在初始化时持有所有加速器,并以消息队列的方式与其他协程交互;存内的加速器采用轮询机制检查完成状态,所述加速器管理模块并不会主动进行状态的更新,而是由持有加速器的协程主动调用接口检查。
16、具体的,当访存协程向所述页缓冲管理模块申请缓冲而剩余缓冲不足时,所述页缓冲管理模块将检查就绪页队列是否为空,就绪页在完成相应的计算后即解锁;若就绪本文档来自技高网...
【技术保护点】
1.一种基于协程的近数据处理系统,其特征在于,包括主机和可计算存储;所述可计算存储中设有固件,所述固件的上层是各种NDP任务协程、闪存服务协程和为用户提供的工具,所述固件的下层是可计算存储的各类硬件;所述固件内分为协程层、任务层和资源管理层,NDP指近数据处理;
2.根据权利要求1所述的一种基于协程的近数据处理系统,其特征在于:
3.根据权利要求2所述的一种基于协程的近数据处理系统,其特征在于:所述主机通过权重设置不同NDP任务之间的相对优先级,所述协程调度器根据调度算法得到下一个待执行的NDP协程,获取该NDP协程的状态并调用NDP协程执行;在所述协程调度器的管理下,NDP任务与所述闪存服务协程中的闪存转换层相互独立,多个NDP任务均能参与到调度中,实现多任务并发。
4.根据权利要求3所述的一种基于协程的近数据处理系统,其特征在于:
5.根据权利要求4所述的一种基于协程的近数据处理系统,其特征在于:
6.根据权利要求5所述的一种基于协程的近数据处理系统,其特征在于:
7.根据权利要求6所述的一种基于协程的近
8.根据权利要求7所述的一种基于协程的近数据处理系统,其特征在于:
9.一种基于协程的近数据处理方法,应用于权利要求3~8任一项所述的一种基于协程的近数据处理系统,其特征在于,该方法包括步骤:
10.根据权利要求9所述的一种基于协程的近数据处理方法,其特征在于:
...【技术特征摘要】
1.一种基于协程的近数据处理系统,其特征在于,包括主机和可计算存储;所述可计算存储中设有固件,所述固件的上层是各种ndp任务协程、闪存服务协程和为用户提供的工具,所述固件的下层是可计算存储的各类硬件;所述固件内分为协程层、任务层和资源管理层,ndp指近数据处理;
2.根据权利要求1所述的一种基于协程的近数据处理系统,其特征在于:
3.根据权利要求2所述的一种基于协程的近数据处理系统,其特征在于:所述主机通过权重设置不同ndp任务之间的相对优先级,所述协程调度器根据调度算法得到下一个待执行的ndp协程,获取该ndp协程的状态并调用ndp协程执行;在所述协程调度器的管理下,ndp任务与所述闪存服务协程中的闪存转换层相互独立,多个nd...
【专利技术属性】
技术研发人员:陈咸彰,谭星宇,王嘉品,刘铎,谭玉娟,任骜,
申请(专利权)人:重庆大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。