CN116755625A - 一种数据处理方法、装置、设备及可读存储介质 - Google Patents
一种数据处理方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN116755625A CN116755625A CN202310744389.XA CN202310744389A CN116755625A CN 116755625 A CN116755625 A CN 116755625A CN 202310744389 A CN202310744389 A CN 202310744389A CN 116755625 A CN116755625 A CN 116755625A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- storage area
- dynamic random
- area
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 13
- 239000007787 solid Substances 0.000 claims abstract description 125
- 230000004044 response Effects 0.000 claims abstract description 96
- 230000002085 persistent effect Effects 0.000 claims abstract description 94
- 239000000872 buffer Substances 0.000 claims abstract description 59
- 238000000034 method Methods 0.000 claims description 72
- 238000004590 computer program Methods 0.000 claims description 40
- 230000001360 synchronised effect Effects 0.000 claims description 35
- 238000012545 processing Methods 0.000 claims description 25
- 230000001680 brushing effect Effects 0.000 claims description 6
- 238000005201 scrubbing Methods 0.000 claims description 4
- 238000011010 flushing procedure Methods 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000013403 standard screening design Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004140 cleaning Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 101100524346 Xenopus laevis req-a gene Proteins 0.000 description 2
- 101100524347 Xenopus laevis req-b gene Proteins 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000001816 cooling 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
- 238000010438 heat treatment Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012358 sourcing 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
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- 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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/0673—Single storage device
- G06F3/068—Hybrid storage device
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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了计算机技术领域内的一种数据处理方法、装置、设备及可读存储介质。本发明在接收客户端发送的目标数据的读请求后,若固态硬盘缓存区未存目标数据,则从持久存储区读取包括目标数据的数据块,并将数据块存储至动态随机存储区;在异步响应模式下以异步方式将动态随机存储区中的目标数据返回至客户端,并将数据块从动态随机存储区同步至固态硬盘缓存区;若固态硬盘缓存区的剩余空间不足,则用专用于数据下刷的线程将固态硬盘缓存区中的冷数据下刷至持久存储区,以清理缓存区并提升下刷效率。并且,该方案不再等待数据块存入缓存区,而是直接以动态随机存储区中的目标数据响应前端读请求,提高了存储系统的读性能和响应效率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种数据处理方法、装置、设备及可读存储介质。
背景技术
为了同时兼顾数据存储系统的存储性能和成本,通常采用混闪的磁盘配置方式,即:用HDD作为数据盘,发挥其价格低廉、存储容量大的优势,用SSD作为缓存盘,发挥其读写速度快的优势;同时用内存DDR与前端进行交互。数据读取时遵循“内存—缓存盘—数据盘”的数据流模型。
由于缓存盘容量较小,并不能保证所有读请求均能命中缓存,当未命中时,需要从数据盘读取数据后写入DDR,然后把写入DDR的数据同步至缓存,使得缓存被命中,之后将缓存里的数据再读取至DDR中的程序访问区,供前端程序读取数据。此过程中,需要等缓存盘写成功后,再响应前端读请求,降低了存储系统的读性能和响应效率。
因此,如何提高存储系统的读性能和响应效率,是本领域技术人员需要解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种数据处理方法、装置、设备及可读存储介质,以提高存储系统的读性能和响应效率。其具体方案如下:
第一方面,本发明提供了一种数据处理方法,应用于包括动态随机存储区、固态硬盘缓存区和持久存储区的存储系统,包括:
接收客户端发送的目标数据的读请求;
若所述固态硬盘缓存区未存所述目标数据,则从所述持久存储区读取包括所述目标数据的预设大小的数据块,并将所述数据块存储至所述动态随机存储区;
若当前所述存储系统为异步响应模式,则以异步方式将所述动态随机存储区中的所述目标数据返回至所述客户端,并将所述数据块从所述动态随机存储区同步至所述固态硬盘缓存区;
若所述固态硬盘缓存区的剩余空间低于预设阈值,则利用专用于数据下刷的线程将所述固态硬盘缓存区中的冷数据下刷至所述持久存储区。
可选地,所述接收客户端发送的目标数据的读请求之前,还包括:
根据所述持久存储区的各个数据盘生成位图;每一数据盘包括多个单元,所述位图记录有每一数据盘中每一单元对应的单元标识、是否被写过标志位、所对应固态硬盘的标志位和所属数据盘的盘标识;
将所述位图存储至所述持久存储区,并同步至所述动态随机存储区。
可选地,还包括:
若所述固态硬盘缓存区存有所述目标数据,则将所述固态硬盘缓存区中的所述目标数据返回至所述客户端。
可选地,通过所述目标数据的偏移地址确定所述数据块所在单元的目标单元标识;
根据所述目标单元标识在所述动态随机存储区中的位图中查询所述数据块所对应固态硬盘的目标标志位;
根据所述目标标志位确定所述固态硬盘缓存区是否存有所述目标数据。
可选地,所述通过所述目标数据的偏移地址确定所述数据块所在单元的目标单元标识,包括:
计算所述偏移地址与所述预设大小的商,并通过去尾法得到目标值;
基于所述目标值确定所述目标单元标识。
可选地,所述将所述数据块存储至所述动态随机存储区,包括:
将所述数据块存储至所述动态随机存储区中的临时区域。
可选地,所述将所述动态随机存储区中的所述目标数据返回至所述客户端,包括:
通过所述目标数据的偏移地址确定所述数据块所在单元的目标单元标识;
根据所述目标单元标识在所述动态随机存储区中的位图中查询所述数据块所属数据盘的目标盘标识;
根据所述目标单元标识、所述目标数据的长度和所述目标盘标识从所述临时区域中的所述数据块中截取所述目标数据;
将截取的所述目标数据从所述临时区域拷贝至所述客户端在所述动态随机存储区对应的目标区域,以便所述客户端获取所述目标数据。
可选地,所述将所述数据块从所述动态随机存储区同步至所述固态硬盘缓存区之后,还包括:
删除所述临时区域中的所述数据块。
可选地,还包括:
在所述动态随机存储区中的位图中,使目标标志位更新为所述数据块已存于所述固态硬盘缓存区。
可选地,还包括:
若在所述动态随机存储区中的位图中查询到所述目标数据所在单元对应的未存有数据的标志位,则不对所述持久存储区进行读操作,直接返回全0数据至所述客户端。
可选地,所述返回全0数据至所述客户端,包括:
将所述全0数据存储至所述客户端在所述动态随机存储区对应的目标区域,以便所述客户端获取所述全0数据。
可选地,还包括:
接收目标卷的创建请求;
在所述持久存储区的不同数据盘中选择未存数据的多个单元,构建得到所述目标卷;
在对所述目标卷进行写操作后,相应更新所述动态随机存储区中的位图。
可选地,所述更新所述动态随机存储区中的位图,包括:
在所述动态随机存储区中的位图中,使所述写操作的单元对应的是否被写过标志位更新为已写过。
可选地,还包括:
若所述持久存储区中新增数据盘,则在所述动态随机存储区中的位图中新增该数据盘包括的各个单元的单元标识、是否被写过标志位、所对应固态硬盘的标志位和该数据盘的盘标识。
可选地,还包括:
若所述动态随机存储区中的位图存在更新,则将所述动态随机存储区中更新后的位图同步至所述持久存储区。
可选地,还包括:
若所述存储系统启动后,检测到所述持久存储区中已有位图,则将所述持久存储区中的位图读取至所述动态随机存储区。
可选地,还包括:
若当前所述存储系统为同步响应模式,则先将所述数据块从所述动态随机存储区同步至所述固态硬盘缓存区,再将所述动态随机存储区中的所述目标数据返回至所述客户端。
可选地,所述异步响应模式在所述存储系统启动过程中配置或在所述存储系统运行过程中配置。
可选地,在所述存储系统的操作系统启动后,修改所述操作系统所在目录中的配置文件中的响应模式,以使所述存储系统的存储服务通过读取所述配置文件中的响应模式确定所述存储系统的响应模式为异步响应模式或同步响应模式。
可选地,在所述存储系统运行过程中,通过命令行方式修改所述配置文件中的响应模式。
第二方面,本发明提供了一种数据处理装置,应用于包括动态随机存储区、固态硬盘缓存区和持久存储区的存储系统,包括:
接收模块,用于接收客户端发送的目标数据的读请求;
处理模块,用于若所述固态硬盘缓存区未存所述目标数据,则从所述持久存储区读取包括所述目标数据的预设大小的数据块,并将所述数据块存储至所述动态随机存储区;
响应模块,用于若当前所述存储系统为异步响应模式,则以异步方式将所述动态随机存储区中的所述目标数据返回至所述客户端,并将所述数据块从所述动态随机存储区同步至所述固态硬盘缓存区;
下刷模块,用于若所述固态硬盘缓存区的剩余空间低于预设阈值,则利用专用于数据下刷的线程将所述固态硬盘缓存区中的冷数据下刷至所述持久存储区。
可选地,还包括:
位图创建模块,用于根据所述持久存储区的各个数据盘生成位图;每一数据盘包括多个单元,所述位图记录有每一数据盘中每一单元对应的单元标识、是否被写过标志位、所对应固态硬盘的标志位和所属数据盘的盘标识;将所述位图存储至所述持久存储区,并同步至所述动态随机存储区。
可选地,响应模块还用于:
若所述固态硬盘缓存区存有所述目标数据,则将所述固态硬盘缓存区中的所述目标数据返回至所述客户端。
可选地,
位图查询模块,用于通过所述目标数据的偏移地址确定所述数据块所在单元的目标单元标识;根据所述目标单元标识在所述动态随机存储区中的位图中查询所述数据块所对应固态硬盘的目标标志位;根据所述目标标志位确定所述固态硬盘缓存区是否存有所述目标数据。
可选地,所述位图查询模块具体用于:
计算所述偏移地址与所述预设大小的商,并通过去尾法得到目标值;
基于所述目标值确定所述目标单元标识。
可选地,所述处理模块具体用于:
将所述数据块存储至所述动态随机存储区中的临时区域。
可选地,所述响应模块具体用于:
通过所述目标数据的偏移地址确定所述数据块所在单元的目标单元标识;
根据所述目标单元标识在所述动态随机存储区中的位图中查询所述数据块所属数据盘的目标盘标识;
根据所述目标单元标识、所述目标数据的长度和所述目标盘标识从所述临时区域中的所述数据块中截取所述目标数据;
将截取的所述目标数据从所述临时区域拷贝至所述客户端在所述动态随机存储区对应的目标区域,以便所述客户端获取所述目标数据。
可选地,还包括:
清理模块,用于删除所述临时区域中的所述数据块。
可选地,还包括:
位图更新模块,用于在所述动态随机存储区中的位图中,使目标标志位更新为所述数据块已存于所述固态硬盘缓存区。
可选地,响应模块还用于:
若在所述动态随机存储区中的位图中查询到所述目标数据所在单元对应的未存有数据的标志位,则不对所述持久存储区进行读操作,直接返回全0数据至所述客户端。
可选地,响应模块具体用于:
将所述全0数据存储至所述客户端在所述动态随机存储区对应的目标区域,以便所述客户端获取所述全0数据。
可选地,还包括:
卷创建模块,用于接收目标卷的创建请求;在所述持久存储区的不同数据盘中选择未存数据的多个单元,构建得到所述目标卷;
位图更新模块还用于在对所述目标卷进行写操作后,相应更新所述动态随机存储区中的位图。
可选地,位图更新模块具体用于:
在所述动态随机存储区中的位图中,使所述写操作的单元对应的是否被写过标志位更新为已写过。
可选地,位图更新模块还用于:
若所述持久存储区中新增数据盘,则在所述动态随机存储区中的位图中新增该数据盘包括的各个单元的单元标识、是否被写过标志位、所对应固态硬盘的标志位和该数据盘的盘标识。
可选地,还包括:
位图同步模块,用于若所述动态随机存储区中的位图存在更新,则将所述动态随机存储区中更新后的位图同步至所述持久存储区。
可选地,位图同步模块还用于:
若所述存储系统启动后,检测到所述持久存储区中已有位图,则将所述持久存储区中的位图读取至所述动态随机存储区。
可选地,响应模块还用于:
若当前所述存储系统为同步响应模式,则先将所述数据块从所述动态随机存储区同步至所述固态硬盘缓存区,再将所述动态随机存储区中的所述目标数据返回至所述客户端。
可选地,所述异步响应模式在所述存储系统启动过程中配置或在所述存储系统运行过程中配置。
可选地,在所述存储系统的操作系统启动后,修改所述操作系统所在目录中的配置文件中的响应模式,以使所述存储系统的存储服务通过读取所述配置文件中的响应模式确定所述存储系统的响应模式为异步响应模式或同步响应模式。
可选地,在所述存储系统运行过程中,通过命令行方式修改所述配置文件中的响应模式。
第三方面,本发明提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的数据处理方法。
第四方面,本发明提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的数据处理方法。
通过以上方案可知,本发明提供了一种数据处理方法,应用于包括动态随机存储区、固态硬盘缓存区和持久存储区的存储系统,包括:接收客户端发送的目标数据的读请求;若所述固态硬盘缓存区未存所述目标数据,则从所述持久存储区读取包括所述目标数据的预设大小的数据块,并将所述数据块存储至所述动态随机存储区;若当前所述存储系统为异步响应模式,则以异步方式将所述动态随机存储区中的所述目标数据返回至所述客户端,并将所述数据块从所述动态随机存储区同步至所述固态硬盘缓存区。
可见,本发明的有益效果为:在固态硬盘缓存区未存需读取的目标数据,即在未命中缓存的情况下,从持久存储区读取包含目标数据的数据块,并将数据块存储至动态随机存储区,之后按照存储系统的异步响应模式,不再等待数据块存入固态硬盘缓存区,而是直接以动态随机存储区中的目标数据响应前端读请求,由此可提升响应速度;并且,该方案从持久存储区读取了不小于目标数据的数据块,并将其存入固态硬盘缓存区,此方式可提升后续读请求的缓存命令率,也不影响本次读请求的及时响应,因此也能够提高存储系统的读性能和响应效率。若固态硬盘缓存区的剩余空间不足,则用专用于数据下刷的线程将固态硬盘缓存区中的冷数据下刷至持久存储区,以清理缓存区并提升下刷效率。
相应地,本发明提供的一种数据处理装置、设备及可读存储介质,也同样具有上述技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明公开的一种数据处理方法流程图;
图2为本发明公开的一种数据读取方法流程图;
图3为本发明公开的一种位图结构示意图;
图4为本发明公开的一种磁盘结构示意图;
图5为本发明公开的一种逻辑卷结构示意图;
图6为本发明公开的另一种数据读取方法流程图;
图7为本发明公开的一种数据处理装置示意图;
图8为本发明公开的一种电子设备示意图;
图9为本发明提供的一种服务器结构图;
图10为本发明提供的一种终端结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,缓存盘容量较小,并不能保证所有读请求均能命中缓存,当未命中时,需要从数据盘读取数据后写入DDR,然后把写入DDR的数据同步至缓存,使得缓存被命中,之后将缓存里的数据再读取至DDR中的程序访问区,供前端程序读取数据。此过程中,需要等缓存盘写成功后,再响应前端读请求,降低了存储系统的读性能和响应效率。为此,本发明提供了一种数据处理方案,能够提高缓存命中率,提高存储系统的读性能和响应效率。
参见图1所示,本发明实施例公开了一种数据处理方法,应用于包括动态随机存储区、固态硬盘缓存区和持久存储区的存储系统,包括:
S101、接收客户端发送的目标数据的读请求。
在本实施例中,存储系统用HDD作为数据盘,所有HDD构成了持久存储区;用SSD作为缓存盘,所有SSD构成了固态硬盘缓存区;用DDR作为动态随机存储区,将其作为内存。并且,本实施例的数据读取不遵循“内存—缓存盘—数据盘”的数据流模型,该数据流模型要求:从缓存盘读数据至内存才能使前端程序获得相应数据;在此限制下,从数据盘读取至内存的数据不能被前端程序读取,必须将从数据盘读取至内存的数据同步至缓存盘再从缓存盘读取至内存才行。本实施例打破了此限制,使得从数据盘读取至内存的数据也能被前端程序获取。
其中,存储系统以预设大小(如4M)划分持久存储区,使得持久存储区由相同大小的多个单元构成。存储系统的读操作和写操作也按照预设大小进行,即:一个读请求或一个写请求的大小不超过预设大小,那么目标数据的大小不超过预设大小。
在一种实施方式中,接收客户端发送的目标数据的读请求之前,还包括:根据持久存储区的各个数据盘生成位图;每一数据盘包括多个单元,位图记录有每一数据盘中每一单元对应的单元标识、是否被写过标志位、所对应固态硬盘的标志位(数据未被缓存时标志位为空,数据被缓存时标志位为固态硬盘的编号)和所属数据盘的盘标识;将位图存储至持久存储区,并同步至动态随机存储区。由此,通过查询位图便可得知:某一单元对应的单元标识、某一单元是否被写过、某一单元所存数据块是否存于固态硬盘缓存区以及具体存于哪个固态硬盘、某一单元所属的数据盘是哪个。本实施例中的位图用于记录持久存储区中的所有单元的相关信息。
S102、若固态硬盘缓存区未存目标数据(即缓存未命中),则从持久存储区读取包括目标数据的预设大小的数据块,并将数据块存储至动态随机存储区。
需要说明的是,预设大小的数据块即一个单元中所存储的全部数据,由于一个单元的存储空间为预设大小,因此该单元中所存储的全部数据组成的数据块也是预设大小。
在一种实施方式中,若固态硬盘缓存区存有目标数据(即命中缓存),则将固态硬盘缓存区中的目标数据返回至客户端,从而避免对持久存储区的数据盘进行读操作,提升读效率。
如前所述,可以在位图中查询某一单元对应的单元标识、某一单元是否被写过、某一单元所存数据块是否存于固态硬盘缓存区以及某一单元所属的数据盘是哪个。因此在一种实施方式中,通过目标数据的偏移地址确定数据块所在单元的目标单元标识;根据目标单元标识在动态随机存储区中的位图中查询数据块所对应固态硬盘的目标标志位;根据目标标志位确定固态硬盘缓存区是否存有目标数据。也就是,通过查询位图即可确定当前读请求是否命中缓存。
在本实施例中,查询位图可得到目标数据所对应固态硬盘的目标标志位,若目标标志位为空,则未命中缓存,若目标标志位不为空,则据此标志位确定目标固态硬盘的编号(目标标志位即为固态硬盘的编号),并在此编号的目标固态硬盘中确定目标数据的具体位置。具体的,将固态硬盘缓存区中的目标数据返回至客户端,包括:确定目标数据的偏移地址(offset)与预设大小的商,并通过去尾法得到目标值;基于目标值在位图中确定目标数据所在单元的单元索引,并由此单元索引确定目标单元标识,在目标固态硬盘中查询目标单元标识对应的块标识,基于此块标识在目标固态硬盘中查询相应的数据块,然后在此数据块中偏移offset2=offset%4MB,得到目标数据的起始地址,由此起始地址开始读取目标数据,并返回至客户端。
在一种实施方式中,通过目标数据的偏移地址确定数据块所在单元的目标单元标识,包括:计算偏移地址与预设大小的商,并通过去尾法得到目标值;基于目标值确定数据块所在单元的目标单元标识。例如:假设偏移地址offset=26×4MB(预设大小)+4KB,那么目标值取值为offset除以4M得到的26,此时若目标单元标识设定为:0x00a04a160000001a,其中的“1a”为十进制数26(即目标值,为该单元在lun上的编号)转换后得到的,那么在位图中查询十进制数26转换后得到的十六进制数1a可确定0x00a04a160000001a。目标单元标识中的“a04a16”为数据块所在单元所属lun的编号,其他字段通过预设规则生成。可见,目标单元标识中包括目标数据所在单元在lun上的编号(索引),而此编号通过计算偏移地址与预设大小的商,并通过去尾法可得到,因此据此编号可查询位图确定相应的目标单元标识,并由此目标单元标识进一步查询该单元的其他属性信息。
在一种实施方式中,将数据块存储至动态随机存储区,包括:将数据块存储至动态随机存储区中的临时区域。在一种实施方式中,将数据块从动态随机存储区同步至固态硬盘缓存区之后,还包括:删除临时区域中的数据块,以及时清理动态随机存储区,提升其空间利用率。
在一种实施方式中,将动态随机存储区中的目标数据返回至客户端,包括:通过目标数据的偏移地址确定数据块所在单元的目标单元标识;根据目标单元标识在动态随机存储区中的位图中查询数据块所属数据盘的目标盘标识;根据目标单元标识、目标数据的长度和目标盘标识从临时区域中的数据块中截取目标数据;将截取的目标数据从临时区域拷贝至客户端在动态随机存储区对应的目标区域,以便客户端获取目标数据。其中,目标数据的长度和偏移地址通过解析读请求可获得。
在将本次读请求对应的数据块存入固态硬盘缓存区之后,需要相应更新位图。因此在一种实施方式中,还包括:在动态随机存储区中的位图中,使目标标志位更新为数据块已存于固态硬盘缓存区。目标标志位为:本次读请求对应的数据块是否存于固态硬盘缓存区的标志位。
在一种实施方式中,还包括:若在动态随机存储区中的位图中查询到目标数据所在单元对应的未存有数据的标志位,则不对持久存储区进行读操作,直接返回全0数据至客户端,由此可以避免对持久存储区的数据盘进行读操作,提升读效率。其中,返回全0数据至客户端,包括:将全0数据存储至客户端在动态随机存储区对应的目标区域,以便客户端获取全0数据。
S103、若当前存储系统为异步响应模式,则以异步方式将动态随机存储区中的目标数据返回至客户端,并将数据块从动态随机存储区同步至固态硬盘缓存区。
S104、若固态硬盘缓存区的剩余空间低于预设阈值,则利用专用于数据下刷的线程将固态硬盘缓存区中的冷数据下刷至持久存储区。
需要说明的是,本实施例为提升数据下刷速度,设置了专用于数据下刷的线程,该线程只负责一个工作,就是在固态硬盘缓存区的剩余空间不足时,将固态硬盘缓存区中的冷数据下刷至持久存储区。由此可以避免读操作和数据下刷操作的相互影响,既可以提升读响应速度,又能保证数据下刷速度。
其中,被存储至固态硬盘缓存区的数据在持久存储区对应的单元已固定,因此在数据下刷时,只需将数据存储至持久存储区中的相应单元。例如:当前读请求要读的目标数据被下刷时,仍存储至持久存储区中原来存储目标数据的目标单元中。如果下刷的数据为新写入的数据,那么按照该数据存储至固态硬盘缓存区时确定的卷以及单元,确定该数据在持久存储区中的存储位置。
在一种示例中,固态硬盘缓存区中的数据按照操作时间先后顺序和/或操作频次进行冷热划分,如:长时间未操作的数据属于冷数据,最近操作的数据属于热数据;操作频次低的数据属于冷数据,操作频次高的数据属于热数据。如果通过设置阈值来进行冷热划分,那么可以设置操作时间阈值和操作频次阈值,当数据的最近操作时间与当前时间的间隔大于操作时间阈值,则判定为冷数据,当数据的最近操作时间与当前时间的间隔不大于操作时间阈值,则判定为热数据。当数据的操作频次大于操作频次阈值则判定为热数据,当数据的操作频次不大于操作频次阈值则判定为冷数据。当然,前述两种判定条件可同时使用,例如:当数据的最近操作时间与当前时间的间隔大于操作时间阈值、且该数据的操作频次不大于操作频次阈值,则判定为冷数据。当数据的最近操作时间与当前时间的间隔不大于操作时间阈值、且该数据的操作频次大于操作频次阈值,则判定为热数据。
在利用专用于数据下刷的线程将固态硬盘缓存区中的冷数据下刷至持久存储区之后,从固态硬盘缓存区中删除下刷至持久存储区的冷数据。
在一种实施方式中,还包括:接收目标卷的创建请求;在持久存储区的不同数据盘中选择未存数据的多个单元,构建得到目标卷;在对目标卷进行写操作后,相应更新动态随机存储区中的位图。其中,更新动态随机存储区中的位图,包括:在动态随机存储区中的位图中,使写操作的单元对应的是否被写过标志位更新为已写过。
在一种实施方式中,还包括:若持久存储区中新增数据盘,则在动态随机存储区中的位图中新增该数据盘包括的各个单元的单元标识、是否被写过标志位、所对应固态硬盘的标志位和该数据盘的盘标识。
在本实施例中,动态随机存储区中的位图存在更新有以下几种情况:持久存储区中新增数据盘;根据某一读请求将持久存储区中的数据存入了固态硬盘缓存区;已存入固态硬盘缓存区的数据被删除;基于写操作有新数据写入某一单元。无论上述哪种情况,只要动态随机存储区中的位图存在更新,就将动态随机存储区中更新后的位图同步至持久存储区。
在一种实施方式中,还包括:若存储系统启动后,检测到持久存储区中已有位图,则将持久存储区中的位图读取至动态随机存储区,以供后续读请求进行位图查询。
在一种实施方式中,还包括:若当前存储系统为同步响应模式,则先将数据块从动态随机存储区同步至固态硬盘缓存区,再将动态随机存储区中的目标数据返回至客户端。在一种实施方式中,异步响应模式在存储系统启动过程中配置或在存储系统运行过程中配置。其中,在存储系统的操作系统启动后,修改操作系统所在目录中的配置文件中的响应模式,以使存储系统的存储服务通过读取配置文件中的响应模式确定存储系统的响应模式为异步响应模式或同步响应模式。其中,在存储系统运行过程中,通过命令行方式修改配置文件中的响应模式。响应模式为异步响应模式或同步响应模式。
需要说明的是,异步响应模式可以将用户程序请求的有效数据尽早返回给用户程序,有利于达到高实时性要求。因此可以根据存储系统实际的业务需求,选择相应的响应模式。如果用户业务对数据的实时性要求高,则宜配置异步响应模式,若用户业务对数据的稳定性要求高,则宜配置同步策略。
可见,本实施例在固态硬盘缓存区未被命中的情况下,从持久存储区读取包含目标数据的数据块,并将数据块存储至动态随机存储区,之后按照存储系统的异步响应模式,不再等待数据块存入固态硬盘缓存区,而是直接以动态随机存储区中的目标数据响应前端读请求,由此可提升响应速度;并且,该方案从持久存储区读取了不小于目标数据的数据块,并将其存入固态硬盘缓存区,此方式可提升后续读请求的缓存命令率,也不影响本次读请求的及时响应,因此也能够提高存储系统的读性能和响应效率。若固态硬盘缓存区的剩余空间不足,则用专用于数据下刷的线程将固态硬盘缓存区中的冷数据下刷至持久存储区,以清理缓存区并提升下刷效率。
下述实施例针对混闪存储系统提供了一种数据读取方案。混闪存储系统用HDD作为数据盘,用SSD作为缓存盘,用DDR作为内存,且该系统对于数据读取不遵循“内存—缓存盘—数据盘”的数据流模型。
如图2所示,数据读取流程包括:在接收到操作系统下发的IO读请求后,查询位图,若当前读请求要读的目标单元未被写过,则直接返回全0数据,不做读盘操作。否则,若缓存命中,则直接从缓存盘中读数据并返回;若缓存未命中,则触发缓存同步操作。本实施例提供同步和异步两种策略来进行缓存同步操作。同步策略(即同步响应模式)下,首先从数据盘读取目标单元(包括有效数据和元数据)至DDR,接着从目标单元中截取目标数据并填充到IO请求在DDR中占用的程序内存buffer中,然后将目标单元写入缓存盘,写缓存盘完成后再将buffer中的目标数据返回到前端。异步策略(即异步响应模式)下,从数据盘读取目标单元(包括有效数据和元数据)至DDR,接着从目标单元中截取目标数据并填充到IO请求在DDR中占用的buffer中,然后先将buffer中的目标数据返回到前端,再异步将目标单元同步至缓存盘。异步策略能够进一步降低IO读请求时延。由此本实施例能够减少读请求响应之前的读缓存盘和读数据盘的次数,降低了IO读延时。其中,程序内存buffer为客户端在动态随机存储区对应的目标区域。
在同步策略中,待所有工作都完成后共返回内存一次,内存由此响应读请求并更新位图,可以将用户程序请求的有效数据尽早返回给用户程序;执行成功后用户程序不需要考虑出错处理。在异步策略中共返回共两次,IO读请求的数据先返回至内存,待缓存同步完成后再返回一次(返回写缓存的执行结果,包括写成功或者失败),以更新位图;若写缓存失败,需要由用户程序进行失败处理。可见,异步策略的优势是能让内存更快地拿到目标数据,劣势是内存需要接收两次返回结果。
需要说明的是,同步策略和异步策略,支持系统初始化前的静态配置和系统运行过程中的动态配置两种方法,但同一时期仅允许选择一种策略。静态配置可以在系统初始化前以写配置文件的方式进行,动态配置允许在系统运行期间以命令行的方式修改配置文件。配置文件中以键值对记录同步策略和异步策略对应的标识信息。用户可以根据实际业务场景配置上述两种策略,若用户业务对数据的实时性要求高,则宜选择异步策略,若用户业务对数据的稳定性要求高,则宜选择同步策略。
本实施例为每一个卷(lun)创建一个位图,一个卷对应的位图可参照图3。如图3所示,位图可以分为头部head和位图内容lun_bitmap两部分,head用于记录当前位图的属性信息,如:创建时间、修改时间、位图内容的长度等信息;位图内容用于记录当前卷包括的每个单元的属性信息,每个单元的属性信息至少包括以下4个字段:oid:单元的唯一身份标识符(即单元标识),包括该单元在lun上的索引号,oid是创建lun时按照预定规则生成的,会同步存入相应数据盘中的元数据存储区;sowing:该单元是否被写过标记,无论写过多少数据,若写过则标记未1,否则标记为0,创建lun时sowing初始化为0;缓存_id:用于表示该单元位于哪块缓存盘上,若该单元不在缓存盘中,则标记为空,创建lun时cache_id初始化为0;数据_id:用于表示该单元位于哪块数据盘上,创建lun时记录该单元所在的数据盘的编号。
针对任意IO读请求,先根据当前IO读请求的offset(相对于lun首地址的偏移量)和size(要求读取的数据长度)计算得到oid,oid由64个bit位组成。oid如:0x00a04a160000001a;其中,0-31表示(32bits)数据对象的索引空间,即该单元在lun上的索引号,如图4中的块标识:数据块0;32-55表示(24bits)lun的id,创建lun时由哈希算法生成的唯一编号;56-59为(4bits)预留空间,创建lun时初始化为全0;60-63表示(4bits)对象类型索引空间,用于区分是元数据还是用户数据,图3所示位图也需要存放到相应单元中。
oid计算方法包括:oid中的单元索引号idx=offset/单元_size,其中offset为相对于lun首地址的偏移,单元_size为每个单元的大小,默认为4MB;然后根据idx查位图得到oid,并相应查询位图;若目标单元还没有写过数据(即lun_bitmap中该单元属性信息中的sowing为0),则不需要去数据盘或缓存盘读数据,直接给IO请求的buffer填充全0数据,返回此全0数据后,结束此次IO读请求;若目标单元已经被写过(即lun_bitmap中该单元属性信息中的sowing为0),则接着确认目标单元是否已经存在于缓存盘中。请参见图4,若缓存命中(即lun_bitmap中该单元属性信息中的缓存_id不为空),则触发读缓存盘操作;具体的,根据缓存_id找到目标单元所在的缓存盘,查该缓存盘头部的元数据区,并在此元数据区确定oid对应的块标识,之后据此块标识在该缓存盘的数据区查询相同数据标识的数据块(与一个单元的大小相等),在此数据块中偏移offset2=offset%4MB,得到要读数据的起始地址,由此起始地址开始读取目标数据,并返回至客户端,然后返回结束此次IO读请求。若缓存未命中,则触发缓存同步动作,具体可参照图2进行后续操作。
如图4所示,一个缓存盘被划分为元数据区和数据区,元数据区中记录有数据区中每一数据块的元数据信息,包括:块标识(图4中的数据块0)、oid等。具体的,图4中的元数据区用于存放当前盘上所有数据块的元数据,每个元数据大小meta_size=512byte,每个元数据至少包含以下3个字段:ino用于标记所管理的数据块在数据区的位置,初始化时从0开始按照顺序赋值,一个ino对应数据区中的1个数据块;oid即为图3中的身份标识符;disk_bitmap用于标记数据区中的各个最小数据读写单位(相当于磁盘中扇区的概念)是否被写过,每个byte位对应1个最小数据读写单位,1表示写过,0表示未写过,初始化时全为0,表示没有数据被写过。数据区用于存放用户数据(即各个数据块),初始化时,全为0,表示没有数据。数据盘与缓存盘的结构类似,当数据盘或缓存盘挂载到混闪存储系统时,系统读取盘上元数据区的元数据信息,并缓存到内存中,为后续查询盘标识、查元数据做准备。
本实施例在获得oid和缓存_id后,根据缓存_id在相应缓存盘中查oid,从而确定块标识编号0,并由此编号0查询确定数据块0,然后用单元_size对要读数据的偏移地址取余,得到要读数据在数据块0上的偏移,并由此确定要读数据的起始地址。也就是说,在已知相对于lun首地址的偏移offset、要读取的数据大小size、oid、缓存_id后,用缓存_id确定缓存盘,然后用oid查元数据区的每个元数据,得到块标识字段ino,之后计算出块标识字段ino对应的数据块的地址(相对于整个盘的地址)首地址obj_disk_addr,obj_disk_addr=0+元数据区长度+ino×4MB、数据区长度meta_zone_len=obj_num_total×512byte、要读数据在相应数据块中的偏移offset2=offset%4MB,最后根据obj_disk_addr、offset2和数据大小size读取有效数据。其中,一个元数据对应一个数据块,二者成对出现,1个元数据大小为512byte,1个数据块大小为4MB;磁盘末尾不够4MB的存储空间则忽略掉。一个缓存盘可以存放的数据块的数量:obj_num_total=disk_size/(512byte+4MB)。
如图5所示,若当前IO读请求需要读1M数据,该读请求中携带两个参数:offset(相对于lun首地址的偏移)和size(实际要读取的数据长度);假设offset=26×4MB+4KB,size=1MB;那么oid_idx=offset除以4MB,并以去尾法得到26,此时oid为0x00a04a160000001a,其中的“1a”即为26(lun中的26号单元),“a04a16”为lun的编号,之后计算要读取的1M数据在26号单元中的偏移offset2=offset%4MB=4KB,即:从26号单元的首地址偏移4KB,即可确定需要读的1M数据的首地址,从此开始读取1M数据,即可完成1M数据的读取。如图5所示,当前要读的数据所属的卷包括的单元属于不同数据盘,由此可易于实现不同数据盘的并发读和并发写。卷lun的创建即:从数据盘构成的持久存储区中选适量单元组成,选择单元的策略:尽可能使各个单元均匀的分布在多个数据盘上,以提高IO并发量,提升IO性能,所选单元的个数可由用户指定。用户在混闪存储系统上创建lun后,还生成一份卷元数据信息lun_meta,并缓存到内存中,为后续检索lun做准备。
如果操作系统下发IO读请求req1,要求读取oid为0x00a04a160000001a的目标单元中的1MB目标数据。根据目标单元的oid查询位图发现sowing标记为0,表示目标单元从未被写过,缓存_id为空,即目标单元不在缓存盘中。数据_id为3,表示目标单元存在于3号数据盘。由于目标数据所在的目标单元从未被写过,故不需要进行磁盘操作,直接对IO请求buffer填充全0,并返回上层,至此IO读请求req1完成。
请参见图6,如果操作系统下发IO读请求req2,要求读取oid为0x00a04a160000ff1a,其中后8位(十六进制)表示该单元在磁盘上的索引号,从目标单元的首地址偏移1MB,长度为2MB的目标数据。第二步根据目标单元的oid查询位图发现sowing标记为1,表示目标单元被写过,缓存_id为空,即目标单元不在缓存盘中,数据_id为3,表示目标单元存在于3号数据盘,据此确定本次IO读请求未命中缓存。如果使用异步策略处理本次IO读请求,第三步从数据盘3读取目标单元数据(包括元数据)到临时内存空间(即临时区域),第四步从临时内存读取2MB的目标数据拷贝到IO请求buffer中,接着便将目标同步返回上层,优先供上层使用,第五步将临时内存中的目标单元的全部数据写入到缓存盘,写缓存盘完成后,第六步返回上层,以便进行位图更新,至此IO读请求req2完成。在一段时间后,如果缓存区的剩余空间不足且目标单元数据在缓存区里为冷数据,那么通过第七步将目标单元数据下刷至3号数据盘。
也就是说,一段时间后若缓存区的剩余空间不足,则数据下刷线程将缓存区里的冷数据下刷至相应数据盘。冷热数据的划分可参照前述实施例的相关介绍。此时,若图6所读取目标单元数据为冷数据,那么将图6所读取目标单元数据下刷至3号数据盘;若图6所读取目标单元数据为热数据,那么将图6所读取目标单元数据保留在缓存区。下刷后,将缓存区中已被下刷的数据删除,使缓存区腾出更多的可用空间。
需要说明的是,遵循“内存—缓存盘—数据盘”数据流模型的读取流程中没有图6中的第四步,在执行第三步后,需要先执行第五步写缓存盘,然后再从缓存盘里读目标数据至程序内存。此数据流模型虽然可以确保目标单元成功从数据盘同步到缓存盘,保证后续再次访问该单元一定能够缓存命中,但因为需先写缓存盘再响应读请求会导致读响应延迟。
本实施例提供了一种基于混闪存储系统的数据读取方法,该方法通过判断IO读请求的数据是否已经写过,避免了每次IO读请求必须读磁盘的逻辑,特别是读从未写过的数据时,不需要与磁盘交互,极大提高了IO响应速度。还提供了同步和异步两种缓存同步策略,用户可以根据实际业务逻辑进行选配,可以增加与上层业务逻辑的契合度。在缓存未命中情况下,使用内存拷贝替代读缓存盘,减少了1次磁盘操作,能够显著降低IO时延。
下面对本发明实施例提供的一种数据处理装置进行介绍,下文描述的一种数据处理装置与本文描述的其他实施例可以相互参照。
参见图7所示,本发明实施例公开了一种数据处理装置,应用于包括动态随机存储区、固态硬盘缓存区和持久存储区的存储系统,包括:
接收模块701,用于接收客户端发送的目标数据的读请求;
处理模块702,用于若固态硬盘缓存区未存目标数据,则从持久存储区读取包括目标数据的预设大小的数据块,并将数据块存储至动态随机存储区;
响应模块703,用于若当前存储系统为异步响应模式,则以异步方式将动态随机存储区中的目标数据返回至客户端,并将数据块从动态随机存储区同步至固态硬盘缓存区;
下刷模块704,用于若固态硬盘缓存区的剩余空间低于预设阈值,则利用专用于数据下刷的线程将固态硬盘缓存区中的冷数据下刷至持久存储区。
在一种实施方式中,还包括:
位图创建模块,用于根据持久存储区的各个数据盘生成位图;每一数据盘包括多个单元,位图记录有每一数据盘中每一单元对应的单元标识、是否被写过标志位、所对应固态硬盘的标志位和所属数据盘的盘标识;将位图存储至持久存储区,并同步至动态随机存储区。
在一种实施方式中,响应模块还用于:
若固态硬盘缓存区存有目标数据,则将固态硬盘缓存区中的目标数据返回至客户端。
在一种实施方式中,
位图查询模块,用于通过目标数据的偏移地址确定数据块所在单元的目标单元标识;根据目标单元标识在动态随机存储区中的位图中查询数据块所对应固态硬盘的目标标志位;根据目标标志位确定固态硬盘缓存区是否存有目标数据。
在一种实施方式中,位图查询模块具体用于:
计算偏移地址与预设大小的商,并通过去尾法得到目标值;
基于目标值确定目标单元标识。
在一种实施方式中,处理模块具体用于:
将数据块存储至动态随机存储区中的临时区域。
在一种实施方式中,响应模块具体用于:
通过目标数据的偏移地址确定数据块所在单元的目标单元标识;
根据目标单元标识在动态随机存储区中的位图中查询数据块所属数据盘的目标盘标识;
根据目标单元标识、目标数据的长度和目标盘标识从临时区域中的数据块中截取目标数据;
将截取的目标数据从临时区域拷贝至客户端在动态随机存储区对应的目标区域,以便客户端获取目标数据。
在一种实施方式中,还包括:
清理模块,用于删除临时区域中的数据块。
在一种实施方式中,还包括:
位图更新模块,用于在动态随机存储区中的位图中,使目标标志位更新为数据块已存于固态硬盘缓存区。
在一种实施方式中,响应模块还用于:
若在动态随机存储区中的位图中查询到目标数据所在单元对应的未存有数据的标志位,则不对持久存储区进行读操作,直接返回全0数据至客户端。
在一种实施方式中,响应模块具体用于:
将全0数据存储至客户端在动态随机存储区对应的目标区域,以便客户端获取全0数据。
在一种实施方式中,还包括:
卷创建模块,用于接收目标卷的创建请求;在持久存储区的不同数据盘中选择未存数据的多个单元,构建得到目标卷;
位图更新模块还用于在对目标卷进行写操作后,相应更新动态随机存储区中的位图。
在一种实施方式中,位图更新模块具体用于:
在动态随机存储区中的位图中,使写操作的单元对应的是否被写过标志位更新为已写过。
在一种实施方式中,位图更新模块还用于:
若持久存储区中新增数据盘,则在动态随机存储区中的位图中新增该数据盘包括的各个单元的单元标识、是否被写过标志位、所对应固态硬盘的标志位和该数据盘的盘标识。
在一种实施方式中,还包括:
位图同步模块,用于若动态随机存储区中的位图存在更新,则将动态随机存储区中更新后的位图同步至持久存储区。
在一种实施方式中,位图同步模块还用于:
若存储系统启动后,检测到持久存储区中已有位图,则将持久存储区中的位图读取至动态随机存储区。
在一种实施方式中,响应模块还用于:
若当前存储系统为同步响应模式,则先将数据块从动态随机存储区同步至固态硬盘缓存区,再将动态随机存储区中的目标数据返回至客户端。
在一种实施方式中,异步响应模式在存储系统启动过程中配置或在存储系统运行过程中配置。
在一种实施方式中,在存储系统的操作系统启动后,修改操作系统所在目录中的配置文件中的响应模式,以使存储系统的存储服务通过读取配置文件中的响应模式确定存储系统的响应模式为异步响应模式或同步响应模式。
在一种实施方式中,在存储系统运行过程中,通过命令行方式修改配置文件中的响应模式。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种数据处理装置,能够提高缓存命中率,提高存储系统的读性能和响应效率。
下面对本发明实施例提供的一种电子设备进行介绍,下文描述的一种电子设备与本文描述的其他实施例可以相互参照。
参见图8所示,本发明实施例公开了一种电子设备,包括:
存储器801,用于保存计算机程序;
处理器802,用于执行所述计算机程序,以实现上述任意实施例公开的方法。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:接收客户端发送的目标数据的读请求;若固态硬盘缓存区未存目标数据,则从持久存储区读取包括目标数据的预设大小的数据块,并将数据块存储至动态随机存储区;若当前存储系统为异步响应模式,则以异步方式将动态随机存储区中的目标数据返回至客户端,并将数据块从动态随机存储区同步至固态硬盘缓存区;若固态硬盘缓存区的剩余空间低于预设阈值,则利用专用于数据下刷的线程将固态硬盘缓存区中的冷数据下刷至持久存储区。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:根据持久存储区的各个数据盘生成位图;每一数据盘包括多个单元,位图记录有每一数据盘中每一单元对应的单元标识、是否被写过标志位、所对应固态硬盘的标志位和所属数据盘的盘标识;将位图存储至持久存储区,并同步至动态随机存储区。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:若固态硬盘缓存区存有目标数据,则将固态硬盘缓存区中的目标数据返回至客户端。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:通过目标数据的偏移地址确定数据块所在单元的目标单元标识;根据目标单元标识在动态随机存储区中的位图中查询数据块所对应固态硬盘的目标标志位;根据目标标志位确定固态硬盘缓存区是否存有目标数据。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:计算偏移地址与预设大小的商,并通过去尾法得到目标值;基于目标值确定目标单元标识。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:将数据块存储至动态随机存储区中的临时区域。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:通过目标数据的偏移地址确定数据块所在单元的目标单元标识;根据目标单元标识在动态随机存储区中的位图中查询数据块所属数据盘的目标盘标识;根据目标单元标识、目标数据的长度和目标盘标识从临时区域中的数据块中截取目标数据;将截取的目标数据从临时区域拷贝至客户端在动态随机存储区对应的目标区域,以便客户端获取目标数据。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:删除临时区域中的数据块。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:在动态随机存储区中的位图中,使目标标志位更新为数据块已存于固态硬盘缓存区。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:数据所在单元对应的未存有数据的标志位,则不对持久存储区进行读操作,直接返回全0数据至客户端。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:将全0数据存储至客户端在动态随机存储区对应的目标区域,以便客户端获取全0数据。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:接收目标卷的创建请求;在持久存储区的不同数据盘中选择未存数据的多个单元,构建得到目标卷;在对目标卷进行写操作后,相应更新动态随机存储区中的位图。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:在动态随机存储区中的位图中,使写操作的单元对应的是否被写过标志位更新为已写过。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:若持久存储区中新增数据盘,则在动态随机存储区中的位图中新增该数据盘包括的各个单元的单元标识、是否被写过标志位、所对应固态硬盘的标志位和该数据盘的盘标识。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:若动态随机存储区中的位图存在更新,则将动态随机存储区中更新后的位图同步至持久存储区。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:若存储系统启动后,检测到持久存储区中已有位图,则将持久存储区中的位图读取至动态随机存储区。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:若当前存储系统为同步响应模式,则先将数据块从动态随机存储区同步至固态硬盘缓存区,再将动态随机存储区中的目标数据返回至客户端。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:在存储系统的操作系统启动后,修改操作系统所在目录中的配置文件中的响应模式,以使存储系统的存储服务通过读取配置文件中的响应模式确定存储系统的响应模式为异步响应模式或同步响应模式。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:在存储系统运行过程中,通过命令行方式修改配置文件中的响应模式。
进一步的,本发明实施例还提供了一种电子设备。其中,上述电子设备既可以是如图9所示的服务器50,也可以是如图10所示的终端60。图9和图10均是根据一示例性实施例示出的电子设备结构图,图中的内容不能被认为是对本发明的使用范围的任何限制。
图9为本发明实施例提供的一种服务器的结构示意图。该服务器50,具体可以包括:至少一个处理器51、至少一个存储器52、电源53、通信接口54、输入输出接口55和通信总线56。其中,所述存储器52用于存储计算机程序,所述计算机程序由所述处理器51加载并执行,以实现前述任一实施例公开的发布应用程序的监控中的相关步骤。
本实施例中,电源53用于为服务器50上的各硬件设备提供工作电压;通信接口54能够为服务器50创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本发明技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口55,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器52作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统521、计算机程序522及数据523等,存储方式可以是短暂存储或者永久存储。
其中,操作系统521用于管理与控制服务器50上的各硬件设备以及计算机程序522,以实现处理器51对存储器52中数据523的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序522除了包括能够用于完成前述任一实施例公开的发布应用程序的监控方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据523除了可以包括应用程序的更新信息等数据外,还可以包括应用程序的开发商信息等数据。
图10为本发明实施例提供的一种终端的结构示意图,该终端60具体可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
通常,本实施例中的终端60包括有:处理器61和存储器62。
其中,处理器61可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器61可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器61也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器61可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器61还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器62可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器62还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器62至少用于存储以下计算机程序621,其中,该计算机程序被处理器61加载并执行之后,能够实现前述任一实施例公开的由终端侧执行的发布应用程序的监控方法中的相关步骤。另外,存储器62所存储的资源还可以包括操作系统622和数据623等,存储方式可以是短暂存储或者永久存储。其中,操作系统622可以包括Windows、Unix、Linux等。数据623可以包括但不限于应用程序的更新信息。
在一些实施例中,终端60还可包括有显示屏63、输入输出接口64、通信接口65、传感器66、电源67以及通信总线68。
本领域技术人员可以理解,图10中示出的结构并不构成对终端60的限定,可以包括比图示更多或更少的组件。
下面对本发明实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与本文描述的其他实施例可以相互参照。
一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的数据处理方法。其中,可读存储介质为计算机可读存储介质,其作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统、计算机程序及数据等,存储方式可以是短暂存储或者永久存储。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (23)
1.一种数据处理方法,其特征在于,应用于包括动态随机存储区、固态硬盘缓存区和持久存储区的存储系统,包括:
接收客户端发送的目标数据的读请求;
若所述固态硬盘缓存区未存所述目标数据,则从所述持久存储区读取包括所述目标数据的预设大小的数据块,并将所述数据块存储至所述动态随机存储区;
若当前所述存储系统为异步响应模式,则以异步方式将所述动态随机存储区中的所述目标数据返回至所述客户端,并将所述数据块从所述动态随机存储区同步至所述固态硬盘缓存区;
若所述固态硬盘缓存区的剩余空间低于预设阈值,则利用专用于数据下刷的线程将所述固态硬盘缓存区中的冷数据下刷至所述持久存储区。
2.根据权利要求1所述的方法,其特征在于,所述接收客户端发送的目标数据的读请求之前,还包括:
根据所述持久存储区的各个数据盘生成位图;每一数据盘包括多个单元,所述位图记录有每一数据盘中每一单元对应的单元标识、是否被写过标志位、所对应固态硬盘的标志位和所属数据盘的盘标识;
将所述位图存储至所述持久存储区,并同步至所述动态随机存储区。
3.根据权利要求1所述的方法,其特征在于,还包括:
若所述固态硬盘缓存区存有所述目标数据,则将所述固态硬盘缓存区中的所述目标数据返回至所述客户端。
4.根据权利要求3所述的方法,其特征在于,
通过所述目标数据的偏移地址确定所述数据块所在单元的目标单元标识;
根据所述目标单元标识在所述动态随机存储区中的位图中查询所述数据块所对应固态硬盘的目标标志位;
根据所述目标标志位确定所述固态硬盘缓存区是否存有所述目标数据。
5.根据权利要求4所述的方法,其特征在于,所述通过所述目标数据的偏移地址确定所述数据块所在单元的目标单元标识,包括:
计算所述偏移地址与所述预设大小的商,并通过去尾法得到目标值;
基于所述目标值确定所述目标单元标识。
6.根据权利要求1所述的方法,其特征在于,所述将所述数据块存储至所述动态随机存储区,包括:
将所述数据块存储至所述动态随机存储区中的临时区域。
7.根据权利要求6所述的方法,其特征在于,所述将所述动态随机存储区中的所述目标数据返回至所述客户端,包括:
通过所述目标数据的偏移地址确定所述数据块所在单元的目标单元标识;
根据所述目标单元标识在所述动态随机存储区中的位图中查询所述数据块所属数据盘的目标盘标识;
根据所述目标单元标识、所述目标数据的长度和所述目标盘标识从所述临时区域中的所述数据块中截取所述目标数据;
将截取的所述目标数据从所述临时区域拷贝至所述客户端在所述动态随机存储区对应的目标区域,以便所述客户端获取所述目标数据。
8.根据权利要求6所述的方法,其特征在于,所述将所述数据块从所述动态随机存储区同步至所述固态硬盘缓存区之后,还包括:
删除所述临时区域中的所述数据块。
9.根据权利要求8所述的方法,其特征在于,还包括:
在所述动态随机存储区中的位图中,使目标标志位更新为所述数据块已存于所述固态硬盘缓存区。
10.根据权利要求1所述的方法,其特征在于,还包括:
若在所述动态随机存储区中的位图中查询到所述目标数据所在单元对应的未存有数据的标志位,则不对所述持久存储区进行读操作,直接返回全0数据至所述客户端。
11.根据权利要求10所述的方法,其特征在于,所述返回全0数据至所述客户端,包括:
将所述全0数据存储至所述客户端在所述动态随机存储区对应的目标区域,以便所述客户端获取所述全0数据。
12.根据权利要求1所述的方法,其特征在于,还包括:
接收目标卷的创建请求;
在所述持久存储区的不同数据盘中选择未存数据的多个单元,构建得到所述目标卷;
在对所述目标卷进行写操作后,相应更新所述动态随机存储区中的位图。
13.根据权利要求12所述的方法,其特征在于,所述更新所述动态随机存储区中的位图,包括:
在所述动态随机存储区中的位图中,使所述写操作的单元对应的是否被写过标志位更新为已写过。
14.根据权利要求1所述的方法,其特征在于,还包括:
若所述持久存储区中新增数据盘,则在所述动态随机存储区中的位图中新增该数据盘包括的各个单元的单元标识、是否被写过标志位、所对应固态硬盘的标志位和该数据盘的盘标识。
15.根据权利要求14所述的方法,其特征在于,还包括:
若所述动态随机存储区中的位图存在更新,则将所述动态随机存储区中更新后的位图同步至所述持久存储区。
16.根据权利要求15所述的方法,其特征在于,还包括:
若所述存储系统启动后,检测到所述持久存储区中已有位图,则将所述持久存储区中的位图读取至所述动态随机存储区。
17.根据权利要求1至16任一项所述的方法,其特征在于,还包括:
若当前所述存储系统为同步响应模式,则先将所述数据块从所述动态随机存储区同步至所述固态硬盘缓存区,再将所述动态随机存储区中的所述目标数据返回至所述客户端。
18.根据权利要求1至16任一项所述的方法,其特征在于,所述异步响应模式在所述存储系统启动过程中配置或在所述存储系统运行过程中配置。
19.根据权利要求18所述的方法,其特征在于,在所述存储系统的操作系统启动后,修改所述操作系统所在目录中的配置文件中的响应模式,以使所述存储系统的存储服务通过读取所述配置文件中的响应模式确定所述存储系统的响应模式为异步响应模式或同步响应模式。
20.根据权利要求19所述的方法,其特征在于,在所述存储系统运行过程中,通过命令行方式修改所述配置文件中的响应模式。
21.一种数据处理装置,其特征在于,应用于包括动态随机存储区、固态硬盘缓存区和持久存储区的存储系统,包括:
接收模块,用于接收客户端发送的目标数据的读请求;
处理模块,用于若所述固态硬盘缓存区未存所述目标数据,则从所述持久存储区读取包括所述目标数据的预设大小的数据块,并将所述数据块存储至所述动态随机存储区;
响应模块,用于若当前所述存储系统为异步响应模式,则以异步方式将所述动态随机存储区中的所述目标数据返回至所述客户端,并将所述数据块从所述动态随机存储区同步至所述固态硬盘缓存区;
下刷模块,用于若所述固态硬盘缓存区的剩余空间低于预设阈值,则利用专用于数据下刷的线程将所述固态硬盘缓存区中的冷数据下刷至所述持久存储区。
22.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至20任一项所述的方法。
23.一种可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至20任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310744389.XA CN116755625A (zh) | 2023-06-21 | 2023-06-21 | 一种数据处理方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310744389.XA CN116755625A (zh) | 2023-06-21 | 2023-06-21 | 一种数据处理方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116755625A true CN116755625A (zh) | 2023-09-15 |
Family
ID=87949316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310744389.XA Pending CN116755625A (zh) | 2023-06-21 | 2023-06-21 | 一种数据处理方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116755625A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117591267A (zh) * | 2024-01-17 | 2024-02-23 | 苏州元脑智能科技有限公司 | 一种任务处理方法、设备、介质及系统 |
-
2023
- 2023-06-21 CN CN202310744389.XA patent/CN116755625A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117591267A (zh) * | 2024-01-17 | 2024-02-23 | 苏州元脑智能科技有限公司 | 一种任务处理方法、设备、介质及系统 |
CN117591267B (zh) * | 2024-01-17 | 2024-04-05 | 苏州元脑智能科技有限公司 | 一种任务处理方法、设备、介质及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8392670B2 (en) | Performance management of access to flash memory in a storage device | |
CN108431783B (zh) | 访问请求处理方法、装置及计算机系统 | |
JP7482905B2 (ja) | ストレージシステム、メモリ管理方法、および管理ノード | |
JP5445463B2 (ja) | 計算機システム、データ保存方法およびプログラム | |
CN103544045A (zh) | 一种基于hdfs的虚拟机镜像存储系统及其构建方法 | |
CN106326229B (zh) | 一种嵌入式系统的文件存储方法和装置 | |
US11030092B2 (en) | Access request processing method and apparatus, and computer system | |
CN108089825B (zh) | 一种基于分布式集群的存储系统 | |
CN113568582B (zh) | 数据管理方法、装置和存储设备 | |
KR20170042593A (ko) | 파일 시스템에서의 플러싱 기법 | |
JP2017126334A (ja) | 記憶装置及びその動作方法並びにシステム | |
CN111666044A (zh) | 一种访问叠瓦式磁记录smr硬盘的方法及服务器 | |
US20240086332A1 (en) | Data processing method and system, device, and medium | |
CN111158602A (zh) | 数据分层存储方法、读取方法、存储主机及存储系统 | |
CN116755625A (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN115794669A (zh) | 一种扩展内存的方法、装置及相关设备 | |
CN110737607A (zh) | 管理hmb内存的方法、装置、计算机设备及存储介质 | |
WO2016206070A1 (zh) | 一种文件更新方法及存储设备 | |
CN115858409A (zh) | 一种数据预取方法、计算节点和存储系统 | |
US6532513B1 (en) | Information recording and reproduction apparatus | |
CN108958657B (zh) | 一种数据存储方法、存储设备及存储系统 | |
CN112995257A (zh) | 基于云存储架构的缓存扩容方法、装置以及存储介质 | |
US11586353B2 (en) | Optimized access to high-speed storage device | |
KR101020781B1 (ko) | 플래시 메모리를 기반으로 한 데이터베이스 시스템에 대한 로그 관리 방법 | |
CN113656396A (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 |