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

文档序号:9597128阅读:294来源:国知局
一种基于循环数组的数据访问处理方法及装置的制造方法
【技术领域】
[0001]本发明涉及数据访问控制领域,尤其涉及一种基于循环数组的数据访问处理方法及装置。
【背景技术】
[0002]存储系统中有时需要在后台对块设备(包括内存、固态硬盘、磁盘及高速缓冲存储器)进行一些读写操作,但是直接读写数据会对其它10读写请求的数据造成破坏,导致数据不一致,这种情况下需要通过先屏蔽整个块设备的读写来完成后台的操作,但当后台读写操作需要长时间运行时,屏蔽整个块设备会导致设备10性能严重下降,大大降低了用户体验。

【发明内容】

[0003]本发明提供一种基于循环数组的数据访问处理方法及装置,以解决上述问题。
[0004]本发明提供一种基于循环数组的数据访问处理方法。上述方法包括以下步骤:
[0005]设置循环数组并建立所述循环数组与块设备区域之间的映射关系;
[0006]对所述块设备中的目标区域进行后台读写时,将后续访问所述目标区域的10读写请求保存至所述目标区域对应的循环数组成员的链表并对所述目标区域完成后台读写后,执行所述链表中的10读写请求。
[0007]本发明还提供一种基于循环数组的数据访问处理装置,包括映射关系建立模块、后台读写模块;其中,所述映射关系建立模块与所述后台读写模块相连;
[0008]所述映射关系建立模块,用于设置循环数组并建立所述循环数组与块设备区域之间的映射关系并将所述映射关系发送至所述后台读写模块;
[0009]所述后台读写模块,用于对所述块设备中的目标区域进行后台读写时,将后续访问所述目标区域的10读写请求保存至所述目标区域对应的循环数组成员的链表并对所述目标区域完成后台读写后,执行所述链表中的10读写请求。
[0010]通过以下方案:设置循环数组并建立所述循环数组与块设备区域之间的映射关系;对所述块设备中的目标区域进行后台读写时,将后续访问所述目标区域的10读写请求保存至所述目标区域对应的循环数组成员的链表并对所述目标区域完成后台读写后,执行所述链表中的10读写请求,通过循环数组映射的方式将块设备分割成多个区域,针对后台操作的区域进行10拦截,可避免大量10冲突的情况发生,从而减少对块设备10性能的影响,大大提升用户体验。
[0011]通过以下方案:对所述块设备中的目标区域进行后台读写之前,还包括:调用所述目标区域对应的循环数组成员对所述目标区域内的10读写请求进行计数,当计数为0时,则对所述块设备中的目标区域进行后台读写,避免出现读写冲突,降低了冲突发生概率,大大提升用户体验。
【附图说明】
[0012]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0013]图1所示为本发明实施例1的基于循环数组的数据访问处理方法流程图;
[0014]图2所示为本发明实施例2的基于循环数组的数据访问处理装置结构图;
[0015]图3所示为本发明实施例3的基于循环数组的数据访问处理又一装置结构图。
【具体实施方式】
[0016]下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0017]图1所示为本发明实施例1的基于循环数组的数据访问处理方法流程图,包括以下步骤:
[0018]步骤101:设置循环数组并建立所述循环数组与块设备区域之间的映射关系;
[0019]进一步地,所述块设备包括内存、固态硬盘、磁盘、高速缓冲存储器。
[0020]进一步地,设置循环数组并建立所述循环数组与块设备区域之间的映射关系的过程为:
[0021]设置循环数组,将循环数组中的前η-l个成员分别映射块设备中为前η-l个成员分别分配的预设大小区域,将循环数组中的第η个成员映射块设备中的剩余区域。
[0022]其中,预设大小区域可以根据实际情况进行灵活设定,例如1ΜΒ。
[0023]例如:循环数组成员有η个,假设η = 10,磁盘大小为1000ΜΒ,前η_1个成员每个成员映射的磁盘区域大小为1MB,则最后一个成员映射的区域为1000MB-9 ~k 1MB = 910MB。
[0024]下一次循环,前η-l个成员依旧是每个成员映射1MB,但最后一个成员映射的区域变为 910MB-9 * 1MB = 820MB,以此类推。
[0025]步骤102:对所述块设备中的目标区域进行后台读写时,将后续访问所述目标区域的10读写请求保存至所述目标区域对应的循环数组成员的链表并对所述目标区域完成后台读写后,执行所述链表中的10读写请求。
[0026]进一步地,对所述块设备中的目标区域进行后台读写之前,还包括:
[0027]调用所述目标区域对应的循环数组成员对所述目标区域内的10读写请求进行计数,当计数为0时,则对所述块设备中的目标区域进行后台读写。
[0028]进一步地,对所述块设备中的目标区域进行后台读写时,将访问所述目标区域的10读写请求保存至所述目标区域对应的循环数组成员的链表并对所述目标区域完成后台读写后,执行所述链表中的10读写请求并重新判断所述10读写请求的范围是否与下一个目标区域的后台读写有冲突,并根据判断的结果,进行相应处理。
[0029]进一步地,若所述10读写请求的范围包含在进行后台读写的下一个目标区域内,则对所述10读写请求进行拦截并保存至进行后台读写的下一个目标区域对应的循环数组成员的链表。
[0030]进一步地,若所述10读写请求的范围不包含在进行后台读写的下一个目标区域内,则执行所述10读写请求并进行10读写请求计数。
[0031]图2所示为本发明实施例2的基于循环数组的数据访问处理装置结构图,包括映射关系建立模块201、后台读写模块202;其中,所述映射关系建立模块201与所述后台读写模块202相连;
[0032]所述映射关系建立模块201,用于设置循环数组并建立所述循环
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1