本发明专利技术公开了一种数据读取方法,该方法包括以下步骤:对接收到的目标数据读取请求进行解析,得到待读取的目标数据条带组;判断目标数据条带组是否为顺序读;若是,则启动顺序读操作,并获取目标预读窗口;读取目标数据条带组及目标预读窗口长度的目标预读条带组;将目标数据条带组返回给数据请求端,并将目标预读条带组存储至预建立的哈希链表中。应用本发明专利技术实施例所提供的技术方案,较大地提高了读缓存命中率,提高了内存使用率,较大地提高了读io性能。本发明专利技术还公开了一种数据读取装置、设备及存储介质,具有相应技术效果。
【技术实现步骤摘要】
一种数据读取方法、装置、设备及计算机可读存储介质
本专利技术涉及存储
,特别是涉及一种数据读取方法、装置、设备及计算机可读存储介质。
技术介绍
在云计算数据中心中,数据存储的性能是用户关心的核心问题。而存储系统的缓存使用能够很大程度上影响存储系统的性能。但是存储系统相当复杂,各种不同应用场景对不同的io方式要求各不相同。对缓存的使用和管理提出了很高的要求。在磁盘阵列raid的io方面缓存尤其重要,直接决定了其io带宽、每秒读写次数iops、io时延等各项关键性能指标。由于磁盘阵列盘阵很大,而系统内存相对较小。传统的磁盘阵列缓存通常读缓存保留较少,这造成了在数据读取时,读io性能受到限制,大大影响了io的性能和每秒读写次数、以及io时延。综上所述,如何有效地解决传统的数据读取方式读io性能受到限制,大大影响了io的性能和每秒读写次数、以及io时延等问题,是目前本领域技术人员急需解决的问题。
技术实现思路
本专利技术的目的是提供一种数据读取方法,该方法较大地提高了读缓存命中率,提高了内存使用率,较大地提高了读io性能;本专利技术的另一目的是提供一种数据读取装置、设备及计算机可读存储介质。为解决上述技术问题,本专利技术提供如下技术方案:一种数据读取方法,包括:对接收到的目标数据读取请求进行解析,得到待读取的目标数据条带组;判断所述目标数据条带组是否为顺序读;若是,则启动顺序读操作,并获取目标预读窗口;读取所述目标数据条带组及所述目标预读窗口长度的目标预读条带组;将所述目标数据条带组返回给数据请求端,并将所述目标预读条带组存储至预建立的哈希链表中。在本专利技术的一种具体实施方式中,判断所述目标数据条带组是否为顺序读,包括:判断所述目标数据条带组中排在首位的目标数据条带是否为初始条带;其中,所述目标数据条带组中各目标数据条带按待读取的先后顺序排列。在本专利技术的一种具体实施方式中,判断所述目标数据条带组是否为顺序读,包括:获取上一数据读取请求对应的前序数据条带组中的末位数据条带;判断所述目标数据条带组中排在首位的目标数据条带与所述末位数据条带是否连续;其中,所述前序数据条带组和所述目标数据条带组中各数据条带均按待读取的先后顺序排列。在本专利技术的一种具体实施方式中,判断所述目标数据条带组是否为顺序读,包括:获取所述哈希链表中包含的各前序预读条带;判断各所述前序预读条带中是否存在与所述目标数据条带组中排在首位的目标数据条带连续的条带。在本专利技术的一种具体实施方式中,在将所述目标数据条带组返回给数据请求端,并将所述目标预读条带组存储至预建立的哈希链表中之后,还包括:将所述目标数据条带组及所述目标预读条带组按照请求时间先后顺序存储到预建立的lru双向链表中。在本专利技术的一种具体实施方式中,读取所述目标数据条带组,包括:判断所述lru双向链表中是否存在所述目标数据条带组;若是,则从所述lru双向链表中读取所述目标数据条带组,并将所述目标数据条带组调整到所述lru双向链表的头部;若否,则从磁盘阵列中读取所述目标数据条带组。在本专利技术的一种具体实施方式中,在将所述目标数据条带组及所述目标预读条带组按照请求时间先后顺序存储到预建立的lru双向链表中之前,还包括:获取所述目标数据条带组及所述目标预读条带组的数据总量;获取所述lru双向链表的空闲内存;判断所述空闲内存是否大于等于所述数据总量;若否,则按照预设步长对所述lru双向链表尾部的预存数据条带进行逐步删除操作,直至所述空闲内存大于等于所述数据总量。一种数据读取装置,包括:请求解析模块,用于对接收到的目标数据读取请求进行解析,得到待读取的目标数据条带组;第一判断模块,用于判断所述目标数据条带组是否为顺序读;预读窗口获取模块,用于当确定所述目标数据条带组为顺序读时,启动顺序读操作,并获取目标预读窗口;条带组读取模块,用于读取所述目标数据条带组及所述目标预读窗口长度的目标预读条带组;数据返回模块,用于将所述目标数据条带组返回给数据请求端,并将所述目标预读条带组存储至预建立的哈希链表中。一种数据读取设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如前所述数据读取方法的步骤。一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述数据读取方法的步骤。应用本专利技术实施例所提供的方法,对接收到的目标数据读取请求进行解析,得到待读取的目标数据条带组;判断目标数据条带组是否为顺序读;若是,则启动顺序读操作,并获取目标预读窗口;读取目标数据条带组及目标预读窗口长度的目标预读条带组;将目标数据条带组返回给数据请求端,并将目标预读条带组存储至预建立的哈希链表中。通过在确定目标数据读取请求对应的目标数据条带组为顺序读取操作时,将目标预读窗口长度的目标预读条带组预先读取到哈希链表中,当需要进行数据读取时,直接按照哈希链表进行数据读取,较大地提高了读缓存命中率,提高了内存使用率,较大地提高了读io性能。相应的,本专利技术实施例还提供了与上述数据读取方法相对应的数据读取装置、设备和计算机可读存储介质,具有上述技术效果,在此不再赘述。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例中数据读取方法的一种实施流程图;图2为本专利技术实施例中一种磁盘阵列中数据块存储示意图;图3为本专利技术实施例中一种哈希链表数据条带缓存示意图;图4为本专利技术实施例中数据读取方法的另一种实施流程图;图5为本专利技术实施例中数据读取方法的另一种实施流程图;图6为本专利技术实施例中数据读取方法的另一种实施流程图;图7为本专利技术实施例中一种数据读取装置的结构框图;图8为本专利技术实施例中一种数据读取设备的结构框图。具体实施方式为了使本
的人员更好地理解本专利技术方案,下面结合附图和具体实施方式对本专利技术作进一步的详细说明。显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例一:参见图1,图1为本专利技术实施例中数据读取方法的一种实施流程图,该方法可以包括以下步骤:S101:对接收到的目标数据读取请求进行解析,得到待读取的目标数据条带组。当需要进行数据读取时,向数据读取管理中心发送目标数据读取请求,目标数据读取请求中本文档来自技高网...
【技术保护点】
1.一种数据读取方法,其特征在于,包括:/n对接收到的目标数据读取请求进行解析,得到待读取的目标数据条带组;/n判断所述目标数据条带组是否为顺序读;/n若是,则启动顺序读操作,并获取目标预读窗口;/n读取所述目标数据条带组及所述目标预读窗口长度的目标预读条带组;/n将所述目标数据条带组返回给数据请求端,并将所述目标预读条带组存储至预建立的哈希链表中。/n
【技术特征摘要】
1.一种数据读取方法,其特征在于,包括:
对接收到的目标数据读取请求进行解析,得到待读取的目标数据条带组;
判断所述目标数据条带组是否为顺序读;
若是,则启动顺序读操作,并获取目标预读窗口;
读取所述目标数据条带组及所述目标预读窗口长度的目标预读条带组;
将所述目标数据条带组返回给数据请求端,并将所述目标预读条带组存储至预建立的哈希链表中。
2.根据权利要求1所述的数据读取方法,其特征在于,判断所述目标数据条带组是否为顺序读,包括:
判断所述目标数据条带组中排在首位的目标数据条带是否为初始条带;其中,所述目标数据条带组中各目标数据条带按待读取的先后顺序排列。
3.根据权利要求1所述的数据读取方法,其特征在于,判断所述目标数据条带组是否为顺序读,包括:
获取上一数据读取请求对应的前序数据条带组中的末位数据条带;
判断所述目标数据条带组中排在首位的目标数据条带与所述末位数据条带是否连续;
其中,所述前序数据条带组和所述目标数据条带组中各数据条带均按待读取的先后顺序排列。
4.根据权利要求1所述的数据读取方法,其特征在于,判断所述目标数据条带组是否为顺序读,包括:
获取所述哈希链表中包含的各前序预读条带;
判断各所述前序预读条带中是否存在与所述目标数据条带组中排在首位的目标数据条带连续的条带。
5.根据权利要求1至4任一项所述的数据读取方法,其特征在于,在将所述目标数据条带组返回给数据请求端,并将所述目标预读条带组存储至预建立的哈希链表中之后,还包括:
将所述目标数据条带组及所述目标预读条带组按照请求时间先后顺序存储到预建立的lru双向链表中。
6.根据权利要求5所述的数据读取方法,其特征在于,读取所述...
【专利技术属性】
技术研发人员:邸忠辉,
申请(专利权)人:北京浪潮数据技术有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。