首页 / 专利库 / 资料储存系统 / 高速缓冲存储器 / 一种基于循环数组的数据访问处理方法及装置

一种基于循环数组的数据访问处理方法及装置

阅读:1029发布:2020-05-16

专利汇可以提供一种基于循环数组的数据访问处理方法及装置专利检索,专利查询,专利分析的服务。并且本 发明 提供一种基于循环数组的数据 访问 处理方法及装置,上述方法包括以下步骤:设置循环数组并建立所述循环数组与 块 设备区域之间的映射关系;对所述块设备中的目标区域进行后台读写时,将后续访问所述目标区域的IO读写 请求 保存至所述目标区域对应的循环数组成员的链表并对所述目标区域完成后台读写后,执行所述链表中的IO读写请求,通过循环数组映射的方式将块设备分割成多个区域,针对后台操作的区域进行IO拦截,可避免大量IO冲突的情况发生,从而减少对块设备IO性能的影响,大大提升用户体验。,下面是一种基于循环数组的数据访问处理方法及装置专利的具体信息内容。

1.一种基于循环数组的数据访问处理方法,其特征在于,包括以下步骤:
设置循环数组并建立所述循环数组与设备区域之间的映射关系;调用所述块设备中的目标区域对应的循环数组成员对所述目标区域内的IO读写请求进行计数,当计数为0时,则对所述块设备中的目标区域进行后台读写;
对所述块设备中的目标区域进行后台读写时,将后续访问所述目标区域的IO读写请求保存至所述目标区域对应的循环数组成员的链表并对所述目标区域完成后台读写后,执行所述链表中的IO读写请求并重新判断所述IO读写请求的范围是否与下一个目标区域的后台读写有冲突,并根据判断的结果,进行相应处理;
其中,所述设置循环数组并建立所述循环数组与块设备区域之间的映射关系的过程为:
设置循环数组,将循环数组中的前n-1个成员分别映射块设备中为前n-1个成员分别分配的预设大小区域,将循环数组中的第n个成员映射块设备中的剩余区域。
2.根据权利要求1所述的方法,其特征在于,所述块设备包括内存、固态硬盘、磁盘、高速缓冲存储器
3.根据权利要求1所述的方法,其特征在于,循环数组成员有n个,假设n=10,磁盘大小为1000MB,前n-1个成员每个成员映射的磁盘区域大小为1MB,则第n个成员映射的区域为
1000MB-9*1MB=910MB;
下一次循环,前n-1个成员依旧是每个成员映射1MB,最后一个成员映射的区域则变为
910MB-9*1MB=820MB,以此类推。
4.根据权利要求1所述的方法,其特征在于,若所述IO读写请求的范围包含在进行后台读写的下一个目标区域内,则对所述IO读写请求进行拦截并保存至进行后台读写的下一个目标区域对应的循环数组成员的链表。
5.根据权利要求1所述的方法,其特征在于,若所述IO读写请求的范围不包含在进行后台读写的下一个目标区域内,则执行所述IO读写请求并进行IO读写请求计数。
6.一种基于循环数组的数据访问处理装置,其特征在于,包括映射关系建立模块、后台读写模块、计数模块;其中,所述映射关系建立模块与所述后台读写模块相连;所述计数模块与所述后台读写模块相连;
所述映射关系建立模块,用于设置循环数组并建立所述循环数组与块设备区域之间的映射关系并将所述映射关系发送至所述后台读写模块;
所述计数模块,用于调用目标区域对应的循环数组成员对所述目标区域内的IO读写请求进行计数,当计数为0时,则向所述后台读写模块发送通知信 息,对所述块设备中的目标区域进行后台读写;
所述后台读写模块,用于对所述块设备中的目标区域进行后台读写时,将后续访问所述目标区域的IO读写请求保存至所述目标区域对应的循环数组成员的链表并对所述目标区域完成后台读写后,执行所述链表中的IO读写请求并重新判断所述IO读写请求的范围是否与下一个目标区域的后台读写有冲突,并根据判断的结果,进行相应处理;
其中,所述映射关系建立模块设置循环数组并建立所述循环数组与块设备区域之间的映射关系的过程为:
设置循环数组,将循环数组中的前n-1个成员分别映射块设备中为前n-1个成员分别分配的预设大小区域,将循环数组中的第n个成员映射块设备中的剩余区域。
7.根据权利要求6所述的装置,其特征在于,
所述后台读写模块,还用于接收所述通知信息后,对块设备中的目标区域进行后台读写。

说明书全文

一种基于循环数组的数据访问处理方法及装置

技术领域

[0001] 本发明涉及数据访问控制领域,尤其涉及一种基于循环数组的数据访问处理方法及装置。

背景技术

[0002] 存储系统中有时需要在后台对设备(包括内存、固态硬盘、磁盘及高速缓冲存储器)进行一些读写操作,但是直接读写数据会对其它IO读写请求的数据造成破坏,导致数据不一致,这种情况下需要通过先屏蔽整个块设备的读写来完成后台的操作,但当后台读写操作需要长时间运行时,屏蔽整个块设备会导致设备IO性能严重下降,大大降低了用户体验。

发明内容

[0003] 本发明提供一种基于循环数组的数据访问处理方法及装置,以解决上述问题。
[0004] 本发明提供一种基于循环数组的数据访问处理方法。上述方法包括以下步骤:
[0005] 设置循环数组并建立所述循环数组与块设备区域之间的映射关系;
[0006] 对所述块设备中的目标区域进行后台读写时,将后续访问所述目标区域的IO读写请求保存至所述目标区域对应的循环数组成员的链表并对所述目标区域完成后台读写后,执行所述链表中的IO读写请求。
[0007] 本发明还提供一种基于循环数组的数据访问处理装置,包括映射关系建立模块、后台读写模块;其中,所述映射关系建立模块与所述后台读写模块相连;
[0008] 所述映射关系建立模块,用于设置循环数组并建立所述循环数组与块设备区域之间的映射关系并将所述映射关系发送至所述后台读写模块;
[0009] 所述后台读写模块,用于对所述块设备中的目标区域进行后台读写时,将后续访问所述目标区域的IO读写请求保存至所述目标区域对应的循环数组成员的链表并对所述目标区域完成后台读写后,执行所述链表中的IO读写请求。
[0010] 通过以下方案:设置循环数组并建立所述循环数组与块设备区域之间的映射关系;对所述块设备中的目标区域进行后台读写时,将后续访问所述目标区域的IO读写请求保存至所述目标区域对应的循环数组成员的链表并对所述目标区域完成后台读写后,执行所述链表中的IO读写请求,通过循环数组映射的方式将块设备分割成多个区域,针对后台操作的区域进行IO拦截,可避免大量IO冲突的情况发生,从而减少对块设备IO性能的影响,大大提升用户体验。
[0011] 通过以下方案:对所述块设备中的目标区域进行后台读写之前,还包括:调用所述目标区域对应的循环数组成员对所述目标区域内的IO读写请求进行计数,当计数为0时,则对所述块设备中的目标区域进行后台读写,避免出现读写冲突,降低了冲突发生概率,大大提升用户体验。附图说明
[0012] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0013] 图1所示为本发明实施例1的基于循环数组的数据访问处理方法流程图
[0014] 图2所示为本发明实施例2的基于循环数组的数据访问处理装置结构图;
[0015] 图3所示为本发明实施例3的基于循环数组的数据访问处理又一装置结构图。

具体实施方式

[0016] 下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0017] 图1所示为本发明实施例1的基于循环数组的数据访问处理方法流程图,包括以下步骤:
[0018] 步骤101:设置循环数组并建立所述循环数组与块设备区域之间的映射关系;
[0019] 进一步地,所述块设备包括内存、固态硬盘、磁盘、高速缓冲存储器
[0020] 进一步地,设置循环数组并建立所述循环数组与块设备区域之间的映射关系的过程为:
[0021] 设置循环数组,将循环数组中的前n-1个成员分别映射块设备中为前n-1个成员分别分配的预设大小区域,将循环数组中的第n个成员映射块设备中的剩余区域。
[0022] 其中,预设大小区域可以根据实际情况进行灵活设定,例如1MB。
[0023] 例如:循环数组成员有n个,假设n=10,磁盘大小为1000MB,前n-1个成员每个成员映射的磁盘区域大小为1MB,则最后一个成员映射的区域为1000MB-9*1MB=910MB。
[0024] 下一次循环,前n-1个成员依旧是每个成员映射1MB,但最后一个成员映射的区域变为910MB-9*1MB=820MB,以此类推。
[0025] 步骤102:对所述块设备中的目标区域进行后台读写时,将后续访问所述目标区域的IO读写请求保存至所述目标区域对应的循环数组成员的链表并对所述目标区域完成后台读写后,执行所述链表中的IO读写请求。
[0026] 进一步地,对所述块设备中的目标区域进行后台读写之前,还包括:
[0027] 调用所述目标区域对应的循环数组成员对所述目标区域内的IO读写请求进行计数,当计数为0时,则对所述块设备中的目标区域进行后台读写。
[0028] 进一步地,对所述块设备中的目标区域进行后台读写时,将访问所述目标区域的IO读写请求保存至所述目标区域对应的循环数组成员的链表并对所述目标区域完成后台读写后,执行所述链表中的IO读写请求并重新判断所述IO读写请求的范围是否与下一个目标区域的后台读写有冲突,并根据判断的结果,进行相应处理。
[0029] 进一步地,若所述IO读写请求的范围包含在进行后台读写的下一个目标区域内,则对所述IO读写请求进行拦截并保存至进行后台读写的下一个目标区域对应的循环数组成员的链表。
[0030] 进一步地,若所述IO读写请求的范围不包含在进行后台读写的下一个目标区域内,则执行所述IO读写请求并进行IO读写请求计数。
[0031] 图2所示为本发明实施例2的基于循环数组的数据访问处理装置结构图,包括映射关系建立模块201、后台读写模块202;其中,所述映射关系建立模块201与所述后台读写模块202相连;
[0032] 所述映射关系建立模块201,用于设置循环数组并建立所述循环数组与块设备区域之间的映射关系并将所述映射关系发送至所述后台读写模块202;
[0033] 所述后台读写模块202,用于对所述块设备中的目标区域进行后台读写时,将后续访问所述目标区域的IO读写请求保存至所述目标区域对应的循环数组成员的链表并对所述目标区域完成后台读写后,执行所述链表中的IO读写请求。
[0034] 图3所示为本发明实施例3的基于循环数组的数据访问处理又一装置结构图,在图2的基础上,增加了“计数模块200”;其中,所述计数模块200与所述后台读写模块202相连;
[0035] 所述计数模块200,用于调用所述目标区域对应的循环数组成员对所述目标区域内的IO读写请求进行计数,当计数为0时,向所述后台读写模块202发送通知信息;
[0036] 所述后台读写模块202,还用于接收所述通知信息后,对块设备中的目标区域进行后台读写。
[0037] 通过以下方案:设置循环数组并建立所述循环数组与块设备区域之间的映射关系;对所述块设备中的目标区域进行后台读写时,将后续访问所述目标区域的IO读写请求保存至所述目标区域对应的循环数组成员的链表并对所述目标区域完成后台读写后,执行所述链表中的IO读写请求,通过循环数组映射的方式将块设备分割成多个区域,针对后台操作的区域进行IO拦截,可避免大量IO冲突的情况发生,从而减少对块设备IO性能的影响,大大提升用户体验。
[0038] 通过以下方案:对所述块设备中的目标区域进行后台读写之前,还包括:调用所述目标区域对应的循环数组成员对所述目标区域内的IO读写请求进行计数,当计数为0时,则对所述块设备中的目标区域进行后台读写,避免出现读写冲突,降低了冲突发生概率,大大提升用户体验。
[0039] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈