CN110286858B - 一种数据处理方法及相关设备 - Google Patents
一种数据处理方法及相关设备 Download PDFInfo
- Publication number
- CN110286858B CN110286858B CN201910561964.6A CN201910561964A CN110286858B CN 110286858 B CN110286858 B CN 110286858B CN 201910561964 A CN201910561964 A CN 201910561964A CN 110286858 B CN110286858 B CN 110286858B
- Authority
- CN
- China
- Prior art keywords
- data
- request
- data writing
- writing
- requests
- 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 27
- 238000000034 method Methods 0.000 claims description 36
- 230000008569 process Effects 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 8
- 239000007787 solid Substances 0.000 description 9
- 238000013507 mapping Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 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/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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
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
本发明公开了一种数据处理方法及相关设备,在获得至少两个数据写入请求之后,从至少两个数据写入请求中确定目标数据写入请求,将目标数据写入请求对应的数据顺次写入存储介质,由于目标数据写入请求对应的数据是顺次写到存储介质中,意味着多个数据写入请求能够对应一个用于将数据写入存储介质的线程,降低存储介质对应的线程数量,从而克服同时通过多条线程并发写入数据到存储介质时造成的存储介质负载过高的技术问题,进而达到了提升存储介质的读写效率的技术效果。
Description
技术领域
本发明涉及数据传输领域,尤其涉及一种数据处理方法及相关设备。
背景技术
现如今,鉴于固态硬盘的读写速度高于机械磁盘,数据会从机械硬盘复制到固态硬盘中,以便后续请求该数据时能够更快地获得该数据。
在数据从机械硬盘复制到固态硬盘之前,需要根据一致性哈希算法,确定将数据复制到哪一块固态硬盘上,并为将要复制到固态硬盘中的数据建立一个线程,通过这个线程将机械硬盘上的数据复制到固态硬盘中。
然而,当多个线程同时将数据复制到同一个固态硬盘时,会导致固态硬盘的负载过高,进而影响固态硬盘的读写效率。
发明内容
鉴于上述问题,本发明提供一种克服上述问题或者至少部分地解决上述问题的一种数据处理方法及相关设备,技术方案如下:
一种数据处理方法,所述方法包括:
获得至少两个数据写入请求;
从所述至少两个数据写入请求中确定目标数据写入请求;
将目标数据写入请求对应的数据顺次写入存储介质。
可选的,所述从所述至少两个数据写入请求中确定目标数据写入请求包括:
基于各个数据写入请求的属性,从所述至少两个数据写入请求中确定目标数据写入请求。
可选的,所述基于各个数据写入请求的属性,从所述至少两个数据写入请求中确定目标数据写入请求包括:
基于各个数据写入请求对应的数据的数据量,从所述至少两个数据写入请求中确定所述目标数据写入请求。
可选的,所述基于各个数据写入请求对应的数据的数据量,从所述至少两个数据写入请求中确定所述目标数据写入请求包括:
基于各个数据写入请求对应的数据的数据量由低到高的方式,确定所有数据写入请求的排序;
从所有数据写入请求的排序的起始位置开始,确定位于起始位置至预设位置的数据写入请求为所述目标数据写入请求。
可选的,所述基于各个数据写入请求对应的数据的数据量,从所述至少两个数据写入请求中确定所述目标数据写入请求包括:
基于各个数据写入请求对应的数据的数据量,从所述至少两个数据写入请求中确定对应的数据的数据量小于预设数据量的数据写入请求;
确定对应的数据的数据量小于预设数据量的数据写入请求为所述目标数据写入请求。
可选的,所述将目标数据写入请求对应的数据顺次写入存储介质包括:
基于目标数据写入请求对应的数据的数据量由低到高的顺序,将所述目标数据写入请求对应的数据顺次写入所述存储介质。
可选的,所述基于各个数据写入请求的属性,从所述至少两个数据写入请求中确定目标数据写入请求包括:
基于各个数据写入请求对应的数据的任务计数值,从所述至少两个数据写入请求中确定所述目标数据写入请求。
可选的,所述基于各个数据写入请求对应的数据的任务计数值,从所述至少两个数据写入请求中确定所述目标数据写入请求包括:
基于各个数据写入请求对应的数据的任务计数值,从所述至少两个数据写入请求中确定对应的数据的任务计数值大于预设计数值的数据写入请求;
确定对应的数据的任务计数值大于预设计数值的数据写入请求为所述目标数据写入请求。
可选的,所述将目标数据写入请求对应的数据顺次写入存储介质包括:
基于目标数据写入请求对应的数据的任务计数值由大到小的顺序,将所述目标数据写入请求对应的数据顺次写入所述存储介质。
一种数据处理装置,包括数据写入请求获得单元、目标数据写入请求获得单元和数据写入单元,
所述数据写入请求获得单元,用于获得至少两个数据写入请求;
所述目标数据写入请求获得单元,用于从所述至少两个数据写入请求中确定目标数据写入请求;
所述数据写入单元,用于将目标数据写入请求对应的数据顺次写入存储介质。
可选的,所述目标数据写入请求获得单元具体用于基于各个数据写入请求的属性,从所述至少两个数据写入请求中确定目标数据写入请求。
可选的,所述目标数据写入请求获得单元具体用于基于各个数据写入请求对应的数据的数据量,从所述至少两个数据写入请求中确定所述目标数据写入请求。
可选的,所述目标数据写入请求获得单元具体用于基于各个数据写入请求对应的数据的数据量由低到高的方式,确定所有数据写入请求的排序;从所有数据写入请求的排序的起始位置开始,确定位于起始位置至预设位置的数据写入请求为所述目标数据写入请求。
可选的,所述目标数据写入请求获得单元具体用于基于各个数据写入请求对应的数据的数据量,从所述至少两个数据写入请求中确定对应的数据的数据量小于预设数据量的数据写入请求;确定对应的数据的数据量小于预设数据量的数据写入请求为所述目标数据写入请求。
可选的,所述数据写入单元具体用于基于目标数据写入请求对应的数据的数据量由低到高的顺序,将所述目标数据写入请求对应的数据顺次写入所述存储介质。
可选的,所述目标数据写入请求获得单元具体用于基于各个数据写入请求对应的数据的任务计数值,从所述至少两个数据写入请求中确定所述目标数据写入请求。
可选的,所述目标数据写入请求获得单元具体用于基于各个数据写入请求对应的数据的任务计数值,从所述至少两个数据写入请求中确定对应的数据的任务计数值大于预设计数值的数据写入请求;确定对应的数据的任务计数值大于预设计数值的数据写入请求为所述目标数据写入请求。
可选的,所述数据写入单元具体用于基于目标数据写入请求对应的数据的任务计数值由大到小的顺序,将所述目标数据写入请求对应的数据顺次写入所述存储介质。
一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时实现上述数据处理方法。
一种计算机设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述处理器执行程序时实现上述数据处理方法。
借由上述技术方案,在获得至少两个数据写入请求之后,从至少两个数据写入请求中确定目标数据写入请求,将目标数据写入请求对应的数据顺次写入存储介质,由于目标数据写入请求对应的数据是顺次写到存储介质中,意味着多个数据写入请求能够对应一个用于将数据写入存储介质的线程,降低存储介质对应的线程数量,从而克服同时通过多条线程并发写入数据到存储介质时造成的存储介质负载过高的技术问题,进而达到了提升存储介质的读写效率的技术效果,并且写入到存储介质中的数据是从多个数据写入请求中确定出的目标数据写入请求对应的数据,说明不需要将每个数据写入请求对应的数据(不需要写入的数据视为是不重要数据)写入到存储介质,防止不重要数据对存储介质的空间占用,提高存储介质的利用率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种数据处理方法的流程示意图;
图2示出了本发明实施例提供的另一种数据处理方法的流程示意图;
图3示出了本发明实施例提供的另一种数据处理方法的流程示意图;
图4示出了本发明实施例提供的另一种数据处理方法的流程示意图;
图5示出了本发明实施例提供的再一种数据处理方法的流程示意图;
图6示出了本发明实施例提供的一种数据处理方法中的第一序列、第二序列和第三序列之间的关系说明图;
图7示出了本发明实施例提供的数据处理方法对应的架构与现有技术对应的架构的对比图;
图8示出了本发明实施例提供的一种数据处理装置的结构示意图;
图9示出了本发明实施例提供的另一种数据处理装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
如图1所示,本发明实施例提供的一种数据处理方法,可以包括:
S100、获得至少两个数据写入请求。其中至少两个数据写入请求中各个数据写入请求的相互关系以及各个数据写入请求对应的数据的数据类型,本实施例不进行限定,例如各个数据写入请求对应的数据可以互不相同,或者,所有数据写入请求中部分数据写入请求对应的数据不同,部分数据写入请求对应的数据相同,数据的数据类型可以包括文本文档、图片、音频、视频、程序等中的一种或多种数据类型。
S200、从至少两个数据写入请求中确定目标数据写入请求。也就是说在获得多个数据写入请求之后,需要先从这多个数据写入请求中确定出目标数据写入请求,这就意味着多个数据写入请求能够对应一个用于将数据写入存储介质的线程,尤其是获得的全部数据写入请求对应一个用于将数据写入存储介质的线程,以降低存储介质对应的线程数量。
或者在获得数据写入请求之后,将多个数据写入请求划分成多个请求组,每个请求组中包含至少两个数据写入请求,这样每个请求组能够对应一个用于将数据写入存储介质的线程,通过每个请求组对应的线程从该请求组中确定目标数据写入请求,这种方式也能够降低存储介质对应的线程数量。在实际应用中,可以预先构建多个请求组,且多个请求组中的数据为空,在获得一个数据写入请求之后可以将该数据写入请求写入到一个请求组中,如果请求组的数据写入请求的条数达到上限则禁止再次写入。
存储介质对应的线程除用于确定目标数据写入请求的线程之外,还有具有其他功能的线程,因此本实施例中多个请求组的数量需要结合存储介质对应的具有其他功能的线程动态调整,以使得同时向存储介质执行操作的线程的数量尽可能不大于预设数量,该预设数量能够平衡存储介质的效率。下面举例说明动态调整:
例如:如果同时对存储介质进行操作的线程超过5个会使该存储介质过载,此时该存储介质已经有3个线程正在执行操作,则此时可以构建一个或两个请求组;若之前的3个执行其他操作的线程有两个完成,可以再次构建一个请求组,使构建请求组对应的线程的数量加上当前正在执行写操作的线程的数量不超过存储介质正常执行操作的线程的数量。
并且在实际应用中存在一种情况:同时向存储介质执行操作的线程可能会超过预设数量,原因是用于响应其他操作的线程增加,在此种情况下保留一个用于响应数据写入请求的线程,虽然超过预设数量但是相对于现有通过多个线程并发响应数据写入请求来说,还是会降低同时向存储介质执行操作的线程的数量。
此外,在这里还需要说明的一点是:实际应用中可能有多个存储介质能够存储目标数据写入请求对应的数据,在此情况下可以为每个存储介质分配各自对应的用于写入数据的线程,防止同一线程向多个存储介质写入数据引发的冲突,优选每个存储介质对应一个线程,以将现有通过多个线程并发写入数据改为通过单一线程依次写入数据,从而降低同时向存储介质进行写操作的线程数量,提高存储介质的效率。
其中从至少两个数据写入请求中确定出的目标数据写入请求能够增加存储介质中数据的命中率和/或能够提高向存储介质写入数据的写入速度,在本实施例中能够基于各个数据写入请求的属性,从至少两个数据写入请求中确定目标数据写入请求,各个数据写入请求的属性可以既包括数据写入请求自身的属性也包括数据写入请求对应的数据的属性,在本实施例中以数据写入请求对应的数据的属性为例并结合附图说明如何确定目标数据写入请求,对于如何基于数据写入请求自身的属性确定目标数据写入请求本实施例不再阐述。
S300、将目标数据写入请求对应的数据顺次写入存储介质。
从上述技术方案可知,在获得至少两个数据写入请求之后,从至少两个数据写入请求中确定目标数据写入请求,将目标数据写入请求对应的数据顺次写入存储介质,由于目标数据写入请求对应的数据是顺次写到存储介质中,意味着多个数据写入请求能够对应一个用于将数据写入存储介质的线程,降低存储介质对应的线程数量,从而克服同时通过多条线程并发写入数据到存储介质时造成的存储介质负载过高的技术问题,进而达到了提升存储介质的读写效率的技术效果,并且写入到存储介质中的数据是从多个数据写入请求中确定出的目标数据写入请求对应的数据,说明不需要将每个数据写入请求对应的数据(不需要写入的数据视为是不重要数据)写入到存储介质,防止不重要数据对存储介质的空间占用,提高存储介质的利用率。
下面将结合附图对目标数据写入请求的确定进行说明,发明人经过研究发现,增加存储介质中数据的命中率和提高向存储介质写入数据的写入速度的一种方式是:从多个数据写入请求中选取较小的数据对应的数据写入请求,即数据占用存储介质的空间较小,而之所以这种数据写入请求具有上述两方面的优点是因为:数据占用存储介质的空间越小,在一定时间内写入到存储介质中的数据也越多,写入速度得到提高,并且写入到存储介质中的数据越多,说明从存储介质中能够访问到的数据也越多,如两种场景:场景一、在一定时间内10条1M(兆)的数据,场景二、在一定时间内写入1条10M的数据,相对于场景二来说场景一能够访问到10条数据,相对于1条数据来说提高命中率,对于这种方式的流程图如图2所示,示出本发明实施例提供的另一种数据处理方法,步骤S200可以包括:
S210、基于各个数据写入请求对应的数据的数据量,从至少两个数据写入请求中确定目标数据写入请求。基于对应的数据的数据量确定目标数据写入请求的方式包括但不限于如下两种方式:
一种方式是:基于各个数据写入请求对应的数据的数据量由低到高的方式,确定所有数据写入请求的排序,从所有数据写入请求的排序的起始位置开始,确定位于起始位置至预设位置的数据写入请求为目标数据写入请求,由此基于对应的数据的数据量由低到高排序之后能够将所有数据写入请求中排序在前N位的数据写入请求确定为目标数据写入请求,其中前N位表示起始位置至预设位置,起始位置为排序中的第一位,即所有数据写入请求中对应的数据的数据量最小的数据写入请求,预设位置则可以根据实际需求而定,如预设位置可以是排序中的第十位,则可以将排序在前10位的数据写入请求确定为目标数据写入请求。
例如:多个数据写入请求分别是:数据写入请求A、数据写入请求B和数据写入请求C,数据写入请求A对应的数据的数据量为20byte,数据写入请求B对应的数据的数据量为2byte以及数据写入请求C对应的数据的数据量为5byte,那么基于这三个数据写入请求对应的数据的数据量得到的排序为:数据写入请求B、数据写入请求C和数据写入请求A,预设位置限定为排序中的第二位,由此可以将数据写入请求B和数据写入请求C确定为目标数据写入请求,这样就可以优先对对应的数据的数据量小的数据写入请求进行处理。
另一种方式是:基于各个数据写入请求对应的数据的数据量,从至少两个数据写入请求中确定对应的数据的数据量小于预设数据量的数据写入请求,确定对应的数据的数据量小于预设数据量的数据写入请求为目标数据写入请求,其中预设数据量可以根据实际需求而定,本实施例不限定预设数据量的取值。
仍以上述多个数据写入请求分别是:数据写入请求A、数据写入请求B和数据写入请求C,数据写入请求A对应的数据的数据量为20byte,数据写入请求B对应的数据的数据量为2byte以及数据写入请求C对应的数据的数据量为5byte为例,预设数据量限定为3byte,由此可以将数据写入请求B确定为目标数据写入请求,这样也可以优先对对应的数据的数据量小的数据写入请求进行处理。
相对应的步骤S300可以包括:S310、基于目标数据写入请求对应的数据的数据量由低到高的顺序,将目标数据写入请求对应的数据顺次写入存储介质,由此可以基于对应的数据的数据量由低到高来依次处理目标数据写入请求,尤其是优先处理对应的数据的数据量最小的目标数据写入请求。
增加存储介质中数据的命中率和提高向存储介质写入数据的写入速度的另一种方式是:从多个数据写入请求中被访问次数较多的数据对应的数据写入请求,其中被访问次数的一种表现形式为任务计数值,基于此本实施例确定目标数据写入请求的过程如图3所示,示出本发明实施例提供的另一种数据处理方法,步骤S200可以包括:
S220、基于各个数据写入请求对应的数据的任务计数值,从至少两个数据写入请求中确定目标数据写入请求。一种方式是:基于各个数据写入请求对应的数据的任务计数值,从至少两个数据写入请求中确定对应的数据的任务计数值大于预设计数值的数据写入请求,确定对应的数据的任务计数值大于预设计数值的数据写入请求为目标数据写入请求,其中对应的任务计数值大于预设计数值,说明数据经常被访问,由此可以将对应的数据的任务计数值大于预设计数值的数据写入请求为目标数据写入请求,以增加命中率,预设计数值可以根据实际需求而定,本实施例不限定预设计数值的取值。
另一种方式是:基于各个数据写入请求对应的数据的任务计数值由大到小的方式,确定所有数据写入请求的排序,从所有数据写入请求的排序的起始位置开始,确定位于起始位置至预定位置的数据写入请求为目标数据写入请求,由此基于对应的数据的任务计数值由大到小排序之后能够将所有数据写入请求中排序在前M位的数据写入请求确定为目标数据写入请求,其中前M位表示起始位置至预定位置,起始位置为排序中的第一位,即所有数据写入请求中对应的数据的任务计数值最大的数据写入请求,预定位置则可以根据实际需求而定,如预定位置可以是排序中的第五位,则可以将排序在前5位的数据写入请求确定为目标数据写入请求。
相对应的步骤S300可以包括:S320、基于目标数据写入请求对应的数据的任务计数值由大到小的顺序,将目标数据写入请求对应的数据顺次写入存储介质,由此可以基于对应的数据的任务计数值由大到小来依次处理目标数据写入请求,尤其是优先处理对应的数据的任务计数值最大的目标数据写入请求。
其中任务计数值的获取方式是:基于获得至少两个数据写入请求中对应有相同数据的数据写入请求而定,具体的如果至少两个数据写入请求中一个数据写入请求对应的数据与剩余数据写入请求对应的数据均不同,则确定该数据写入请求对应的任务计数值为预设初始值,预设初始值的取值可以根据实际应用而定,对此本实施例不加以限定;如果至少两个数据写入请求中一个数据写入请求对应的数据与X个数据写入请求对应的数据相同,则确定该数据写入请求对应的任务计数值为X+1,且还可以从这些对应相同数据的数据写入请求中保留一个数据写入请求。
在本实施例中,除通过上述图2和图3所示的确定目标数据写入请求的方式之外,本实施例还可以将上述两种方式相结合来确定目标数据写入请求,其流程图如图4所示,步骤S200可以包括:
S210、基于各个数据写入请求对应的数据的数据量,从至少两个数据写入请求中确定目标数据写入请求。
S220、基于各个数据写入请求对应的数据的任务计数值,从至少两个数据写入请求中确定目标数据写入请求。
上述步骤S210和S220已在前述实施例中进行说明,请参见前述实施例,不再赘述,通过上述图4中的步骤S210和步骤S220能够从对应的数据的数据量和对应的数据的任务计数值出发确定目标数据写入请求,相对应的顺次写入到存储介质中时可以参照上述步骤S310和S320,对此本实施例不再阐述。
除图4所示方式之外还可以有其他结合方式,例如基于对应的数据的数据量和对应的数据的任务计数值中的一方面,从至少两个数据写入请求中选取出部分数据写入请求,再基于另一方面,从选取出的部分数据写入请求中确定目标数据写入请求。例如基于对应的数据的数据量,从至少两个数据写入请求中选取出部分数据写入请求(选取方式同步骤S210),再基于对应的数据的任务计数值,从选取出的部分数据写入请求中确定出目标数据写入请求(确定方式同步骤S220),或者基于对应的数据的任务计数值,从至少两个数据写入请求中选取出部分数据写入请求(选取方式同步骤S220),再基于对应的数据的数据量,从选取出的部分数据写入请求中确定出目标数据写入请求(确定方式同步骤S210)。
相对应的在写入存储介质中时,可以基于对应的数据的数据量由低到高顺次写入或者基于对应的数据的任务计数值由大到小顺次写入,当然也可以将两种方式相结合,例如如何在基于对应的数据的数据量由低到高顺次写入时,有部分目标数据写入请求对应的数据的数据量相同,此时对这些对应的数据的数据量相同的目标数据写入请求则可以基于对应的数据的任务计数值由大到小的方式写入。此外本实施例还可以删除没有被确定为目标数据写入请求的数据写入请求,以降低空间占用。
在实际应用中,为了实施上述数据处理方法,可以预先设置第一序列和第二序列,第一序列用于暂时存储获得的至少两个数据写入请求,第二序列用于暂时存储目标数据写入请求,结合第一序列和第二序列,本实施例提供的再一种数据处理方法的流程图如图5所示,可以包括:
S501、获得至少两个数据写入请求。
S502、在获得每个数据写入请求的过程中,检测第一序列中是否存在当前获得的数据写入请求,如果存在,则执行步骤S503,如果不存在,则执行步骤S504。
一种检测第一序列中是否存在该数据写入请求的方式是:根据多个数据写入请求中任一数据写入请求对应的数据是否与第一序列中任一数据写入请求对应的数据相同,判断第一序列中是否已存在该数据写入请求,如果对应的数据相同,说明第一序列中已存在该数据写入请求,此时也只需要响应对应的相同数据的多个数据写入请求中的一个数据写入请求。
例如,获得数据写入请求A的过程中,发现数据写入请求A对应的数据与第一序列中数据写入请求B对应的数据相同,则说明数据写入请求A和数据写入请求B相同,后续可以忽略数据写入请求A和数据写入请求B中的一个,响应其中一个即可。
S503、增加第一序列中与该数据写入请求相同的数据写入请求的任务计数值,禁止写入该数据写入请求至第一序列,以在第一序列中仅保留一个与当前获得的数据写入请求具有相同数据的数据写入请求;所谓增加该数据写入请求的任务计数值是在该数据写入请求已有的任务计数值的基础上增加,例如增加但不限于增加1。而已有的任务计数值是指在本次检测基础上已经得到的任务计数值。
仍以上述数据写入请求A为例进行说明,如果第一次在第一序列中检测到存在与数据写入请求A相同的数据写入请求B,则在预设初始值基础上增加1,得到数据写入请求B的任务计数值,如果第二次再次写入另一个数据写入请求A时,在第一序列会再次检测到存在与数据写入请求A相同的数据写入请求B,则对第一次得到的任务计数值进行加1,…以此类推如果第N次在第一序列检测到存在与数据写入请求相同A的数据写入请求B,则对第N-1次得到的任务计数值进行加1。
S504、确定当前获得的数据写入请求的任务计数值为预设初始值,将当前获得的数据写入请求写入第一序列中,一种方式是:将当前获得的数据写入请求与第一序列中的指定存储地址建立映射关系,所述指定存储地址用于指示数据写入请求在第一序列中的位置。对于预设初始值的设置可以根据实际应用而定,对此本实施例不加以限定。
通过增加第一序列中的数据写入请求的任务计数值的方式,可以获知当前最迫切需要响应的数据写入请求。这是因为数据写入请求的任务计数值越大,说明对该数据写入请求对应的数据的写入越迫切,换句话说,当对任务计数值大的数据写入请求优先响应时,等于同时响应了数量等于任务计数值的多个数据写入请求,这样可以避免后续更多与该数据写入请求相同的数据写入请求占用写操作线程,使本实施例提供的方法在使用中效率更高。
S505、对写入第一序列中的各个数据写入请求进行排序,具体可以基于各个数据写入请求的属性进行排序,一种方式是:基于各个数据写入请求对应的数据的数据量由高到低的方式进行排序;另一种方式是:基于各个数据写入请求对应的数据的任务计数值由大到小的方式进行排序;再一种方式是:基于各个数据写入请求对应的数据的数据量由高到低的方式进行排序,对于排序后有相同数据量的数据写入请求来说再基于对应的数据的任务计数值由大到小的方式进行排序;再一种方式是:基于各个数据写入请求对应的数据的任务计数值由大到小的方式进行排序,对于排序后有相同数据量的数据写入请求来说再基于对应的数据的数据量由高到低的方式进行排序,上述四种排序方式本实施例不再阐述。
S506、从第一序列中写入的各个数据写入请求中确定目标数据写入请求,确定方式请参阅上述方法实施例中的相关说明,对此本实施例不再阐述。
S507、将目标数据写入请求写入到第二序列中,一种方式是将目标数据写入请求与第二序列中的指定存储地址建立映射关系。
S508、从第二序列中顺次读取目标数据写入请求并写入到存储介质中。
在顺次写入存储介质过程中,本实施例还可以按照预设的写入速度将目标数据写入请求对应的数据顺次写入到存储介质中。其中预设的写入速度可以根据实际写入情况进行调整,其设置时间可以在写入数据之前,那么,当获得目标数据写入请求之后,可以将目标数据写入请求对应的数据按照设置的写入速度写入到存储介质。例如,设置的写入速度为5兆/秒,那么可以按照5兆/秒的速度将目标数据写入请求对应的数据写入到存储介质中。
此外预设的写入速度也可以与当前向存储介质执行的写入速度有关。例如,存储介质正常可承受的写入速度为20兆/秒,当目标数据写入请求对应的数据写入到该存储介质之前,该存储介质正在承受15兆/秒的写入速度,那么目标数据写入请求对应的数据最大按照5兆/秒的写入速度写入到该存储介质,若在目标数据写入请求对应的数据按照5兆/秒的写入速度写入到该存储介质的过程中,存储介质共承受18兆/秒的写入速度,此时可以将目标数据写入请求对应的数据写入到该存储介质的写入速度最高提高至7兆/秒,以控制存储介质正在承受的写入速度在该存储介质的正常可承受的范围内,从而可以提升文件写入该存储介质的写入效率,保证该存储介质不会过载。
此外,本实施例对于第一序列中指定存储地址建立映射关系的数据写入请求来说,还可以根据预先设置的条件,将第一序列中指定存储地址建立映射关系的部分数据写入请求删除,如将写入到第一序列中的部分数据写入请求删除。预先设置的条件的一种方式是按照预定周期,删除第一序列中没有确定为目标数据写入请求的数据写入请求,又或者在对第一序列中写入的所有数据写入请求排序之后,将排序为最后一个或最后的Y个数据写入请求删除,由此如果当前时间达到了预定周期,则需要将第一序列中排序为最后一个或最后的Y个数据写入请求删除,Y为大于1的自然数。
预先设置的条件的另一种方式是在第一序列中数据写入请求数量超过预设请求数量后,删除数据写入请求,删除方式请参阅上述说明。
通过上述预先设置的条件可以删除部分数据写入请求,从而可以避免第一序列中过多的数据写入请求积压,减少第一序列的压力且通过排序可以降低对排序靠后的数据写入请求的获取,而一般靠后的数据写入请求视为是重要程度低的请求,这样可以将资源应用到重要程度高的请求上,提高资源的利用。
本实施例还可以对获得的数据写入请求进行限定,例如获得的数据写入请求对应的数据为热点数据时方可获取该数据写入请求,对于热点数据的判断方式是:如果数据写入请求对应的数据的请求次数超过预设次数,则确定该数据写入请求对应的数据是热点数据,对于预设次数的限定可以根据实际引用而定,由此在本实施例中对应的数据是热点数据的数据写入请求可以先暂存至第三序列中,然后从第三序列中获得数据写入请求至第一序列中,在获得数据写入请求至第一序列的过程中,对数据写入请求进行任务计数值的计算以及对数据写入请求进行排序。
为了便于理解,此处结合图6进行举例说明:对应的数据是热点数据的数据写入请求依次写入到第三序列中,从第三序列中依次获得各个数据写入请求至第一序列中,并在获得各个数据写入请求的过程中结合附图5确定各个数据写入请求对应的数据的任务计数值以及对各个数据写入请求进行排序,以使第一序列中的各个数据写入请求形成有序排列,然后基于上述确定目标数据写入请求的方式从第一序列的各个数据写入请求中确定目标数据写入请求,并将目标数据写入请求写入到第二序列中,将第二序列中的目标数据写入请求对应的数据顺次写入存储介质中。并且为了防止请求积压,第一序列能够按照一定策略删除部分数据写入请求,对应的策略请参见上述描述。
在引入第一序列至第三序列的基础上,本实施例提供的数据处理方法针对的系统架构相对于现有的系统架构也会发生变化,如图7所示,第一序列至第三序列分别处于实施上述数据处理方法的设备中,在该设备的处理器中建立一个写操作线程来实施上述数据处理方法,生成数据写入请求的设备通过各自的线程将数据写入请求写入到第三序列中(此阶段是基于多个写线程并发写入到第三序列中),再通过实施上述数据处理方法的设备中的写操作线程将第三序列中的数据写入请求转移至第一序列中,根据上述图5确定各个数据写入请求对应的数据的任务计数值以及对各个数据写入请求进行排序,排序的结果如图7的第一序列所示,再通过写操作线程从第一序列写入的各个数据写入请求中确定目标数据写入请求(如图7中的数据写入请求B和数据写入请求C分别为目标数据写入请求),通过写操作线程将目标数据写入请求写入到第二序列中,最后通过写操作线程将目标数据写入请求对应的数据写入请求对应的数据写入至存储介质。
与上述方法实施例相对应,本发明实施例还提供了一种数据处理装置,其结构如图8所示,可以包括数据写入请求获得单元100、目标数据写入请求获得单元200和数据写入单元300。
所述数据写入请求获得单元100,用于获得至少两个数据写入请求。
其中至少两个数据写入请求中各个数据写入请求的相互关系以及各个数据写入请求对应的数据的数据类型,本实施例不进行限定,例如各个数据写入请求对应的数据可以互不相同,或者,所有数据写入请求中部分数据写入请求对应的数据不同,部分数据写入请求对应的数据相同,数据的数据类型可以包括文本文档、图片、音频、视频、程序等中的一种或多种数据类型。
所述目标数据写入请求获得单元200,用于从所述至少两个数据写入请求中确定目标数据写入请求。
也就是说在数据写入请求获得单元100获得多个数据写入请求之后,目标数据写入请求获得单元200需要先从这多个数据写入请求中确定出目标数据写入请求,这就意味着多个数据写入请求能够对应一个用于将数据写入存储介质的线程,尤其是获得的全部数据写入请求对应一个用于将数据写入存储介质的线程,以降低存储介质对应的线程数量。
或者在数据写入请求获得单元100获得数据写入请求之后,目标数据写入请求获得单元200将多个数据写入请求划分成多个请求组,每个请求组中包含至少两个数据写入请求,这样每个请求组能够对应一个用于将数据写入存储介质的线程,通过每个请求组对应的线程从该请求组中确定目标数据写入请求,这种方式也能够降低存储介质对应的线程数量。在实际应用中,可以预先构建多个请求组,且多个请求组中的数据为空,在获得一个数据写入请求之后可以将该数据写入请求写入到一个请求组中,如果请求组的数据写入请求的条数达到上限则禁止再次写入。
上述从至少两个数据写入请求中确定出的目标数据写入请求能够增加存储介质中数据的命中率和/或能够提高向存储介质写入数据的写入速度,例如目标数据写入请求获得单元200基于各个数据写入请求的属性,从至少两个数据写入请求中确定目标数据写入请求,以使基于各个数据写入请求的属性确定的目标数据写入请求能够增加存储介质中数据的命中率和/或能够提高向存储介质写入数据的写入速度,各个数据写入请求的属性可以既包括数据写入请求自身的属性也包括数据写入请求对应的数据的属性,后续将对如何基于数据写入请求自身的属性确定目标数据写入请求进行阐述。
所述数据写入单元300,用于将目标数据写入请求对应的数据顺次写入存储介质。
从上述技术方案可知,在数据写入请求获得单元100获得至少两个数据写入请求之后,目标数据写入请求获得单元200从至少两个数据写入请求中确定目标数据写入请求,数据写入单元300将目标数据写入请求对应的数据顺次写入存储介质,由于目标数据写入请求对应的数据是顺次写到存储介质中,意味着多个数据写入请求能够对应一个用于将数据写入存储介质的线程,降低存储介质对应的线程数量,从而克服同时通过多条线程并发写入数据到存储介质时造成的存储介质负载过高的技术问题,进而达到了提升存储介质的读写效率的技术效果,并且写入到存储介质中的数据是从多个数据写入请求中确定出的目标数据写入请求对应的数据,说明不需要将每个数据写入请求对应的数据(不需要写入的数据视为是不重要数据)写入到存储介质,防止不重要数据对存储介质的空间占用,提高存储介质的利用率。
下面分别阐述基于各个数据写入请求的属性确定目标数据写入请求的过程,发明人经过研究发现,增加存储介质中数据的命中率和提高向存储介质写入数据的写入速度的一种方式是:从多个数据写入请求中选取较小的数据对应的数据写入请求,即数据占用存储介质的空间较小,而之所以这种数据写入请求具有上述两方面的优点是因为:数据占用存储介质的空间越小,在一定时间内写入到存储介质中的数据也越多,写入速度得到提高,并且写入到存储介质中的数据越多,说明从存储介质中能够访问到的数据也越多,如两种场景:场景一、在一定时间内10条1M(兆)的数据,场景二、在一定时间内写入1条10M的数据,相对于场景二来说场景一能够访问到10条数据,相对于1条数据来说提高命中率,对于执行这种方式的目标数据写入请求获得单元200可以具体用于基于各个数据写入请求对应的数据的数据量,从所述至少两个数据写入请求中确定所述目标数据写入请求。目标数据写入请求获得单元200基于对应的数据的数据量确定目标数据写入请求的方式包括但不限于如下两种方式:
一种方式是:目标数据写入请求获得单元200具体用于基于各个数据写入请求对应的数据的数据量由低到高的方式,确定所有数据写入请求的排序;从所有数据写入请求的排序的起始位置开始,确定位于起始位置至预设位置的数据写入请求为所述目标数据写入请求,由此基于对应的数据的数据量由低到高排序之后能够将所有数据写入请求中排序在前N位的数据写入请求确定为目标数据写入请求,其中前N位表示起始位置至预设位置,起始位置为排序中的第一位,即所有数据写入请求中对应的数据的数据量最小的数据写入请求,预设位置则可以根据实际需求而定,如预设位置可以是排序中的第十位,则可以将排序在前10位的数据写入请求确定为目标数据写入请求。
另一种方式是:目标数据写入请求获得单元200具体用于基于各个数据写入请求对应的数据的数据量,从所述至少两个数据写入请求中确定对应的数据的数据量小于预设数据量的数据写入请求;确定对应的数据的数据量小于预设数据量的数据写入请求为所述目标数据写入请求。其中预设数据量可以根据实际需求而定,本实施例不限定预设数据量的取值。
相对应的所述数据写入单元300可以具体用于基于目标数据写入请求对应的数据的数据量由低到高的顺序,将所述目标数据写入请求对应的数据顺次写入所述存储介质,由此可以基于对应的数据的数据量由低到高来依次处理目标数据写入请求,尤其是优先处理对应的数据的数据量最小的目标数据写入请求。
增加存储介质中数据的命中率和提高向存储介质写入数据的写入速度的另一种方式是:从多个数据写入请求中被访问次数较多的数据对应的数据写入请求,其中被访问次数的一种表现形式为任务计数值,基于此本实施例目标数据写入请求获得单元200确定目标数据写入请求可以具体为:基于各个数据写入请求对应的数据的任务计数值,从至少两个数据写入请求中确定目标数据写入请求。一种方式是:目标数据写入请求获得单元200具体用于基于各个数据写入请求对应的数据的任务计数值,从至少两个数据写入请求中确定对应的数据的任务计数值大于预设计数值的数据写入请求;确定对应的数据的任务计数值大于预设计数值的数据写入请求为目标数据写入请求。
其中对应的任务计数值大于预设计数值,说明数据经常被访问,由此可以将对应的数据的任务计数值大于预设计数值的数据写入请求为目标数据写入请求,以增加命中率,预设计数值可以根据实际需求而定,本实施例不限定预设计数值的取值。
另一种方式是:目标数据写入请求获得单元200具体用于基于各个数据写入请求对应的数据的任务计数值由大到小的方式,确定所有数据写入请求的排序,从所有数据写入请求的排序的起始位置开始,确定位于起始位置至预定位置的数据写入请求为目标数据写入请求,由此基于对应的数据的任务计数值由大到小排序之后能够将所有数据写入请求中排序在前M位的数据写入请求确定为目标数据写入请求,其中前M位表示起始位置至预定位置,起始位置为排序中的第一位,即所有数据写入请求中对应的数据的任务计数值最大的数据写入请求,预定位置则可以根据实际需求而定,如预定位置可以是排序中的第五位,则可以将排序在前5位的数据写入请求确定为目标数据写入请求。
相对应的数据写入单元300具体用于基于目标数据写入请求对应的数据的任务计数值由大到小的顺序,将所述目标数据写入请求对应的数据顺次写入所述存储介质。由此可以基于对应的数据的任务计数值由大到小来依次处理目标数据写入请求,尤其是优先处理对应的数据的任务计数值最大的目标数据写入请求。
其中任务计数值的获取方式是:基于获得至少两个数据写入请求中对应有相同数据的数据写入请求而定,具体的如果至少两个数据写入请求中一个数据写入请求对应的数据与剩余数据写入请求对应的数据均不同,则确定该数据写入请求对应的任务计数值为预设初始值,预设初始值的取值可以根据实际应用而定,对此本实施例不加以限定;如果至少两个数据写入请求中一个数据写入请求对应的数据与X个数据写入请求对应的数据相同,则确定该数据写入请求对应的任务计数值为X+1,且还可以从这些对应相同数据的数据写入请求中保留一个数据写入请求。
在本实施例中,除通过上述目标数据写入请求获得单元200确定目标数据写入请求的方式之外,本实施例还可以将上述两种方式相结合来确定目标数据写入请求,目标数据写入请求获得单元200可以具体用于基于各个数据写入请求对应的数据的数据量,从所述至少两个数据写入请求中确定所述目标数据写入请求,也可以具体用于基于各个数据写入请求对应的数据的任务计数值,从所述至少两个数据写入请求中确定所述目标数据写入请求。
相对应的在写入存储介质中时,可以基于对应的数据的数据量由低到高顺次写入或者基于对应的数据的任务计数值由大到小顺次写入,当然也可以将两种方式相结合,例如如何在基于对应的数据的数据量由低到高顺次写入时,有部分目标数据写入请求对应的数据的数据量相同,此时对这些对应的数据的数据量相同的目标数据写入请求则可以基于对应的数据的任务计数值由大到小的方式写入。此外本实施例还可以删除没有被确定为目标数据写入请求的数据写入请求,以降低空间占用。
在实际应用中,本发明实施例可以预先设置第一序列和第二序列,第一序列用于暂时存储获得的至少两个数据写入请求,第二序列用于暂时存储目标数据写入请求,结合第一序列和第二序列,本实施例提供的另一种数据处理装置的结构图如图9所示,可以包括:数据写入请求获得单元100、第一请求写入单元400,排序单元500、目标数据写入请求获得单元200、第二请求写入单元600和数据写入单元300。
数据写入请求获得单元100,用于获得至少两个数据写入请求。
第一请求写入单元400,用于在获得每个数据写入请求的过程中,如果检测第一序列中存在当前获得的数据写入请求,如果存在,则增加第一序列中与该数据写入请求相同的数据写入请求的任务计数值,禁止写入该数据写入请求至第一序列,以在第一序列中仅保留一个与当前获得的数据写入请求具有相同数据的数据写入请求,如果不存在确定当前获得的数据写入请求的任务计数值为预设初始值,将当前获得的数据写入请求写入第一序列中。
一种检测第一序列中是否存在该数据写入请求的方式是:根据多个数据写入请求中任一数据写入请求对应的数据是否与第一序列中任一数据写入请求对应的数据相同,判断第一序列中是否已存在该数据写入请求,如果对应的数据相同,说明第一序列中已存在该数据写入请求,此时也只需要响应对应的相同数据的多个数据写入请求中的一个数据写入请求。
例如,获得数据写入请求A的过程中,发现数据写入请求A对应的数据与第一序列中数据写入请求B对应的数据相同,则说明数据写入请求A和数据写入请求B相同,后续可以忽略数据写入请求A和数据写入请求B中的一个,响应其中一个即可。
其中增加数据写入请求的任务计数值是在数据写入请求已有的任务计数值的基础上增加,例如增加但不限于增加1。而已有的任务计数值是指在本次检测基础上已经得到的任务计数值。
将当前获得的数据写入请求写入第一序列中的一种方式是:将当前获得的数据写入请求与第一序列中的指定存储地址建立映射关系,所述指定存储地址用于指示数据写入请求在第一序列中的位置。对于预设初始值的设置可以根据实际应用而定,对此本实施例不加以限定。
通过增加第一序列中的数据写入请求的任务计数值的方式,可以获知当前最迫切需要响应的数据写入请求。这是因为数据写入请求的任务计数值越大,说明对该数据写入请求对应的数据的写入越迫切,换句话说,当对任务计数值大的数据写入请求优先响应时,等于同时响应了数量等于任务计数值的多个数据写入请求,这样可以避免后续更多与该数据写入请求相同的数据写入请求占用写操作线程,使本实施例提供的方法在使用中效率更高。
排序单元500,用于对写入第一序列中的各个数据写入请求进行排序,具体可以基于各个数据写入请求的属性进行排序,一种方式是:基于各个数据写入请求对应的数据的数据量由高到低的方式进行排序;另一种方式是:基于各个数据写入请求对应的数据的任务计数值由大到小的方式进行排序;再一种方式是:基于各个数据写入请求对应的数据的数据量由高到低的方式进行排序,对于排序后有相同数据量的数据写入请求来说再基于对应的数据的任务计数值由大到小的方式进行排序;再一种方式是:基于各个数据写入请求对应的数据的任务计数值由大到小的方式进行排序,对于排序后有相同数据量的数据写入请求来说再基于对应的数据的数据量由高到低的方式进行排序,上述四种排序方式本实施例不再阐述。
目标数据写入请求获得单元200,用于从第一序列中写入的各个数据写入请求中确定目标数据写入请求,确定方式请参阅上述装置实施例中的相关说明,对此本实施例不再阐述。
第二请求写入单元600,用于将目标数据写入请求写入到第二序列中,一种方式是将目标数据写入请求与第二序列中的指定存储地址建立映射关系。
数据写入单元300,用于从第二序列中顺次读取目标数据写入请求并写入到存储介质中。
在顺次写入存储介质过程中,本实施例还可以按照预设的写入速度将目标数据写入请求对应的数据顺次写入到存储介质中。其中预设的写入速度可以根据实际写入情况进行调整,其设置时间可以在写入数据之前,那么,当获得目标数据写入请求之后,可以将目标数据写入请求对应的数据按照设置的写入速度写入到存储介质。例如,设置的写入速度为5兆/秒,那么可以按照5兆/秒的速度将目标数据写入请求对应的数据写入到存储介质中。
此外预设的写入速度也可以与当前向存储介质执行的写入速度有关。例如,存储介质正常可承受的写入速度为20兆/秒,当目标数据写入请求对应的数据写入到该存储介质之前,该存储介质正在承受15兆/秒的写入速度,那么目标数据写入请求对应的数据最大按照5兆/秒的写入速度写入到该存储介质,若在目标数据写入请求对应的数据按照5兆/秒的写入速度写入到该存储介质的过程中,存储介质共承受18兆/秒的写入速度,此时可以将目标数据写入请求对应的数据写入到该存储介质的写入速度最高提高至7兆/秒,以控制存储介质正在承受的写入速度在该存储介质的正常可承受的范围内,从而可以提升文件写入该存储介质的写入效率,保证该存储介质不会过载。
此外,本实施例对于第一序列中指定存储地址建立映射关系的数据写入请求来说,还可以根据预先设置的条件,将第一序列中指定存储地址建立映射关系的部分数据写入请求删除,如将写入到第一序列中的部分数据写入请求删除。预先设置的条件的一种方式是按照预定周期,删除第一序列中没有确定为目标数据写入请求的数据写入请求,又或者在对第一序列中写入的所有数据写入请求排序之后,将排序为最后一个或最后的Y个数据写入请求删除,由此如果当前时间达到了预定周期,则需要将第一序列中排序为最后一个或最后的Y个数据写入请求删除,Y为大于1的自然数。
预先设置的条件的另一种方式是在第一序列中数据写入请求数量超过预设请求数量后,删除数据写入请求,删除方式请参阅上述说明。
通过上述预先设置的条件可以删除部分数据写入请求,从而可以避免第一序列中过多的数据写入请求积压,减少第一序列的压力且通过排序可以降低对排序靠后的数据写入请求的获取,而一般靠后的数据写入请求视为是重要程度低的请求,这样可以将资源应用到重要程度高的请求上,提高资源的利用。
本实施例还可以对获得的数据写入请求进行限定,例如获得的数据写入请求对应的数据为热点数据时方可获取该数据写入请求,对于热点数据的判断方式是:如果数据写入请求对应的数据的请求次数超过预设次数,则确定该数据写入请求对应的数据是热点数据,对于预设次数的限定可以根据实际引用而定,由此在本实施例中对应的数据是热点数据的数据写入请求可以先暂存至第三序列中,然后从第三序列中获得数据写入请求至第一序列中,在获得数据写入请求至第一序列的过程中,对数据写入请求进行任务计数值的计算以及对数据写入请求进行排序。
本发明实施例提供的一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现上述数据处理方法。
本发明实施例提供的一种计算机设备,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述处理器执行程序时实现上述数据处理方法。
需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (12)
1.一种数据处理方法,其特征在于,所述方法包括:
获得至少两个数据写入请求;所述数据写入请求为第三序列中的数据写入请求,其中,生成对应的数据是热点数据的数据写入请求的设备通过各自的线程将数据写入请求写入到所述第三序列;
在获得每个数据写入请求的过程中,检测第一序列中是否存在当前获得的数据写入请求,如果存在,禁止写入该数据写入请求至第一序列;所述第一序列用于暂时存储获得的至少两个数据写入请求;
从第一序列的所述至少两个数据写入请求中确定目标数据写入请求;
将目标数据写入请求写入到第二序列中,从第二序列中顺次读取目标数据写入请求写入存储介质,其中,多个数据写入请求能够对应一个用于将数据写入存储介质的线程。
2.根据权利要求1所述的方法,其特征在于,从所述至少两个数据写入请求中确定目标数据写入请求包括:
基于各个数据写入请求的属性,从所述至少两个数据写入请求中确定目标数据写入请求。
3.根据权利要求2所述的方法,其特征在于,所述基于各个数据写入请求的属性,从所述至少两个数据写入请求中确定目标数据写入请求包括:
基于各个数据写入请求对应的数据的数据量,从所述至少两个数据写入请求中确定所述目标数据写入请求。
4.根据权利要求3所述的方法,其特征在于,所述基于各个数据写入请求对应的数据的数据量,从所述至少两个数据写入请求中确定所述目标数据写入请求包括:
基于各个数据写入请求对应的数据的数据量由低到高的方式,确定所有数据写入请求的排序;
从所有数据写入请求的排序的起始位置开始,确定位于起始位置至预设位置的数据写入请求为所述目标数据写入请求。
5.根据权利要求3所述的方法,其特征在于,所述基于各个数据写入请求对应的数据的数据量,从所述至少两个数据写入请求中确定所述目标数据写入请求包括:
基于各个数据写入请求对应的数据的数据量,从所述至少两个数据写入请求中确定对应的数据的数据量小于预设数据量的数据写入请求;
确定对应的数据的数据量小于预设数据量的数据写入请求为所述目标数据写入请求。
6.根据权利要求3所述的方法,其特征在于,所述将目标数据写入请求对应的数据顺次写入存储介质包括:
基于目标数据写入请求对应的数据的数据量由低到高的顺序,将所述目标数据写入请求对应的数据顺次写入所述存储介质。
7.根据权利要求2所述的方法,其特征在于,所述基于各个数据写入请求的属性,从所述至少两个数据写入请求中确定目标数据写入请求包括:
基于各个数据写入请求对应的数据的任务计数值,从所述至少两个数据写入请求中确定所述目标数据写入请求。
8.根据权利要求7所述的方法,其特征在于,所述基于各个数据写入请求对应的数据的任务计数值,从所述至少两个数据写入请求中确定所述目标数据写入请求包括:
基于各个数据写入请求对应的数据的任务计数值,从所述至少两个数据写入请求中确定对应的数据的任务计数值大于预设计数值的数据写入请求;
确定对应的数据的任务计数值大于预设计数值的数据写入请求为所述目标数据写入请求。
9.根据权利要求7所述的方法,其特征在于,所述将目标数据写入请求对应的数据顺次写入存储介质包括:
基于目标数据写入请求对应的数据的任务计数值由大到小的顺序,将所述目标数据写入请求对应的数据顺次写入所述存储介质。
10.一种数据处理装置,其特征在于,包括数据写入请求获得单元、目标数据写入请求获得单元和数据写入单元,
所述数据写入请求获得单元,用于获得至少两个数据写入请求;在获得每个数据写入请求的过程中,检测第一序列中是否存在当前获得的数据写入请求,如果存在,禁止写入该数据写入请求至第一序列;所述第一序列用于暂时存储获得的至少两个数据写入请求;所述数据写入请求为第三序列中的数据写入请求,其中,生成对应的数据是热点数据的数据写入请求的设备通过各自的线程将数据写入请求写入到所述第三序列;
所述目标数据写入请求获得单元,用于从第一序列的所述至少两个数据写入请求中确定目标数据写入请求;
所述数据写入单元,用于将目标数据写入请求写入到第二序列中,从第二序列中顺次读取目标数据写入请求写入存储介质,其中,多个数据写入请求能够对应一个用于将数据写入存储介质的线程。
11.一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上权利要求1至9任一项所述的数据处理方法。
12.一种计算机设备,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述处理器执行程序时实现如权利要求1至9任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910561964.6A CN110286858B (zh) | 2019-06-26 | 2019-06-26 | 一种数据处理方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910561964.6A CN110286858B (zh) | 2019-06-26 | 2019-06-26 | 一种数据处理方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110286858A CN110286858A (zh) | 2019-09-27 |
CN110286858B true CN110286858B (zh) | 2024-07-05 |
Family
ID=68006291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910561964.6A Active CN110286858B (zh) | 2019-06-26 | 2019-06-26 | 一种数据处理方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110286858B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110896415B (zh) * | 2019-11-22 | 2022-05-24 | 浪潮电子信息产业股份有限公司 | 一种数据readdir方法、系统、设备及计算机介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103713973A (zh) * | 2014-01-08 | 2014-04-09 | 浪潮(北京)电子信息产业有限公司 | 一种基于hdd和ssd的混合存储备份方法及系统 |
CN108089818A (zh) * | 2017-12-12 | 2018-05-29 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置及存储介质 |
CN109656487A (zh) * | 2018-12-24 | 2019-04-19 | 平安科技(深圳)有限公司 | 一种数据处理方法、装置、设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7836226B2 (en) * | 2007-12-06 | 2010-11-16 | Fusion-Io, Inc. | Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment |
US20120110239A1 (en) * | 2010-10-27 | 2012-05-03 | Seagate Technology Llc | Causing Related Data to be Written Together to Non-Volatile, Solid State Memory |
US9772787B2 (en) * | 2014-03-31 | 2017-09-26 | Amazon Technologies, Inc. | File storage using variable stripe sizes |
CN108008911A (zh) * | 2016-11-01 | 2018-05-08 | 阿里巴巴集团控股有限公司 | 读写请求处理方法及装置 |
CN108710474A (zh) * | 2018-05-18 | 2018-10-26 | 郑州云海信息技术有限公司 | 一种数据存储方法、装置及计算机存储介质 |
-
2019
- 2019-06-26 CN CN201910561964.6A patent/CN110286858B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103713973A (zh) * | 2014-01-08 | 2014-04-09 | 浪潮(北京)电子信息产业有限公司 | 一种基于hdd和ssd的混合存储备份方法及系统 |
CN108089818A (zh) * | 2017-12-12 | 2018-05-29 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置及存储介质 |
CN109656487A (zh) * | 2018-12-24 | 2019-04-19 | 平安科技(深圳)有限公司 | 一种数据处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110286858A (zh) | 2019-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3715724B2 (ja) | 循環待ち行列作成者エンティティ | |
US8417901B2 (en) | Combining write commands to overlapping addresses or to a specific page | |
KR102042859B1 (ko) | 반도체 장치 및 그 동작 방법 | |
US20190220195A1 (en) | Efficient modification of storage system metadata | |
CN107622020B (zh) | 一种数据存储方法、访问方法及装置 | |
EP2843570A1 (en) | File reading method, storage device and reading system | |
US10346039B2 (en) | Memory system | |
US11314689B2 (en) | Method, apparatus, and computer program product for indexing a file | |
CN112231242A (zh) | 数据缓存方法、存储控制装置、及存储设备 | |
US10817186B2 (en) | Memory system | |
CN110286858B (zh) | 一种数据处理方法及相关设备 | |
CN114816240A (zh) | 一种数据写入方法及一种数据读取方法 | |
US8274521B2 (en) | System available cache color map | |
CN111475099A (zh) | 一种数据存储方法、装置及其设备 | |
US9858204B2 (en) | Cache device, cache system, and cache method | |
WO2021203964A1 (zh) | 一种nand flash文件数据存取方法、装置及存储介质 | |
CN110362769B (zh) | 一种数据处理方法及装置 | |
US11954328B2 (en) | Storage management device, storage management method, and program | |
US9146859B2 (en) | Information processing apparatus, method, and program for improving use efficiency of a storage apparatus | |
US9116814B1 (en) | Use of cache to reduce memory bandwidth pressure with processing pipeline | |
CN107168649B (zh) | 一种分布式存储系统中数据分布的方法及装置 | |
US20220283705A1 (en) | Storage management apparatus, storage management method, and program | |
US9747226B2 (en) | Packet processing system, method and device to optimize packet buffer space | |
CN112783446B (zh) | 一种存储系统的数据写入方法和系统 | |
CN112068948A (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 |