CN105353982B - 一种基于循环数组的数据访问处理方法及装置 - Google Patents
一种基于循环数组的数据访问处理方法及装置 Download PDFInfo
- Publication number
- CN105353982B CN105353982B CN201510710985.1A CN201510710985A CN105353982B CN 105353982 B CN105353982 B CN 105353982B CN 201510710985 A CN201510710985 A CN 201510710985A CN 105353982 B CN105353982 B CN 105353982B
- Authority
- CN
- China
- Prior art keywords
- read
- target area
- write
- backstage
- block device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 9
- 238000013507 mapping Methods 0.000 claims abstract description 37
- 238000000034 method Methods 0.000 claims abstract description 9
- 239000007787 solid Substances 0.000 claims description 3
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于循环数组的数据访问处理方法及装置,上述方法包括以下步骤:设置循环数组并建立所述循环数组与块设备区域之间的映射关系;对所述块设备中的目标区域进行后台读写时,将后续访问所述目标区域的IO读写请求保存至所述目标区域对应的循环数组成员的链表并对所述目标区域完成后台读写后,执行所述链表中的IO读写请求,通过循环数组映射的方式将块设备分割成多个区域,针对后台操作的区域进行IO拦截,可避免大量IO冲突的情况发生,从而减少对块设备IO性能的影响,大大提升用户体验。
Description
技术领域
本发明涉及数据访问控制领域,尤其涉及一种基于循环数组的数据访问处理方法及装置。
背景技术
存储***中有时需要在后台对块设备(包括内存、固态硬盘、磁盘及高速缓冲存储器)进行一些读写操作,但是直接读写数据会对其它IO读写请求的数据造成破坏,导致数据不一致,这种情况下需要通过先屏蔽整个块设备的读写来完成后台的操作,但当后台读写操作需要长时间运行时,屏蔽整个块设备会导致设备IO性能严重下降,大大降低了用户体验。
发明内容
本发明提供一种基于循环数组的数据访问处理方法及装置,以解决上述问题。
本发明提供一种基于循环数组的数据访问处理方法。上述方法包括以下步骤:
设置循环数组并建立所述循环数组与块设备区域之间的映射关系;
对所述块设备中的目标区域进行后台读写时,将后续访问所述目标区域的IO读写请求保存至所述目标区域对应的循环数组成员的链表并对所述目标区域完成后台读写后,执行所述链表中的IO读写请求。
本发明还提供一种基于循环数组的数据访问处理装置,包括映射关系建立模块、后台读写模块;其中,所述映射关系建立模块与所述后台读写模块相连;
所述映射关系建立模块,用于设置循环数组并建立所述循环数组与块设备区域之间的映射关系并将所述映射关系发送至所述后台读写模块;
所述后台读写模块,用于对所述块设备中的目标区域进行后台读写时,将后续访问所述目标区域的IO读写请求保存至所述目标区域对应的循环数组成员的链表并对所述目标区域完成后台读写后,执行所述链表中的IO读写请求。
通过以下方案:设置循环数组并建立所述循环数组与块设备区域之间的映射关系;对所述块设备中的目标区域进行后台读写时,将后续访问所述目标区域的IO读写请求保存至所述目标区域对应的循环数组成员的链表并对所述目标区域完成后台读写后,执行所述链表中的IO读写请求,通过循环数组映射的方式将块设备分割成多个区域,针对后台操作的区域进行IO拦截,可避免大量IO冲突的情况发生,从而减少对块设备IO性能的影响,大大提升用户体验。
通过以下方案:对所述块设备中的目标区域进行后台读写之前,还包括:调用所述目标区域对应的循环数组成员对所述目标区域内的IO读写请求进行计数,当计数为0时,则对所述块设备中的目标区域进行后台读写,避免出现读写冲突,降低了冲突发生概率,大大提升用户体验。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1所示为本发明实施例1的基于循环数组的数据访问处理方法流程图;
图2所示为本发明实施例2的基于循环数组的数据访问处理装置结构图;
图3所示为本发明实施例3的基于循环数组的数据访问处理又一装置结构图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图1所示为本发明实施例1的基于循环数组的数据访问处理方法流程图,包括以下步骤:
步骤101:设置循环数组并建立所述循环数组与块设备区域之间的映射关系;
进一步地,所述块设备包括内存、固态硬盘、磁盘、高速缓冲存储器。
进一步地,设置循环数组并建立所述循环数组与块设备区域之间的映射关系的过程为:
设置循环数组,将循环数组中的前n-1个成员分别映射块设备中为前n-1个成员分别分配的预设大小区域,将循环数组中的第n个成员映射块设备中的剩余区域。
其中,预设大小区域可以根据实际情况进行灵活设定,例如1MB。
例如:循环数组成员有n个,假设n=10,磁盘大小为1000MB,前n-1个成员每个成员映射的磁盘区域大小为1MB,则最后一个成员映射的区域为1000MB-9*1MB=910MB。
下一次循环,前n-1个成员依旧是每个成员映射1MB,但最后一个成员映射的区域变为910MB-9*1MB=820MB,以此类推。
步骤102:对所述块设备中的目标区域进行后台读写时,将后续访问所述目标区域的IO读写请求保存至所述目标区域对应的循环数组成员的链表并对所述目标区域完成后台读写后,执行所述链表中的IO读写请求。
进一步地,对所述块设备中的目标区域进行后台读写之前,还包括:
调用所述目标区域对应的循环数组成员对所述目标区域内的IO读写请求进行计数,当计数为0时,则对所述块设备中的目标区域进行后台读写。
进一步地,对所述块设备中的目标区域进行后台读写时,将访问所述目标区域的IO读写请求保存至所述目标区域对应的循环数组成员的链表并对所述目标区域完成后台读写后,执行所述链表中的IO读写请求并重新判断所述IO读写请求的范围是否与下一个目标区域的后台读写有冲突,并根据判断的结果,进行相应处理。
进一步地,若所述IO读写请求的范围包含在进行后台读写的下一个目标区域内,则对所述IO读写请求进行拦截并保存至进行后台读写的下一个目标区域对应的循环数组成员的链表。
进一步地,若所述IO读写请求的范围不包含在进行后台读写的下一个目标区域内,则执行所述IO读写请求并进行IO读写请求计数。
图2所示为本发明实施例2的基于循环数组的数据访问处理装置结构图,包括映射关系建立模块201、后台读写模块202;其中,所述映射关系建立模块201与所述后台读写模块202相连;
所述映射关系建立模块201,用于设置循环数组并建立所述循环数组与块设备区域之间的映射关系并将所述映射关系发送至所述后台读写模块202;
所述后台读写模块202,用于对所述块设备中的目标区域进行后台读写时,将后续访问所述目标区域的IO读写请求保存至所述目标区域对应的循环数组成员的链表并对所述目标区域完成后台读写后,执行所述链表中的IO读写请求。
图3所示为本发明实施例3的基于循环数组的数据访问处理又一装置结构图,在图2的基础上,增加了“计数模块200”;其中,所述计数模块200与所述后台读写模块202相连;
所述计数模块200,用于调用所述目标区域对应的循环数组成员对所述目标区域内的IO读写请求进行计数,当计数为0时,向所述后台读写模块202发送通知信息;
所述后台读写模块202,还用于接收所述通知信息后,对块设备中的目标区域进行后台读写。
通过以下方案:设置循环数组并建立所述循环数组与块设备区域之间的映射关系;对所述块设备中的目标区域进行后台读写时,将后续访问所述目标区域的IO读写请求保存至所述目标区域对应的循环数组成员的链表并对所述目标区域完成后台读写后,执行所述链表中的IO读写请求,通过循环数组映射的方式将块设备分割成多个区域,针对后台操作的区域进行IO拦截,可避免大量IO冲突的情况发生,从而减少对块设备IO性能的影响,大大提升用户体验。
通过以下方案:对所述块设备中的目标区域进行后台读写之前,还包括:调用所述目标区域对应的循环数组成员对所述目标区域内的IO读写请求进行计数,当计数为0时,则对所述块设备中的目标区域进行后台读写,避免出现读写冲突,降低了冲突发生概率,大大提升用户体验。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
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所述的装置,其特征在于,
所述后台读写模块,还用于接收所述通知信息后,对块设备中的目标区域进行后台读写。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510710985.1A CN105353982B (zh) | 2015-10-28 | 2015-10-28 | 一种基于循环数组的数据访问处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510710985.1A CN105353982B (zh) | 2015-10-28 | 2015-10-28 | 一种基于循环数组的数据访问处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105353982A CN105353982A (zh) | 2016-02-24 |
CN105353982B true CN105353982B (zh) | 2018-12-11 |
Family
ID=55329960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510710985.1A Active CN105353982B (zh) | 2015-10-28 | 2015-10-28 | 一种基于循环数组的数据访问处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105353982B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107765990A (zh) * | 2016-08-17 | 2018-03-06 | 中兴通讯股份有限公司 | 一种***磁盘管理方法和装置 |
CN113467716B (zh) * | 2021-06-11 | 2023-05-23 | 苏州浪潮智能科技有限公司 | 一种数据存储的方法、装置、设备及可读介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6728840B1 (en) * | 2000-10-20 | 2004-04-27 | Emc Corporation | Methods and apparatus for providing host controlled caching of data in a storage system |
CN101393537A (zh) * | 2008-09-18 | 2009-03-25 | 北京中星微电子有限公司 | 一种NandFlash缓冲管理方法 |
CN101425041A (zh) * | 2007-10-30 | 2009-05-06 | 安凯(广州)软件技术有限公司 | 在nand flash存储器上建立fat文件***的优化方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9135168B2 (en) * | 2010-07-07 | 2015-09-15 | Marvell World Trade Ltd. | Apparatus and method for generating descriptors to reaccess a non-volatile semiconductor memory of a storage drive due to an error |
-
2015
- 2015-10-28 CN CN201510710985.1A patent/CN105353982B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6728840B1 (en) * | 2000-10-20 | 2004-04-27 | Emc Corporation | Methods and apparatus for providing host controlled caching of data in a storage system |
CN101425041A (zh) * | 2007-10-30 | 2009-05-06 | 安凯(广州)软件技术有限公司 | 在nand flash存储器上建立fat文件***的优化方法 |
CN101393537A (zh) * | 2008-09-18 | 2009-03-25 | 北京中星微电子有限公司 | 一种NandFlash缓冲管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105353982A (zh) | 2016-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110135985B (zh) | 一种区块链上交易的并行执行方法及*** | |
US9170755B2 (en) | Command and data selection in storage controller systems | |
US9710283B2 (en) | System and method for pre-storing small data files into a page-cache and performing reading and writing to the page cache during booting | |
US10055150B1 (en) | Writing volatile scattered memory metadata to flash device | |
US10628066B2 (en) | Ensuring in-storage data atomicity and consistency at low cost | |
CN103995879A (zh) | 基于olap***的数据查询方法、装置及*** | |
CN110377233B (zh) | Ssd读性能优化方法、装置、计算机设备及存储介质 | |
CN107066498A (zh) | 键值kv存储方法和装置 | |
US20190332540A1 (en) | Storage management method, electronic device and computer readable medium | |
CN104239096A (zh) | Android***实现安全数据区的方法及装置 | |
CN105183378A (zh) | 自适应混合读/写缓存的方法 | |
CN106326398A (zh) | 数据一致性对比的方法及装置 | |
CN112181902A (zh) | 数据库的存储方法、装置及电子设备 | |
CN105353982B (zh) | 一种基于循环数组的数据访问处理方法及装置 | |
CN109213423B (zh) | 基于地址屏障无锁处理并发io命令 | |
CN114385089B (zh) | 一种基于交叉编址的动态bank存储方法、装置及电子设备 | |
CN104461730A (zh) | 一种虚拟资源分配方法及装置 | |
CN112925606A (zh) | 一种内存管理方法、装置及设备 | |
CN114416612A (zh) | 存储器的访问方法、装置、电子设备和存储介质 | |
US20130326120A1 (en) | Data storage device and operating method for flash memory | |
CN106202374A (zh) | 一种数据处理方法及装置 | |
CN105988724A (zh) | 多副本写入存储设备的方法及存储设备 | |
CN113253939B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN104750547A (zh) | 虚拟机的输入输出io请求处理方法及装置 | |
CN110162483B (zh) | 静态内存碎片整理方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |