CN111984204A - 一种数据读写方法、装置及电子设备和存储介质 - Google Patents
一种数据读写方法、装置及电子设备和存储介质 Download PDFInfo
- Publication number
- CN111984204A CN111984204A CN202011044169.9A CN202011044169A CN111984204A CN 111984204 A CN111984204 A CN 111984204A CN 202011044169 A CN202011044169 A CN 202011044169A CN 111984204 A CN111984204 A CN 111984204A
- Authority
- CN
- China
- Prior art keywords
- request
- target
- stripe
- determining
- merging
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000004590 computer program Methods 0.000 claims description 11
- 238000007726 management method Methods 0.000 description 30
- 238000010586 diagram Methods 0.000 description 10
- 230000001360 synchronised effect Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
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请求合并规则,并按照所述IO请求合并规则在所述目标条带的条带管理结构对象中确定所述目标IO请求对应的待合并IO请求;将所述目标IO请求与所有所述待合并IO请求合并为聚合IO请求,并响应所述聚合IO请求。由此可见,本申请提供的数据读写方法,提高了IO的速率,既缩小了IO时延,又提高了数据的带宽,提高了存储系统的性能。
Description
技术领域
本申请涉及计算机技术领域,更具体地说,涉及一种数据读写方法、装置及一种电子设备和一种计算机可读存储介质。
背景技术
在云计算数据中心中,数据存储的性能是用户关心的核心问题。而存储系统会按照条带进行划分,对条带再按照各磁盘分块进行划分。对于小IO(中文全称:输入/输出,英文全称:Input/Output)负载比较大的情况下,会存在对同一个条带的大量并发访问操作,此时并发的IO请求会由以条带为单位的锁来控制。先获取到锁的请求拥有访问该条带的权限,其他IO进行等待,拥有锁的IO释放条带锁后,等待该锁的IO得到该条带的锁,等IO完成后释放条带锁,其他某个等待请求再次获得该条带锁,依次类推,并最终完成所有IO请求。访问同一条带的多个IO需要条带锁控制串行进行,而且对于分布式系统及多控系统,锁的使用和获取对性能有很大的影响。对于小IO同一条带访问压力较大的情况,造成了大量IO串行等待的情况,严重影响了IO的时延和带宽。
因此,如何降低IO时延,提高IO带宽是本领域技术人员需要解决的技术问题。
申请内容
本申请的目的在于提供一种数据读写方法、装置及一种电子设备和一种计算机可读存储介质,降低了IO时延,提高了IO带宽。
为实现上述目的,本申请提供了一种数据读写方法,包括:
当接收到IO请求时,确定所述IO请求对应的条带,并将所述IO请求加入所述条带的条带管理结构对象中;
若目标IO请求获得对应的目标条带的条带锁,则确定IO请求合并规则,并按照所述IO请求合并规则在所述目标条带的条带管理结构对象中确定所述目标IO请求对应的待合并IO请求;
将所述目标IO请求与所有所述待合并IO请求合并为聚合IO请求,并响应所述聚合IO请求。
其中,所述当接收到IO请求时,确定所述IO请求对应的条带,并将所述IO请求加入所述条带的条带管理结构对象中,包括:
当接收到IO请求时,按照请求的条带将所述IO请求分解为多个子IO请求;
将每个所述子IO请求加入对应的条带的条带管理结构对象中。
其中,所述确定IO请求合并规则,包括:
在多条候选IO请求合并规则中确定当前的IO请求合并规则。
其中,所述在多条候选IO请求合并规则中确定当前的IO请求合并规则之前,还包括:
为每条所述候选IO请求合并规则设置合并等级;
相应的,所述在多条候选IO请求合并规则中确定当前的IO请求合并规则,包括:
确定目标合并等级,选取所有所述合并等级小于或等于所述目标合并等级的候选IO请求合并规则作为当前的IO请求合并规则。
其中,所述候选IO请求合并规则包括:
将所述目标条带的条带管理结构对象中与所述目标IO请求请求同一分块且请求扇区连续或重合的IO请求确定为所述目标IO请求对应的待合并IO请求;
和/或,将所述目标条带的条带管理结构对象中与所述目标IO请求请求连续分块的IO请求确定为所述目标IO请求对应的待合并IO请求;
和/或,将所述目标条带的条带管理结构对象中与所述目标IO请求请求的扇区间隔小于目标值的IO请求确定为所述目标IO请求对应的待合并IO请求。
其中,若所述目标IO请求与其他IO请求均为单分块IO请求,则所述目标值为所述目标IO请求请求的扇区数量与所述其他IO请求请求的扇区数量的较小值。
其中,若所述目标IO请求和其他IO请求中存在跨分块IO请求,则所述目标值为分块包含的扇区总数的一半。
为实现上述目的,本申请提供了一种数据读写装置,包括:
加入模块,用于当接收到IO请求时,确定所述IO请求对应的条带,并将所述IO请求加入所述条带的条带管理结构对象中;
确定模块,用于当目标IO请求获得对应的目标条带的条带锁时,确定IO请求合并规则,并按照所述IO请求合并规则在所述目标条带的条带管理结构对象中确定所述目标IO请求对应的待合并IO请求;
合并模块,用于将所述目标IO请求与所有所述待合并IO请求合并为聚合IO请求,并响应所述聚合IO请求。
为实现上述目的,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述数据读写方法的步骤。
为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述数据读写方法的步骤。
通过以上方案可知,本申请提供的一种数据读写方法,包括:当接收到IO请求时,确定所述IO请求对应的条带,并将所述IO请求加入所述条带的条带管理结构对象中;若目标IO请求获得对应的目标条带的条带锁,则确定IO请求合并规则,并按照所述IO请求合并规则在所述目标条带的条带管理结构对象中确定所述目标IO请求对应的待合并IO请求;将所述目标IO请求与所有所述待合并IO请求合并为聚合IO请求,并响应所述聚合IO请求。
本申请提供的数据读写方法,通过建立条带串行IO的合并规则,对于同一个条带的不同IO请求,在符合合并规则的情况下进行的合并,将多个IO请求操作转化成一次IO请求操作,IO的串行执行转化为一次或者并行执行,降低了磁盘操作。由此可见,本申请提供的数据读写方法,提高了IO的速率,既缩小了IO时延,又提高了数据的带宽,提高了存储系统的性能。本申请还公开了一种数据读写装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1为根据一示例性实施例示出的一种数据读写方法的流程图;
图2为根据一示例性实施例示出的另一种数据读写方法的流程图;
图3为根据一示例性实施例示出的第一种合并规则的示意图;
图4为根据一示例性实施例示出的第二种合并规则的示意图;
图5为根据一示例性实施例示出的第三种合并规则的示意图;
图6为根据一示例性实施例示出的第四种合并规则的示意图;
图7为根据一示例性实施例示出的第五种合并规则的示意图;
图8为根据一示例性实施例示出的一种数据读写装置的结构图;
图9为根据一示例性实施例示出的一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。另外,在本申请实施例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例公开了一种数据读写方法,降低了IO时延,提高了IO带宽。
参见图1,根据一示例性实施例示出的一种数据读写方法的流程图,如图1所示,包括:
S101:当接收到IO请求时,确定所述IO请求对应的条带,并将所述IO请求加入所述条带的条带管理结构对象中;
在本实施例中,建立条带管理结构来管理该条带的所有IO请求,当收到IO请求后,将其按照条带进行分解,一个IO请求按照条带分解为多个子IO请求。子IO请求以条带为单位进行处理时,分配其对应的IO对象及条带管理结构对象,并请求该条带的条带锁,然后将该IO对象放入该条带管理结构对象的IO等待链表IO_wait_q尾部。即作为一种可行的实施方式,本步骤包括:当接收到IO请求时,按照请求的条带将所述IO请求分解为多个子IO请求;将每个所述子IO请求加入对应的条带的条带管理结构对象中。
S102:若目标IO请求获得对应的目标条带的条带锁,则确定IO请求合并规则,并按照所述IO请求合并规则在所述目标条带的条带管理结构对象中确定所述目标IO请求对应的待合并IO请求;
在本步骤中,当目标IO请求获得对应的目标条带的条带锁后,对目标条带的条带管理结构对象中的IO请求进行由前到后进行扫描,对于符合IO请求合并规则的IO请求进行合并。在具体实施中,两个IO请求合并为一个聚合IO请求,聚合IO请求作为当前IO请求继续扫描符合合并规则的IO请求进行合并,直到第一个不能合并的IO请求为止。
可以理解的是,当前的IO请求合并规则可以在候选IO请求合并规则中进行选择,即所述确定IO请求合并规则的步骤包括:在多条候选IO请求合并规则中确定当前的IO请求合并规则。
S103:将所述目标IO请求与所有所述待合并IO请求合并为聚合IO请求,并响应所述聚合IO请求。
在具体实施中,将所述目标IO请求与所有所述待合并IO请求合并为聚合IO请求,合并的各个IO请求作为该聚合IO请求的一个子IO请求。合并完成后,再将聚合IO请求所请求的数据分别对应复制到聚合IO请求的各子IO请求。
本申请实施例提供的数据读写方法,通过建立条带串行IO的合并规则,对于同一个条带的不同IO请求,在符合合并规则的情况下进行的合并,将多个IO请求操作转化成一次IO请求操作,IO的串行执行转化为一次或者并行执行,降低了磁盘操作。由此可见,本申请实施例提供的数据读写方法,提高了IO的速率,既缩小了IO时延,又提高了数据的带宽,提高了存储系统的性能。
本申请实施例公开了一种数据读写方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
参见图2,根据一示例性实施例示出的另一种数据读写方法的流程图,如图2所示,包括:
S201:当接收到IO请求时,按照请求的条带将所述IO请求分解为多个子IO请求;
S202:将每个所述子IO请求加入对应的条带的条带管理结构对象中。
S203:若目标IO请求获得对应的目标条带的条带锁,则确定目标合并等级,选取所有所述合并等级小于或等于所述目标合并等级的候选IO请求合并规则作为当前的IO请求合并规则;
在本实施例中,可以为每条候选IO请求合并规则设置合并等级,根据当前选择的目标合并等级选取当前的IO请求合并规则,即选取所有合并等级小于或等于目标合并等级的候选IO请求合并规则作为当前的IO请求合并规则,例如,目标合并等级为二,则选择合并等级为一和二的候选IO请求合并规则作为当前的IO请求合并规则。
作为一种优选实施方式,所述候选IO请求合并规则包括:将所述目标条带的条带管理结构对象中与所述目标IO请求请求同一分块且请求扇区连续或重合的IO请求确定为所述目标IO请求对应的待合并IO请求。在具体实施中,可以将上述候选IO请求合并规则的合并等级设置为一,其规则为将请求连续、重合或部分重合的两个IO请求进行合并。两个IO请求连续,即一个IO请求请求的最后一个扇区号,比另一个IO请求请求的第一个扇区号小一,直接合并,合并IO请求的请求范围为两个IO请求请求的最小扇区到最大扇区。例如如图3所示,两个IO请求,一个IO请求需要请求扇区3、4、5三个扇区,一个IO请求需要请求6、7二个扇区,合并IO请求请求范围为3、4、5、6、7扇区。
两个IO请求重合或者部分重合,合并IO请求的请求范围为两个IO请求请求的最小扇区到最大扇区。例如如图4所示,两个IO请求,一个IO请求需要请求扇区3、4、5三个扇区,一个IO请求需要请求4、5、6三个扇区,合并IO请求请求范围为3、4、5、6扇区。
作为一种优选实施方式,所述候选IO请求合并规则包括:将所述目标条带的条带管理结构对象中与所述目标IO请求请求连续分块的IO请求确定为所述目标IO请求对应的待合并IO请求。在具体实施中,可以将上述候选IO请求合并规则的合并等级设置为二,其规则为将请求连续分块的两个IO请求进行合并。若两个IO请求不连续,且不一个分块内,但是分块号是连续的,此时合并为一个分块连续IO请求,例如如图5所示,两个IO请求,一个IO请求请求分块0的3、4、5扇区,一个IO请求请求分块1的11、12、13扇区,合并IO请求请求范围为分块0的3、4、5扇区和分块1的11、12、13扇区。由于分块间是并行执行的,因此此次IO请求的合并相当于串行IO转换成并行IO。
作为一种优选实施方式,所述候选IO请求合并规则包括:将所述目标条带的条带管理结构对象中与所述目标IO请求请求的扇区间隔小于目标值的IO请求确定为所述目标IO请求对应的待合并IO请求。在具体实施中,可以将上述候选IO请求合并规则的合并等级设置为三。若两个IO请求不连续,在一个分块内即两个IO请求为单分块IO请求,且两个IO请求请求的扇区间隔小于目标值,则进行合并。优选的,所述目标值为所述目标IO请求请求的扇区数量与所述其他IO请求请求的扇区数量的较小值。例如如图6所示,两个IO请求,一个IO请求请求分块0的1、2扇区,一个IO请求请求分块0的4、5、6、7扇区。此时两个IO请求相距两个扇区,小于较小IO请求的三个扇区,合并IO请求请求范围为分块0的1、2、3、4、5、6、7扇区。
若两个IO请求不连续,IO跨分块,且两个IO请求请求的扇区间隔小于目标值,则进行合并。优选的,所述目标值为分块包含的扇区总数的一半。例如如图7所示,两个IO请求,一个IO请求请求分块0的6、7扇区、分块1的8、9扇区,,一个IO请求请求分块1的11、12、13扇区。此时两个IO请求相距一个扇区,小于分块扇区数的一半即4个扇区,合并IO请求请求范围为分块0的6、7扇区、分块1的8、9、10、11、12、13扇区。
S204:按照所述IO请求合并规则在所述目标条带的条带管理结构对象中确定所述目标IO请求对应的待合并IO请求;
S205:将所述目标IO请求与所有所述待合并IO请求合并为聚合IO请求,并响应所述聚合IO请求。
下面对本申请实施例提供的一种数据读写装置进行介绍,下文描述的一种数据读写装置与上文描述的一种数据读写方法可以相互参照。
参见图8,根据一示例性实施例示出的一种数据读写装置的结构图,如图8所示,包括:
加入模块801,用于当接收到IO请求时,确定所述IO请求对应的条带,并将所述IO请求加入所述条带的条带管理结构对象中;
确定模块802,用于当目标IO请求获得对应的目标条带的条带锁时,确定IO请求合并规则,并按照所述IO请求合并规则在所述目标条带的条带管理结构对象中确定所述目标IO请求对应的待合并IO请求;
合并模块803,用于将所述目标IO请求与所有所述待合并IO请求合并为聚合IO请求,并响应所述聚合IO请求。
本申请实施例提供的数据读写装置,通过建立条带串行IO的合并规则,对于同一个条带的不同IO请求,在符合合并规则的情况下进行的合并,将多个IO请求操作转化成一次IO请求操作,IO的串行执行转化为一次或者并行执行,降低了磁盘操作。由此可见,本申请实施例提供的数据读写装置,提高了IO的速率,既缩小了IO时延,又提高了数据的带宽,提高了存储系统的性能。
在上述实施例的基础上,作为一种优选实施方式,所述加入模块801包括:
分解单元,用于当接收到IO请求时,按照请求的条带将所述IO请求分解为多个子IO请求;
加入单元,用于将每个所述子IO请求加入对应的条带的条带管理结构对象中。
在上述实施例的基础上,作为一种优选实施方式,所述确定模块802包括:
第一确定单元,用于当目标IO请求获得对应的目标条带的条带锁时,在多条候选IO请求合并规则中确定当前的IO请求合并规则;
第二确定单元,用于按照所述IO请求合并规则在所述目标条带的条带管理结构对象中确定所述目标IO请求对应的待合并IO请求。
在上述实施例的基础上,作为一种优选实施方式,还包括:
设置模块,用于为每条所述候选IO请求合并规则设置合并等级;
相应的,所述第一确定单元具体为当目标IO请求获得对应的目标条带的条带锁时,确定目标合并等级,选取所有所述合并等级小于或等于所述目标合并等级的候选IO请求合并规则作为当前的IO请求合并规则的单元。
在上述实施例的基础上,作为一种优选实施方式,所述候选IO请求合并规则包括:将所述目标条带的条带管理结构对象中与所述目标IO请求请求同一分块且请求扇区连续或重合的IO请求确定为所述目标IO请求对应的待合并IO请求;
和/或,将所述目标条带的条带管理结构对象中与所述目标IO请求请求连续分块的IO请求确定为所述目标IO请求对应的待合并IO请求;
和/或,将所述目标条带的条带管理结构对象中与所述目标IO请求请求的扇区间隔小于目标值的IO请求确定为所述目标IO请求对应的待合并IO请求。
在上述实施例的基础上,作为一种优选实施方式,若所述目标IO请求与其他IO请求均为单分块IO请求,则所述目标值为所述目标IO请求请求的扇区数量与所述其他IO请求请求的扇区数量的较小值。
在上述实施例的基础上,作为一种优选实施方式,若所述目标IO请求和其他IO请求中存在跨分块IO请求,则所述目标值为分块包含的扇区总数的一半。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
基于上述程序模块的硬件实现,且为了实现本申请实施例的方法,本申请实施例还提供了一种电子设备,图9为根据一示例性实施例示出的一种电子设备的结构图,如图9所示,电子设备包括:
通信接口1,能够与其它设备比如网络设备等进行信息交互;
处理器2,与通信接口1连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的应用的访问方法。而所述计算机程序存储在存储器3上。
当然,实际应用时,电子设备中的各个组件通过总线系统4耦合在一起。可理解,总线系统4用于实现这些组件之间的连接通信。总线系统4除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图9中将各种总线都标为总线系统4。
本申请实施例中的存储器3用于存储各种类型的数据以支持电子设备的操作。这些数据的示例包括:用于在电子设备上操作的任何计算机程序。
可以理解,存储器3可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本申请实施例描述的存储器2旨在包括但不限于这些和任意其它适合类型的存储器。
上述本申请实施例揭示的方法可以应用于处理器2中,或者由处理器2实现。处理器2可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器2中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器2可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器3,处理器2读取存储器3中的程序,结合其硬件完成前述方法的步骤。
处理器2执行所述程序时实现本申请实施例的各个方法中的相应流程,为了简洁,在此不再赘述。
在示例性实施例中,本申请实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的存储器3,上述计算机程序可由处理器2执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种数据读写方法,其特征在于,包括:
当接收到IO请求时,确定所述IO请求对应的条带,并将所述IO请求加入所述条带的条带管理结构对象中;
若目标IO请求获得对应的目标条带的条带锁,则确定IO请求合并规则,并按照所述IO请求合并规则在所述目标条带的条带管理结构对象中确定所述目标IO请求对应的待合并IO请求;
将所述目标IO请求与所有所述待合并IO请求合并为聚合IO请求,并响应所述聚合IO请求。
2.根据权利要求1所述数据读写方法,其特征在于,所述当接收到IO请求时,确定所述IO请求对应的条带,并将所述IO请求加入所述条带的条带管理结构对象中,包括:
当接收到IO请求时,按照请求的条带将所述IO请求分解为多个子IO请求;
将每个所述子IO请求加入对应的条带的条带管理结构对象中。
3.根据权利要求1所述数据读写方法,其特征在于,所述确定IO请求合并规则,包括:
在多条候选IO请求合并规则中确定当前的IO请求合并规则。
4.根据权利要求3所述数据读写方法,其特征在于,所述在多条候选IO请求合并规则中确定当前的IO请求合并规则之前,还包括:
为每条所述候选IO请求合并规则设置合并等级;
相应的,所述在多条候选IO请求合并规则中确定当前的IO请求合并规则,包括:
确定目标合并等级,选取所有所述合并等级小于或等于所述目标合并等级的候选IO请求合并规则作为当前的IO请求合并规则。
5.根据权利要求3所述数据读写方法,其特征在于,所述候选IO请求合并规则包括:
将所述目标条带的条带管理结构对象中与所述目标IO请求请求同一分块且请求扇区连续或重合的IO请求确定为所述目标IO请求对应的待合并IO请求;
和/或,将所述目标条带的条带管理结构对象中与所述目标IO请求请求连续分块的IO请求确定为所述目标IO请求对应的待合并IO请求;
和/或,将所述目标条带的条带管理结构对象中与所述目标IO请求请求的扇区间隔小于目标值的IO请求确定为所述目标IO请求对应的待合并IO请求。
6.根据权利要求5所述数据读写方法,其特征在于,若所述目标IO请求与其他IO请求均为单分块IO请求,则所述目标值为所述目标IO请求请求的扇区数量与所述其他IO请求请求的扇区数量的较小值。
7.根据权利要求5所述数据读写方法,其特征在于,若所述目标IO请求和其他IO请求中存在跨分块IO请求,则所述目标值为分块包含的扇区总数的一半。
8.一种数据读写装置,其特征在于,包括:
加入模块,用于当接收到IO请求时,确定所述IO请求对应的条带,并将所述IO请求加入所述条带的条带管理结构对象中;
确定模块,用于当目标IO请求获得对应的目标条带的条带锁时,确定IO请求合并规则,并按照所述IO请求合并规则在所述目标条带的条带管理结构对象中确定所述目标IO请求对应的待合并IO请求;
合并模块,用于将所述目标IO请求与所有所述待合并IO请求合并为聚合IO请求,并响应所述聚合IO请求。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述数据读写方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数据读写方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011044169.9A CN111984204B (zh) | 2020-09-28 | 2020-09-28 | 一种数据读写方法、装置及电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011044169.9A CN111984204B (zh) | 2020-09-28 | 2020-09-28 | 一种数据读写方法、装置及电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111984204A true CN111984204A (zh) | 2020-11-24 |
CN111984204B CN111984204B (zh) | 2023-01-10 |
Family
ID=73450262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011044169.9A Active CN111984204B (zh) | 2020-09-28 | 2020-09-28 | 一种数据读写方法、装置及电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111984204B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113655970A (zh) * | 2021-08-27 | 2021-11-16 | 浪潮商用机器有限公司 | 一种io调度方法、装置、设备及计算机可读存储介质 |
CN115933994A (zh) * | 2023-01-09 | 2023-04-07 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN117539407A (zh) * | 2024-01-04 | 2024-02-09 | 浙江大华技术股份有限公司 | 数据存储方法、电子设备及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354636A (zh) * | 2008-09-08 | 2009-01-28 | 创新科存储技术(深圳)有限公司 | 一种向磁盘阵列中写入数据的方法及系统 |
CN104866244A (zh) * | 2015-05-31 | 2015-08-26 | 上海交通大学 | 一种平衡条带写的raid-6i/o调度方法 |
US9720596B1 (en) * | 2014-12-19 | 2017-08-01 | EMC IP Holding Company LLC | Coalescing writes for improved storage utilization |
-
2020
- 2020-09-28 CN CN202011044169.9A patent/CN111984204B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354636A (zh) * | 2008-09-08 | 2009-01-28 | 创新科存储技术(深圳)有限公司 | 一种向磁盘阵列中写入数据的方法及系统 |
US9720596B1 (en) * | 2014-12-19 | 2017-08-01 | EMC IP Holding Company LLC | Coalescing writes for improved storage utilization |
CN104866244A (zh) * | 2015-05-31 | 2015-08-26 | 上海交通大学 | 一种平衡条带写的raid-6i/o调度方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113655970A (zh) * | 2021-08-27 | 2021-11-16 | 浪潮商用机器有限公司 | 一种io调度方法、装置、设备及计算机可读存储介质 |
CN115933994A (zh) * | 2023-01-09 | 2023-04-07 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN117539407A (zh) * | 2024-01-04 | 2024-02-09 | 浙江大华技术股份有限公司 | 数据存储方法、电子设备及计算机可读存储介质 |
CN117539407B (zh) * | 2024-01-04 | 2024-03-29 | 浙江大华技术股份有限公司 | 数据存储方法、电子设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111984204B (zh) | 2023-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111984204B (zh) | 一种数据读写方法、装置及电子设备和存储介质 | |
CN111090628B (zh) | 一种数据处理方法、装置、存储介质及电子设备 | |
CN107943421B (zh) | 一种基于分布式存储系统的分区划分方法及装置 | |
CN112579602B (zh) | 多版本数据存储方法、装置、计算机设备及存储介质 | |
CN112632069B (zh) | 哈希表数据存储管理方法、装置、介质和电子设备 | |
KR102646619B1 (ko) | 컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 시스템 및 방법 | |
JP7058132B2 (ja) | 最大化された重複除去メモリのためのシステム及び方法 | |
WO2017050064A1 (zh) | 共享内存数据库的内存管理方法及装置 | |
CN114816263B (zh) | 存储访问方法及智能处理装置 | |
CN113064859B (zh) | 一种元数据处理方法、装置及电子设备和存储介质 | |
CN113326005B (zh) | 一种raid存储系统的读写方法和装置 | |
CN101763433B (zh) | 一种数据存储系统及方法 | |
CN112954244A (zh) | 监控录像的存储实现方法、装置、设备及存储介质 | |
CN111897493B (zh) | 存储空间管理方法、装置及电子设备、存储介质 | |
CN111209257A (zh) | 一种文件系统碎片化的方法及装置 | |
CN118210455B (zh) | 超长字段数据读写性能优化方法、装置、电子设备和存储介质 | |
CN116431530A (zh) | 一种cxl内存模组、内存的处理方法及计算机系统 | |
CN109388651B (zh) | 一种数据处理方法和装置 | |
CN111708715B (zh) | 内存分配方法、内存分配装置及终端设备 | |
CN112181870A (zh) | 内存页面管理方法、装置、设备及可读存储介质 | |
CN105988724A (zh) | 多副本写入存储设备的方法及存储设备 | |
US20200081869A1 (en) | File storage method and storage apparatus | |
CN113961302A (zh) | 资源分配方法、装置、电子设备及存储介质 | |
CN108959020B (zh) | 一种计算机cpu利用率的计算方法和装置 | |
CN113849311B (zh) | 内存空间管理方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |