CN112256206B - 一种io处理方法及装置 - Google Patents
一种io处理方法及装置 Download PDFInfo
- Publication number
- CN112256206B CN112256206B CN202011190289.XA CN202011190289A CN112256206B CN 112256206 B CN112256206 B CN 112256206B CN 202011190289 A CN202011190289 A CN 202011190289A CN 112256206 B CN112256206 B CN 112256206B
- Authority
- CN
- China
- Prior art keywords
- target
- data
- processing
- blocks
- stripe
- 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
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/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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/062—Securing 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/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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请涉及存储技术领域,特别涉及一种IO处理方法及装置。该方法包括:接收主机下发的针对目标条带的多个IO;基于预设的IO合并规则对所述多个IO进行合并处理,得到合并后的至少一个目标IO,其中,所述IO合并规则为:将存在IO的,且连续的多个数据块的IO合并成一个目标IO;针对所述至少一个目标IO中的每一个目标IO,基于所述目标条带中数据块的个数,所述目标条带中校验块的个数,该一个目标IO包括的第一数据块的个数和该一个目标IO中IO覆盖整个数据块的第二数据块的个数,确定该一个目标IO的目标处理方式;基于所述目标处理方式对该一个目标IO进行IO处理。
Description
技术领域
本申请涉及存储技术领域,特别涉及一种IO处理方法及装置。
背景技术
纠删码(Erasure Code,EC)起源于通信系统,是当前存储系统中广泛使用的一种数据保护机制。传统的多副本将一份数据复制多份保存,占用很大的存储空间,而EC将原始数据进行分片,基于分片编码计算生成少量的备份数据,再将原始数据和备份数据写入存储介质,从而实现了以计算为成本来减少存储空间的消耗,一次编码的数据块组成一个条带。
目前,当主机下发多个IO时,一种基于EC的多IO处理方式为:上层将多个随机写IO一并下发,地址连续的随机写IO组成一个大IO,EC以条带为单位进行编解码,在一个条带内,有多个不同大小的IO组成。通过遍历这些IO,针对每一IO分别进行执行以下操作:对当前处理的IO进行大小写判断,确定进行EC大写或EC小写。所谓EC大写指的是,预读数据块中没有被主机IO覆盖的地址数据,然后与新写数据计算新的校验数据,最后将新写数据和新的校验数据一起落盘;所谓EC小写指的是,预读有主机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处理。
采用本申请实施例提供的IO处理方法,将主机下发的多个IO通过预设的IO合并规则进行再次合并处理,从而减少需处理的目标IO个数,针对合并后的目标IO采用对应处理方式分别进行相应处理,减少了IO处理的次数,从而降低了系统读写开销,并降低了主机IO之间的耦合度,提供存储效率。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1为本申请实施例提供的一种IO处理方法的详细流程图;
图2为本申请实施例提供的一种主机下发IO后条带数据结构示意图;
图3为本申请实施例提供的另一种主机下发IO后条带数据结构示意图;
图4为本申请实施例提供的一种IO处理装置的结构示意图;
图5为本申请实施例提供的另一种IO处理装置的结构示意图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
示例性的,参阅图1所示,为本申请实施例提供的一种IO处理方法的详细流程图,该方法包括以下步骤:
步骤100:接收主机下发的针对目标条带的多个IO。
实际应用中,上层将缓存开启时,将多个随机写IO一并下发,地址连续的随机写IO组成一个大IO,EC以条带为单位进行编解码,在一个条带内,有多个不同大小的IO组成。
示例性的,参阅图2所示,为本申请实施例提供的第一种主机下发IO的条带数据示意图;以EC8数据块+2校验块为例,数据块大小为16k,主机下发的IO为4k的随机写IO,上层将缓存开启,这样同时下发到EC层的IO为多个IO。如,IO 1是长度为4k的,只覆盖数据块1的IO;IO 2是长度为24k的,覆盖数据块2,数据块3和数据块4的IO;IO 3是长度为8k的,覆盖数据块5和数据块5的IO;IO 4是长度为8k的,只覆盖数据块7的IO;IO 5是长度为8k的,只覆盖数据块8的IO。
步骤110:基于预设的IO合并规则对上述多个IO进行合并处理,得到合并后的至少一个目标IO,其中,上述IO合并规则为:将存在IO的,且连续的多个数据块的IO合并成一个目标IO。
本申请实施例中,在接收到主机发送的针对目标条带的多个IO之后,需要基于预设的IO合并规则对上述多个IO进行合并处理,即IO以数据块为单位可向前、向后合并IO,示例性的,参阅图3所示,为本申请提供的又一种主机下发IO后条带数据结构示意图,数据块1,数据块2,……,数据块7和数据块8依次排序,若IO 1覆盖数据块1,IO 2覆盖数据块2和数据块3,数据块4不存在IO,IO 3覆盖数据块5和数据块6,IO 4覆盖数据块7,IO 5覆盖数据块8,那么,则可以将数据块1的IO 1,数据块2和数据块3的IO 2合并为一个目标IO(目标IO1),将数据块5和数据块6的IO 3,数据块7的IO 4和数据块8的IO 5合并为一个目标IO(目标IO 2)。
实际应用中,通过上述预设的IO合并规则,可以将主机下发的多个IO合并为一个目标IO或多个目标IO,其中,合并后的目标IO的个数小于等于主机下发的IO的个数。本申请实施例中,基于合并后的目标IO的个数小于主机下发的IO的个数的场景,能够有效减少需处理的IO个数。甚至于可以将主机下发的多个IO合并成1个目标IO,只需执行一次IO处理即可。
步骤120:针对上述至少一个目标IO中的每一个目标IO,基于上述目标条带中数据块的个数,上述目标条带中校验块的个数,该一个目标IO包括的第一数据块的个数和该一个目标IO中IO覆盖整个数据块的第二数据块的个数,确定该一个目标IO的目标处理方式。
具体地,本申请实施例中,在基于上述目标条带中数据块的个数,上述目标条带中校验块的个数,该一个目标IO包括的第一数据块的个数和该一个目标IO中IO覆盖整个数据块的第二数据块的个数,确定该一个目标IO的目标处理方式时,一种较佳地实现方式为,计算上述目标条带中数据块的个数和该一个目标IO中IO覆盖整个数据块的第二数据块的个数的差值;计算上述目标条带中校验块的个数和该一个目标IO包括的第一数据块的个数的和值;若上述差值小于等于上述和值,则确定该一个目标IO的处理方式为第一处理方式。
进一步地,若上述差值大于上述和值,则确定该一个目标IO的处理方式为第二处理方式。
结合图3所示,目标条带包括M(M=8)个数据块,N(N=2)个校验块,本申请实施例中,针对合并后的目标IO中的每一个目标IO,分别统计各目标IO覆盖的数据块的个数(T)和各目标IO中被IO覆盖整个数据块的数据块的个数(K),即分别统计目标IO 1和目标IO 2覆盖的数据块的个数,并分别统计目标IO 1和目标IO 2中整个数据块被IO覆盖的数据块的个数。
例如,针对目标IO 1而言,其覆盖的数据块个数为3(T1=3)(数据块1,数据块2和数据块3),其覆盖的数据块中整个数据块被IO覆盖的数据块的个数为0(K1=0);针对目标IO 2而言,其覆盖的数据块个数为4(T2=4)(数据块5,数据块6,数据块7和数据块8),其覆盖的数据块中整个数据块被IO覆盖的数据块的个数为0(K2=0)。进一步地,针对目标IO 1,计算M与K1之间的差值1(M-K1)=(8-0)=8,计算T1与N之间的和值1(T1+N)=(3+2)=5,判定(M-K1)=8大于(T1+N)=5,则采用第二处理方式处理目标IO 1。针对目标IO 2,计算M与K2之间的差值2(M-K2)=(8-0)=8,计算T2与N之间的和值2(T2+N)=(4+2)=6,判定(M-K2)=8大于(T2+N)=6,则采用第二处理方式处理目标IO 2。
实际应用中,结合图2所示,假设一个条带包括8(M)个数据块和2(N)个校验块,若8(T)个数据块均被主机下发的IO覆盖,且有1(K)个数据块(数据块2)被整个IO覆盖,则在进行IO合并时,即可将主机下发的多个IO合并成1个目标IO,针对该目标IO,该条带中数据块的个数和该目标IO中IO覆盖整个数据块的数据块的个数的差值:M-K=8-1=7;该条带中校验块的个数和该目标IO包括的均被主机下发的IO覆盖数据块的个数的和值为:T+N=8+2=10,由于7小于10,则采用第一处理方式处理该目标IO。
步骤130:基于上述目标处理方式对该一个目标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处理完成。
基于与上述发明实施例同样的发明构思,示例性的,参阅图4所示,为本申请实施例提供的一种IO处理装置的结构示意图,该装置包括:
接收单元40,用于接收主机下发的针对目标条带的多个IO;
合并单元41,用于基于预设的IO合并规则对所述多个IO进行合并处理,得到合并后的至少一个目标IO,其中,所述IO合并规则为:将存在IO的,且连续的多个数据块的IO合并成一个目标IO;
确定单元42,用于针对所述至少一个目标IO中的每一个目标IO,基于所述目标条带中数据块的个数,所述目标条带中校验块的个数,该一个目标IO包括的第一数据块的个数和该一个目标IO中IO覆盖整个数据块的第二数据块的个数,确定该一个目标IO的目标处理方式;
处理单元43,用于基于所述目标处理方式对该一个目标IO进行IO处理。
可选地,基于所述目标条带中数据块的个数,所述目标条带中校验块的个数,该一个目标IO包括的第一数据块的个数和该一个目标IO中IO覆盖整个数据块的第二数据块的个数,确定该一个目标IO的目标处理方式时,所述确定单元42具体用于:
计算所述目标条带中数据块的个数和该一个目标IO中IO覆盖整个数据块的第二数据块的个数的差值;
计算所述目标条带中校验块的个数和该一个目标IO包括的第一数据块的个数的和值;
若所述差值小于等于所述和值,则确定该一个目标IO的处理方式为第一处理方式。
可选地,基于所述目标处理方式对该一个目标IO进行IO处理时,所述处理单元43具体用于:
读取所述目标条带的数据块中没有被IO覆盖的地址数据;
基于读取出的数据与新写数据计算新的校验数据;
将所述新写数据和所述新的校验数据写入所述目标条带。
可选地,所述确定单元42还用于:
若所述差值大于所述和值,则确定该一个目标IO的处理方式为第二处理方式。
可选地,基于所述目标处理方式对该一个目标IO进行IO处理时,所述处理单元43具体用于:
读取所述目标条带中有IO覆盖的数据块的数据和校验数据;
基于读取出的数据和所述校验数据计算出没有IO覆盖的数据块的中间数据;
基于所述中间数据和新写数据计算出新的校验数据,并将所述新写数据和所述新的校验数据写入所述目标条带。
以上这些单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个单元通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
进一步地,本申请实施例提供的IO处理装置,从硬件层面而言,所述IO处理装置的硬件架构示意图可以参见图5所示,所述IO处理装置可以包括:存储器50和处理器51,
存储器50用于存储程序指令;处理器51调用存储器50中存储的程序指令,按照获得的程序指令执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本申请还提供一种IO处理设备,包括用于执行上述方法实施例的至少一个处理元件(或芯片)。
可选地,本申请还提供一种程序产品,例如计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使该计算机执行上述方法实施例。
这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccess Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种IO处理方法,其特征在于,所述方法包括:
接收主机下发的针对目标条带的多个IO;
基于预设的IO合并规则对所述多个IO进行合并处理,得到合并后的至少一个目标IO,其中,所述IO合并规则为:将存在IO的,且连续的多个数据块的IO合并成一个目标IO;
针对所述至少一个目标IO中的每一个目标IO,基于所述目标条带中数据块的个数,所述目标条带中校验块的个数,该一个目标IO包括的第一数据块的个数和该一个目标IO中IO覆盖整个数据块的第二数据块的个数,确定该一个目标IO的目标处理方式;
基于所述目标处理方式对该一个目标IO进行IO处理。
2.如权利要求1所述的方法,其特征在于,基于所述目标条带中数据块的个数,所述目标条带中校验块的个数,该一个目标IO包括的第一数据块的个数和该一个目标IO中IO覆盖整个数据块的第二数据块的个数,确定该一个目标IO的目标处理方式的步骤包括:
计算所述目标条带中数据块的个数和该一个目标IO中IO覆盖整个数据块的第二数据块的个数的差值;
计算所述目标条带中校验块的个数和该一个目标IO包括的第一数据块的个数的和值;
若所述差值小于等于所述和值,则确定该一个目标IO的处理方式为第一处理方式。
3.如权利要求2所述的方法,其特征在于,基于所述目标处理方式对该一个目标IO进行IO处理的步骤包括:
读取所述目标条带的数据块中没有被IO覆盖的地址数据;
基于读取出的数据与新写数据计算新的校验数据;
将所述新写数据和所述新的校验数据写入所述目标条带。
4.如权利要求2所述的方法,其特征在于,所述方法还包括:
若所述差值大于所述和值,则确定该一个目标IO的处理方式为第二处理方式。
5.如权利要求4所述的方法,其特征在于,基于所述目标处理方式对该一个目标IO进行IO处理的步骤包括:
读取所述目标条带中有IO覆盖的数据块的数据和校验数据;
基于读取出的数据和所述校验数据计算出没有IO覆盖的数据块的中间数据;
基于所述中间数据和新写数据计算出新的校验数据,并将所述新写数据和所述新的校验数据写入所述目标条带。
6.一种IO处理装置,其特征在于,所述装置包括:
接收单元,用于接收主机下发的针对目标条带的多个IO;
合并单元,用于基于预设的IO合并规则对所述多个IO进行合并处理,得到合并后的至少一个目标IO,其中,所述IO合并规则为:将存在IO的,且连续的多个数据块的IO合并成一个目标IO;
确定单元,用于针对所述至少一个目标IO中的每一个目标IO,基于所述目标条带中数据块的个数,所述目标条带中校验块的个数,该一个目标IO包括的第一数据块的个数和该一个目标IO中IO覆盖整个数据块的第二数据块的个数,确定该一个目标IO的目标处理方式;
处理单元,用于基于所述目标处理方式对该一个目标IO进行IO处理。
7.如权利要求6所述的装置,其特征在于,基于所述目标条带中数据块的个数,所述目标条带中校验块的个数,该一个目标IO包括的第一数据块的个数和该一个目标IO中IO覆盖整个数据块的第二数据块的个数,确定该一个目标IO的目标处理方式时,所述确定单元具体用于:
计算所述目标条带中数据块的个数和该一个目标IO中IO覆盖整个数据块的第二数据块的个数的差值;
计算所述目标条带中校验块的个数和该一个目标IO包括的第一数据块的个数的和值;
若所述差值小于等于所述和值,则确定该一个目标IO的处理方式为第一处理方式。
8.如权利要求7所述的装置,其特征在于,基于所述目标处理方式对该一个目标IO进行IO处理时,所述处理单元具体用于:
读取所述目标条带的数据块中没有被IO覆盖的地址数据;
基于读取出的数据与新写数据计算新的校验数据;
将所述新写数据和所述新的校验数据写入所述目标条带。
9.如权利要求7所述的装置,其特征在于,所述确定单元还用于:
若所述差值大于所述和值,则确定该一个目标IO的处理方式为第二处理方式。
10.如权利要求9所述的装置,其特征在于,基于所述目标处理方式对该一个目标IO进行IO处理时,所述处理单元具体用于:
读取所述目标条带中有IO覆盖的数据块的数据和校验数据;
基于读取出的数据和所述校验数据计算出没有IO覆盖的数据块的中间数据;
基于所述中间数据和新写数据计算出新的校验数据,并将所述新写数据和所述新的校验数据写入所述目标条带。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011190289.XA CN112256206B (zh) | 2020-10-30 | 2020-10-30 | 一种io处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011190289.XA CN112256206B (zh) | 2020-10-30 | 2020-10-30 | 一种io处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112256206A CN112256206A (zh) | 2021-01-22 |
CN112256206B true CN112256206B (zh) | 2022-05-27 |
Family
ID=74268311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011190289.XA Active CN112256206B (zh) | 2020-10-30 | 2020-10-30 | 一种io处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112256206B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117539407B (zh) * | 2024-01-04 | 2024-03-29 | 浙江大华技术股份有限公司 | 数据存储方法、电子设备及计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101349979A (zh) * | 2008-09-05 | 2009-01-21 | 清华大学 | 大规模容错磁盘阵列存储系统的双磁头用户数据更新方法 |
CN104484135A (zh) * | 2014-12-23 | 2015-04-01 | 浙江宇视科技有限公司 | 一种快速数据读取方法及装置 |
CN104866244A (zh) * | 2015-05-31 | 2015-08-26 | 上海交通大学 | 一种平衡条带写的raid-6i/o调度方法 |
CN107094186A (zh) * | 2017-06-15 | 2017-08-25 | 深圳市云舒网络技术有限公司 | 一种分布式存储系统的纠删码优化方法 |
CN109445690A (zh) * | 2018-10-08 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种raid卡性能优化方法、装置、终端及存储介质 |
CN111737212A (zh) * | 2020-06-19 | 2020-10-02 | 苏州浪潮智能科技有限公司 | 一种分布式文件系统提升性能的方法和设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10558613B1 (en) * | 2018-07-19 | 2020-02-11 | EMC IP Holding Company LLC | Storage system with decrement protection of reference counts |
-
2020
- 2020-10-30 CN CN202011190289.XA patent/CN112256206B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101349979A (zh) * | 2008-09-05 | 2009-01-21 | 清华大学 | 大规模容错磁盘阵列存储系统的双磁头用户数据更新方法 |
CN104484135A (zh) * | 2014-12-23 | 2015-04-01 | 浙江宇视科技有限公司 | 一种快速数据读取方法及装置 |
CN104866244A (zh) * | 2015-05-31 | 2015-08-26 | 上海交通大学 | 一种平衡条带写的raid-6i/o调度方法 |
CN107094186A (zh) * | 2017-06-15 | 2017-08-25 | 深圳市云舒网络技术有限公司 | 一种分布式存储系统的纠删码优化方法 |
CN109445690A (zh) * | 2018-10-08 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种raid卡性能优化方法、装置、终端及存储介质 |
CN111737212A (zh) * | 2020-06-19 | 2020-10-02 | 苏州浪潮智能科技有限公司 | 一种分布式文件系统提升性能的方法和设备 |
Non-Patent Citations (2)
Title |
---|
Work-in-Progress: Maximizing I/O throughput and Minimizing Performance Variation via Reinforcement Learning based I/O Merging for SSDs;C. wu 等;《2018 International Conference on Compilers, Architectures and Synthesis for Embedded Systems (CASES)》;20181101;1-2 * |
多重条带布局的混合RAID系统研究;蔡杰明等;《小型微型计算机系统》;20170515(第05期);1143-1151 * |
Also Published As
Publication number | Publication date |
---|---|
CN112256206A (zh) | 2021-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112783831B (zh) | 一种文件迁移方法及装置 | |
CN111383031B (zh) | 一种区块链中的智能合约执行方法、系统和电子设备 | |
US10795606B2 (en) | Buffer-based update of state data | |
CN112256206B (zh) | 一种io处理方法及装置 | |
CN113032007A (zh) | 一种数据处理方法及装置 | |
CN110535476A (zh) | Ldpc软译码器软信息存储优化方法、装置、计算机设备及存储介质 | |
CN110399101A (zh) | 一种磁盘的写操作处理方法、装置、系统及存储介质 | |
CN111273862A (zh) | 数据存储方法及其装置、可读介质和系统 | |
CN114924911B (zh) | Windows操作系统有效数据备份方法、装置、设备和存储介质 | |
CN108334457B (zh) | 一种io处理方法及装置 | |
CN112800057B (zh) | 一种指纹表管理方法及装置 | |
CN115933994A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN106202262B (zh) | 一种信息处理方法及电子设备 | |
CN114374392A (zh) | 一种数据压缩存储方法、装置、终端设备及可读存储介质 | |
CN107943415A (zh) | 基于fat文件系统的查找空闲簇的方法和系统 | |
CN113590041A (zh) | 一种数据保护存储方法、装置及设备 | |
US9658976B2 (en) | Data writing system and method for DMA | |
CN112799589A (zh) | 一种数据读取方法及装置 | |
CN111984554B (zh) | 一种数据处理方法及装置 | |
CN113553009B (zh) | 数据读取方法、数据写入方法及数据读写方法 | |
CN111782146A (zh) | 实现写缓存的方法、装置、计算机设备及存储介质 | |
CN113194118B (zh) | 一种顺序流识别方法及装置 | |
US20070294492A1 (en) | Method and apparatus for reducing flash cycles with a generational filesystem | |
US20230070503A1 (en) | Data protection method for memories and memory device thereof | |
CN111512631A (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 |