掌桥专利:专业的专利平台
掌桥专利
首页

一种高吞吐的并行日志存储系统及方法

文献发布时间:2024-04-18 19:54:45


一种高吞吐的并行日志存储系统及方法

技术领域

本发明涉及存储系统技术领域,尤其是一种高吞吐的并行日志存储系统及方法。

背景技术

如今,企业和数据中心正在向分布式和无服务器存储系统发展,而不是传统的文件系统。由于这种转变,为用户和各方分配足够的资源以满足他们的服务级别需求在分布式存储系统中变得至关重要。服务质量(QoS)是一个试图解决这些挑战的研究领域。系统组件和请求的可调度性对于实现分布式存储中的QoS目标至关重要。许多QoS解决方案是通过在系统体系结构的不同级别上的请求调度来设计和实现的。

然而,存储后端中的缓存过满现象会影响系统的请求可调度性。在存储服务器中,由于存储后端缓存区过大,当服务器立即向存储后端提交所有请求时,会发生缓存区溢出。现有技术中,有许多研究工作都试图解决网络系统的缓存问题。然而,这些工作都不适用于存储系统环境和工作负载。

因此,如何解决存储系统中缓存过满及请求拥堵的现象,是一个亟需解决的技术问题。

发明内容

本发明的主要目的在于提供一种高吞吐的并行日志存储系统及方法,旨在解决目前存储系统存在缓存过满及请求拥堵的技术问题。

为实现上述目的,本发明提供一种高吞吐的并行日志存储系统,其特征在于,所述高吞吐的并行日志存储系统,具有:

前端设备;

后端设备;

具有若干个存储设备的存储服务器;

其中,所述前端设备接收任务请求,并将接收到的任务请求向目标后端设备传输;

其中,所述后端设备根据排队预算判断是否接收任务请求,并在接收到前端设备传输的任务请求时,向存储服务器的目标存储设备传输任务请求,以使存储服务器的目标存储设备执行任务请求对应的存储动作。

可选的,所述前端设备,具有:

任务请求传输模块;

所述任务请求传输模块接收任务请求,生成任务请求队列,并按任务请求队列将接收到的任务请求依次向后端设备传输。

可选的,所述后端设备,具有:

任务请求接收模块;

所述任务请求接收模块在接收到前端设备传输的任务请求时,判断排队预算是否大于零,若是,接收任务请求;若否,拒绝接收任务请求。

可选的,所述后端设备,还具有:

请求成本生成模块;

所述请求成本生成模块根据接收的目标任务请求的附加信息,生成目标任务请求的请求成本。

可选的,所述附加信息包括目标任务请求对应的存储大小和存储性质。

可选的,所述后端设备,还具有:

排队预算生成模块;

排队预算更新模块;

其中,所述排队预算生成模块为后端设备生成初始的排队预算;

其中,所述排队预算更新模块用于在接收到前端设备的目标任务请求时,基于目标任务的请求成本更新排队预算;所述排队预算更新模块还用于获取后端设备的后端延迟,并根据后端延迟更新排队预算。

可选的,所述排队预算更新模块,具有:

第一初始化单元,用于初始化第一循环间隔值和违规次数;

第一循环单元,用于获取后端设备的后端延迟值和预设目标值,判断后端延迟值是否大于预设目标值,若是,减少排队预算;若否,增加排队预算;

第一更新单元,用于在循环单元执行一次循环后,更新违规次数和第一循环间隔值;

第一等待单元,用于控制第一循环单元执行一次排队预算更新之后,等待第一循环间隔值之后执行下一次排队预算更新。

可选的,所述更新单元更新违规次数和循环间隔值,具体包括:

在增加排队预算时,违规次数归零;在减少排队预算时,违规次数计数一次;

在增加排队预算时,循环间隔值归零;在减少排队预算时,循环间隔值更新的表达式,具体为:

其中,INTERVAL为循环间隔值,violation-count为违规次数。

可选的,所述后端设备,还具有:

预设目标值更新模块;

所述预设目标值更新模块获取后端设备的后端吞吐量,并根据后端吞吐量更新预设目标值。

可选的,所述预设目标值更新模块,具有:

第二初始化单元,用于初始化第二循环间隔值和吞吐量目标历史队列;

第二循环单元,用于获取前次等待第二循环间隔值时后端设备的后端吞吐量,将包含预设目标值和后端吞吐量的元组添加至吞吐量目标历史队列,判断吞吐量目标历史队列的长度是否超过预设值,若是,从吞吐量目标历史队列中移除最旧的元组;

第二更新单元,用于根据吞吐量目标历史队列进行吞吐量目标历史回归的对数曲线,更新预设目标值;

第二等待单元,用于控制第二循环单元执行一次预设目标值更新之后,等待第二循环间隔值之后执行下一次预设目标值更新。

可选的,所述第二更新单元更新预设目标值,具体包括:

根据吞吐量目标历史队列进行吞吐量目标历史回归的对数曲线;其中,对数曲线的表达式,具体为:

其中,x为吞吐量目标,b为拟合出的系数,α为拟合出的常量;

根据对数曲线,确定最优目标;其中,所述最优目标的表达式,具体为:

其中,optimal-target为最优目标,

根据最优目标,确定更新后的预设目标值;其中,所述更新后的预设目标值等于模为最优目标的对数正态噪声。

此外,为了实现上述目的,本发明还提供了一种高吞吐的并行日志存储方法,所述方法包括如下步骤:

前端设备在接收到任务请求时,将接收到的任务请求向目标后端设备传输;

目标后端设备根据排队预算判断是否接收任务请求,并在接收到前端设备传输的任务请求时,向存储服务器的目标存储设备传输任务请求,以使存储服务器的目标存储设备执行任务请求对应的存储动作。

本发明的有益效果为:本发明实施例提出的一种高吞吐的并行日志存储系统及方法,该系统包括前端设备;后端设备;具有若干个存储设备的存储服务器;其中,所述前端设备接收任务请求,并将接收到的任务请求向目标后端设备传输;所述后端设备根据排队预算判断是否接收任务请求,并在接收到前端设备传输的任务请求时,向存储服务器的目标存储设备传输任务请求,以使存储服务器的目标存储设备执行任务请求对应的存储动作。本发明通过后端设备根据排队预算选择性的接收前端设备传输的任务请求,以此向存储服务器的目标存储设备传输任务请求,并利用存储服务器的目标存储设备执行任务请求对应的存储动作,解决了现有技术存储系统中缓存过满及请求拥堵的技术问题。

附图说明

图1为本发明所提供的一种高吞吐的并行日志存储系统实施例的示意图;

图2为本发明中快速循环算法的运行逻辑示意图;

图3为本发明中基于后端延迟和后端吞吐量的自适应延迟受控调配的示意图;

图4为本发明中慢速循环算法的运行逻辑示意图;

图5为本发明所提供的一种高吞吐的并行日志存储系统控制信号的融合生成方法实施例的流程示意图。

附图标记:

10-前端设备;20-后端设备;30-存储服务器。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种高吞吐的并行日志存储系统,参照图1,图1为本发明高吞吐的并行日志存储系统实施例的示意图。

本发明实施例提出的一种高吞吐的并行日志存储系统,该高吞吐的并行日志存储系统包括前端设备10、后端设备20和具有若干个存储设备的存储服务器30。

需要说明的是,所述前端设备10接收任务请求,并将接收到的任务请求向目标后端设备20传输;所述后端设备20根据排队预算判断是否接收任务请求,并在接收到前端设备10传输的任务请求时,向存储服务器30的目标存储设备传输任务请求,以使存储服务器30的目标存储设备中执行任务请求对应的存储动作。

其中,前端设备10用于接收用户的任务请求,该前端设备10可以为用户侧的客户机,在接收到任务请求时,将该任务请求向目标后端设备20传输。

其中,后端设备20用于根据排队预算判断是否接收前端设备10传输的任务请求,该后端设备20可以为交互设备,通过交互设备实现客户机与存储服务器30的数据传输。同时,该后端设备20还用于根据后端延迟调整排队预算,以实现自适应延迟调整的存储系统任务请求调配。

其中,存储服务器30用于接收后端设备20的任务请求,并在存储服务器30中若干个存储设备中的目标存储设备执行任务请求对应的存储动作。

在优选的实施例中,所述前端设备10,具有:任务请求传输模块。

需要说明的是,所述任务请求传输模块在前端设备10接收到任务请求时,生成任务请求队列,并按任务请求队列将接收到的任务请求依次向后端设备20传输。

其中,前端设备只要在接收到任务请求时,就将该任务请求放入任务请求队列,通过该任务请求队列不断的向后端设备20传输任务请求,该任务请求队列先入先出的特性,能够保证任务请求依次向后端设备20传输,并等待后端设备20接收该任务请求。

在优选的实施例中,所述后端设备20,具有:任务请求接收模块。

需要说明的是,所述任务请求接收模块在接收到前端设备10传输的任务请求时,判断排队预算是否大于零,若是,接收任务请求;若否,拒绝接收任务请求。

其中,前端设备10的任务请求传输模块在不断的向后端设备20传输任务请求时,后端设备20的任务请求接收模块不会对每个传输的任务请求进行接收,而是在接收之前判断当前排队预算是否大于零,只有在排队预算大于零时,接收任务请求,否则,拒绝接收。以此,实现后端设备20根据当前系统的缓存资源量化值(即本实施例的排队预算)对前端设备10传输的任务请求进行选择性接收。在另一个实施例中,还可配置任务请求传输模块仅在排队预算大于目标任务请求成本时对目标任务请求进行接收。

在优选的实施例中,所述后端设备20,还具有:请求成本生成模块。

需要说明的是,所述请求成本生成模块根据前端设备10传输的目标任务请求的附加信息,生成目标任务请求的请求成本。

其中,后端设备20配置有请求成本生成模块,用于在接收到目标任务请求时,对该任务请求所需要的缓存资源进行量化,即生成目标任务请求的请求成本,以使后端设备20能够通过缓存资源需求量化的方式来更新系统处理该任务请求后的缓存资源量化值(即本实施例的排队预算)。

更进一步的,所述附加信息包括目标任务请求对应的存储大小和存储性质。任务请求通过配置附加信息将此次任务请求需求的存储大小以及此次任务请求对应的存储性质进行记录,以使后端设备20在接收到任务请求时,可根据该任务请求量化缓存需求,依此更新排队预算。

在优选的实施例中,所述后端设备20,还具有:排队预算生成模块和排队预算更新模块。

需要说明的是,所述排队预算生成模块为后端设备20生成初始的排队预算;所述排队预算更新模块用于在接收到前端设备10传输的目标任务请求时,基于目标任务的请求成本更新排队预算;所述排队预算更新模块还用于获取后端设备20的后端延迟,并根据后端延迟更新排队预算。

其中,排队预算生成模块用于系统预先为后端设备20设置排队预算,以该初始的排队预算执行排队预算更新;排队预算更新模块会在两种情况时进行更新,其一是后端设备20接收到前端设备10传输的任务请求时,排队预算减少任务请求对应的请求成本;其二是获取后端设备20的后端延迟,根据后端延迟来更新排队预算。

在优选的实施例中,所述排队预算更新模块,具有:第一初始化单元、第一循环单元、第一更新单元和第一等待单元。

需要说明的是,第一初始化单元,用于初始化第一循环间隔值和违规次数;第一循环单元,用于获取后端设备20的后端延迟值和预设目标值,判断后端延迟值是否大于预设目标值,若是,减少排队预算;若否,增加排队预算;第一更新单元,用于在循环单元执行一次循环后,更新违规次数和第一循环间隔值;第一等待单元,用于控制第一循环单元执行一次排队预算更新之后,等待第一循环间隔值之后执行下一次排队预算更新。

更进一步的,更新单元更新违规次数和循环间隔值,具体为:

A1:在增加排队预算时,违规次数归零;在减少排队预算时,违规次数计数一次;

A2:在增加排队预算时,循环间隔值归零;在减少排队预算时,循环间隔值更新的表达式,具体为:

其中,INTERVAL为循环间隔值,violation-count为违规次数。

本实施例通过提出一种快速循环算法,用于监控后端延迟并通过控制基于目标参数的后端排队预算,减少使用给定目标的后端延迟。在实际应用中,如图2所示,排队预算更新模块执行快速循环算法的运行逻辑如下:

Step1:违规次数(violation-count)为0。

Step2:令第一循环间隔值(INTERVAL)为最小初始间隔。

Step3:开始进行循环,如果最小延迟(min-latency)大于预设目标值(TARGET),则通过最小延迟目标(min-latency-target)减少后端排队预算,此时violation-count计数一次。令INTERVAL为:

如果满足最小延迟小于预设目标值(TARGET)这一条件,则通过预算增量增加后端排队预算,INTERVAL等于初始INTERVAL,并且让violation-count等于0。

Step4:以INTERVAL为等待时间等待下一次循环开始。

其中,min-latency-target和initial-low-interval为预先设定的值,min-latency是服务器设备所测量的值,即当前的后端延迟,TARGET是完全依赖于服务器工作符合的参数。

本实施例提供一种高吞吐的并行日志存储系统,该系统通过后端设备20根据后端延迟实时调整排队预算,并通过后端设备20根据排队预算判断是否接收前端设备传输的任务请求,进而将接收的任务请求传输至存储服务器的目标存储设备执行,通过自适应延迟受控调配,解决了现有技术存储系统中缓存过满及请求拥堵的技术问题。

在另一实施例中,所述高吞吐的并行日志存储系统中,所述后端设备20,还具有:预设目标值更新模块。

需要说明的是,所述预设目标值更新模块获取后端设备20的后端吞吐量,并根据后端吞吐量更新预设目标值。

其中,预设目标值更新模块根据后端设备20的后端吞吐量来更新预设目标值,以此通过预设目标值更新模块和排队预算更新模块,如图3所示,实现基于后端延迟和后端吞吐量的自适应延迟受控调配。

在优选的实施例中,所述预设目标值更新模块,具有:第二初始化单元、第二循环单元、第二更新单元和第二等待单元。

需要说明的是,第二初始化单元,用于初始化第二循环间隔值和吞吐量目标历史队列;第二循环单元,用于获取前次等待第二循环间隔值时后端设备20的后端吞吐量,将包含预设目标值和后端吞吐量的元组添加至吞吐量目标历史队列,判断吞吐量目标历史队列的长度是否超过预设值,若是,从吞吐量目标历史队列中移除最旧的元组;第二更新单元,用于根据吞吐量目标历史队列进行吞吐量目标历史回归的对数曲线,更新预设目标值;第二等待单元,用于控制第二循环单元执行一次预设目标值更新之后,等待第二循环间隔值之后执行下一次预设目标值更新。

更进一步的,第二更新单元更新预设目标值,具体为:

B1:根据吞吐量目标历史队列进行吞吐量目标历史回归的对数曲线;其中,对数曲线的表达式,具体为:

其中,x为吞吐量目标,b为拟合出的系数,α为拟合出的常量;

B2:根据对数曲线,确定最优目标;其中,所述最优目标的表达式,具体为:

其中,optimal-target为最优目标,

B3:根据最优目标,确定更新后的预设目标值;其中,所述更新后的预设目标值等于模为最优目标的对数正态噪声。

本实施例通过提出一种慢速循环算法,用于监控后端吞吐量,并试图通过控制队列预算调整受控延迟的目标参数来平衡吞吐量损失和延迟减少,由于后端的吞吐量通常由于压缩或设备行为等外部来源的影响而不稳定,因此在较长间隔内进行低频采样是保持优化稳定的最佳方法。在实际应用中,如图4所示,预设目标值更新模块执行慢速循环算法的运行逻辑如下:

Step1:令第二循环间隔值INTERVAL为初始高延迟(initial-high-interval)。

Step2:定义一个吞吐量目标历史队列(throughput-target-history)。

Step3:开始循环,令吞吐量等于通过INTERVAL的后端吞吐量。

Step4:添加元组(TARGET,throughput)到throughput-target-history中。

Step5:throughput-target-history的长度大于阈值,则从throughput-target-history中移除最旧的数据。

Step6:通过对吞吐量目标历史的回归找到对数曲线:

其中,x为吞吐量目标,b为拟合出的系数,α为拟合出的常量;

Step7:求得最优目标:

Step8:TARGET等于对数正态噪声,模为最优目标。

Step9:以INTERVAL为等待时间等待下一次循环开始。

其中,

本实施例提供一种高吞吐的并行日志存储系统,该系统使用快慢循环逻辑对对吞吐量延迟进行控制,引入了一个独立于工作负载的参数,它提供对吞吐量延迟权衡的控制,减少了实际运行中请求队列拥堵的问题。

本发明实施例提供了一种高吞吐的并行日志存储方法,参照图5,图5为本发明高吞吐的并行日志存储方法实施例的流程示意图。

如图5所示,本发明实施例提出的高吞吐的并行日志存储方法基于上述任意实施例提供的高吞吐的并行日志存储系统,该高吞吐的并行日志存储方法,包括如下步骤:

S100:前端设备在接收到任务请求时,将接收到的任务请求向目标后端设备传输;

S200:目标后端设备根据排队预算判断是否接收任务请求,并在接收到前端设备传输的任务请求时,向存储服务器的目标存储设备传输任务请求,以使存储服务器的目标存储设备执行任务请求对应的存储动作。

本实施例提出一种高吞吐的并行日志存储方法,该方法通过后端设备根据排队预算选择性的接收前端设备传输的任务请求,以此向存储服务器的目标存储设备传输任务请求,并利用存储服务器的目标存储设备执行任务请求对应的存储动作,解决了现有技术存储系统中缓存过满及请求拥堵的技术问题。

本发明高吞吐的并行日志存储方法的其他实施例或具体实现方式可参照上述各系统实施例,此处不再赘述。

在本发明的实施例的描述中,需要理解的是,术语“上”、“下”、“前”、“后”、“左”、“右”、“坚直”、“水平”、“中心”、“顶”、“底”、“顶部”、“底部”、“内”、“外”、“内侧”、“外侧”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。其中,“里侧”是指内部或围起来的区域或空间。“外围”是指某特定部件或特定区域的周围的区域。

在本发明的实施例的描述中,术语“第一”、“第二”、“第三”、“第四”仅用以描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”、“第四”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。

在本发明的实施例的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“组装”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

在本发明的实施例的描述中,具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

在本发明的实施例的描述中,需要理解的是,“-”和“~”表示的是两个数值之同的范围,并且该范围包括端点。例如:“A-B”表示大于或等于A,且小于或等于B的范围。“A~B”表示大于或等于A,且小于或等于B的范围。

在本发明的实施例的描述中,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

相关技术
  • 双面屏终端显示方法、装置、双面屏终端及存储介质
  • 串口测试方法、装置、通讯管理机和存储介质
  • 段码液晶屏检测方法及装置、计算机装置及计算机可读存储介质
  • 双稳态液晶屏的局部擦除方法、装置、设备及存储介质
  • 分体式终端设备的屏显控制方法、装置及存储介质
  • 串口屏架构、固件编辑方法、装置、串口屏及存储介质
  • 基于串口屏的图片压缩方法、装置、存储介质及计算机设备
技术分类

06120116381076