CN111813813A - 一种数据管理方法、装置、设备及存储介质 - Google Patents
一种数据管理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111813813A CN111813813A CN202010653048.8A CN202010653048A CN111813813A CN 111813813 A CN111813813 A CN 111813813A CN 202010653048 A CN202010653048 A CN 202010653048A CN 111813813 A CN111813813 A CN 111813813A
- Authority
- CN
- China
- Prior art keywords
- data
- block
- storage space
- streaming data
- index
- 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 66
- 238000013523 data management Methods 0.000 title claims abstract description 47
- 238000013467 fragmentation Methods 0.000 claims abstract description 137
- 238000006062 fragmentation reaction Methods 0.000 claims abstract description 137
- 239000012634 fragment Substances 0.000 claims description 117
- 230000011218 segmentation Effects 0.000 claims description 15
- 238000005192 partition Methods 0.000 claims description 9
- 230000015654 memory Effects 0.000 claims description 5
- 238000013500 data storage Methods 0.000 abstract description 13
- 238000010586 diagram Methods 0.000 description 9
- 238000007726 management method Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据管理方法、装置、设备及存储介质,属于数据存储技术领域。该方法包括:获取待写入的第一流式数据;若根据第一流式数据的数据长度确定存储设备中不存在能够用于存储第一流式数据的未满块,则从存储设备包括的多个数据块中确定空闲块;根据数据长度对空闲块进行分片,得到的每个分片存储空间的分片大小大于数据长度;将第一流式数据存储至第一分片存储空间中,以及在空闲块的分片索引区中存储第一分片存储空间的第一分片索引,其中,第一分片存储空间为空闲块中的一个分片存储空间。本申请实施例可以避免需要移动其他数据,进而提高了存储性能。
Description
技术领域
本申请实施例涉及数据存储技术领域,特别涉及一种数据管理方法、装置、设备及存储介质。
背景技术
流式数据通常是指一组以时间为顺序的大量连续的数据集合。流式数据的存储通常是以顺序写的方式存储在连续的存储空间中。
然而,当已存储的流式数据涉及修改时,有可能会引起数据长度的变化,如果修改后的数据长度比修改前的数据长度长,那么为了保证流式数据的时间顺序属性,可以移动在被修改的流式数据之后存储的其他流式数据,如此会产生大量的输入输出操作,从而影响存储系统的存储性能。或者,也可以另外开辟一块存储空间写入流式数据,再将原来的流失数据删除,这样一方面破坏了流式数据的顺序性,另一方面删除原来的流式数据造成了存储空间出现空洞问题。
发明内容
本申请实施例提供了一种数据管理方法、装置、设备及存储介质,可以解决相关技术中由于数据长度增长导致需要进行数据移动,从而影响存储系统的存储性能的问题。所述技术方案如下:
一方面,提供了一种数据管理方法,应用于存储设备中,所述方法包括:
获取待写入的第一流式数据;
若根据所述第一流式数据的数据长度确定所述存储设备中不存在能够用于存储所述第一流式数据的未满块,则从所述存储设备包括的多个数据块中确定空闲块;
根据所述数据长度对所述空闲块进行分片,得到的每个分片存储空间的分片大小大于所述数据长度;
将所述第一流式数据存储至第一分片存储空间中,以及在所述空闲块的分片索引区中存储所述第一分片存储空间的第一分片索引,其中,所述第一分片存储空间为所述空闲块中的一个分片存储空间。
可选地,所述根据所述数据长度对所述空闲块进行分片,包括:
从多个参考长度中,选择大于所述数据长度且与所述数据长度之间的差值最小的目标参考长度;
基于所述目标参考长度,对所述空闲块进行分片,得到的每个分片存储空间的分片大小为所述目标参考长度。
可选地,所述方法还包括:
接收覆盖写请求,所述覆盖写请求携带块索引、第二分片索引和第二流式数据,所述第二流式数据为修改后的流式数据;
根据所述块索引和所述第二分片索引,确定对应的第二分片存储空间;
将所述第二分片存储空间中存储的流式数据更新为所述第二流式数据。
可选地,所述获取待写入的第一流式数据,包括:
接收数据写入请求,所述数据写入请求中携带第三流式数据;
若所述第三流式数据的数据长度大于预设阈值,则对所述第三流式数据进行切分处理,得到多个切分流式数据;
将所述多个切分流式数据中的每个切分流式数据确定为所述第一流式数据。
可选地,所述获取待写入的第一流式数据之后,还包括:
若根据所述第一流式数据的数据长度确定所述存储设备中存在能够用于存储所述第一流式数据的未满块,则将所述第一流式数据存储至所述未满块的第三分片存储空间中,所述能够用于存储所述第一流式数据的未满块是指所包括的分片存储空间的分片大小大于所述数据长度,所述第三分片存储空间为未存储数据的分片存储空间;
在所述未满块的分片索引区中存储所述第三分片存储空间的第三分片索引。
可选地,所述获取待写入的第一流式数据之前,还包括:
接收格式化请求,所述格式化请求中至少携带启动块大小,数据块大小和存储介质容量;
根据所述启动块大小、所述数据块大小和所述存储介质容量,确定数据块个数;
基于所述数据块个数对所述存储设备的存储空间进行逻辑划分,得到所述多个数据块;
对所述多个数据块进行初始化。
另一方面,提供了一种数据管理方法,应用于存储设备中,所述方法包括:
确定待读取流式数据的块索引和参考索引;
根据所述块索引,确定所述待读取流式数据所在的数据块,所述数据块中包括多个分片存储空间,每个分片存储空间的分片大小大于对应的分片存储空间所存储的流式数据的数据长度;
根据所述参考索引,从所述数据块中确定对应的目标分片存储空间;
从所述目标分片存储空间中读取所述待读取流式数据。
可选地,所述参考索引包括分片索引,所述根据所述块索引,确定待读取流式数据所在的数据块,包括:
若根据所述块索引和所述分片索引确定缓存中不存在所述待读取流式数据,则根据所述块索引,确定所述待读取流式数据所在的数据块;
所述从所述目标分片存储空间中读取所述待读取流式数据之后,还包括:
将所述目标分片存储空间之后的相邻的参考数量个分片存储空间内的数据存储至所述缓存中。
可选地,所述参考索引包括流式属性值范围,所述根据所述参考索引,从所述数据块中确定对应的目标分片存储空间,包括:
根据所述流式属性值范围和所述数据块的分片索引区中存储的流式属性信息,确定所述流式属性值范围内的流式数据对应的目标分片索引;
基于所述目标分片索引,从所述数据块中确定所述目标分片存储空间。
另一方面,提供了一种数据管理装置,配置于存储设备中,所述装置包括:
获取模块,用于获取待写入的第一流式数据;
第一确定模块,用于若根据所述第一流式数据的数据长度确定所述存储设备中不存在能够用于存储所述第一流式数据的未满块,则从所述存储设备包括的多个数据块中确定空闲块;
分片模块,用于根据所述数据长度对所述空闲块进行分片,得到的每个分片存储空间的分片大小大于所述数据长度;
存储模块,用于将所述第一流式数据存储至第一分片存储空间中,以及在所述空闲块的分片索引区中存储所述第一分片存储空间的第一分片索引,其中,所述第一分片存储空间为所述空闲块中的一个分片存储空间。
可选地,所述分片模块用于:
从多个参考长度中,选择大于所述数据长度且与所述数据长度之间的差值最小的目标参考长度;
基于所述目标参考长度,对所述空闲块进行分片,得到的每个分片存储空间的分片大小为所述目标参考长度。
可选地,所述获取模块还用于:
接收覆盖写请求,所述覆盖写请求携带块索引、第二分片索引和第二流式数据,所述第二流式数据为修改后的流式数据;
根据所述块索引和所述第二分片索引,确定对应的第二分片存储空间;
将所述第二分片存储空间中存储的流式数据更新为所述第二流式数据。
可选地,所述获取模块用于:
接收数据写入请求,所述数据写入请求中携带第三流式数据;
若所述第三流式数据的数据长度大于预设阈值,则对所述第三流式数据进行切分处理,得到多个切分流式数据;
将所述多个切分流式数据中的每个切分流式数据确定为所述第一流式数据。
可选地,所述存储模块还用于:
若根据所述第一流式数据的数据长度确定所述存储设备中存在能够用于存储所述第一流式数据的未满块,则将所述第一流式数据存储至所述未满块的第三分片存储空间中,所述能够用于存储所述第一流式数据的未满块是指所包括的分片存储空间的分片大小大于所述数据长度,所述第三分片存储空间为未存储数据的分片存储空间;
在所述未满块的分片索引区中存储所述第三分片存储空间的第三分片索引。
可选地,所述获取模块还用于:
接收格式化请求,所述格式化请求中至少携带启动块大小,数据块大小和存储介质容量;
根据所述启动块大小、所述数据块大小和所述存储介质容量,确定数据块个数;
基于所述数据块个数对所述存储设备的存储空间进行逻辑划分,得到所述多个数据块;
对所述多个数据块进行初始化。
另一方面,提供了一种数据管理装置,配置于存储设备中,所述装置包括:
第二确定模块,用于确定待读取流式数据的块索引和参考索引;
第三确定模块,用于根据所述块索引,确定所述待读取流式数据所在的数据块,所述数据块中包括多个分片存储空间,每个分片存储空间的分片大小大于对应的分片存储空间所存储的流式数据的数据长度;
第四确定模块,用于根据所述参考索引,从所述数据块中确定对应的目标分片存储空间;
读取模块,用于从所述目标分片存储空间中读取所述待读取流式数据。
可选地,所述第三确定模块用于:
若根据所述块索引和所述分片索引确定缓存中不存在所述待读取流式数据,则根据所述块索引,确定所述待读取流式数据所在的数据块;
所述读取模块还用于:将所述目标分片存储空间之后的相邻的参考数量个分片存储空间内的数据存储至所述缓存中。
可选地,所述第四确定模块用于:
根据所述流式属性值范围和所述数据块的分片索引区中存储的流式属性信息,确定所述流式属性值范围内的流式数据对应的目标分片索引;
基于所述目标分片索引,从所述数据块中确定所述目标分片存储空间。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述一方面所述的方法,或者实现上述另一方面所述的方法。
另一方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述一方面所述的方法,或者实现上述另一方面所述的方法。
本申请实施例提供的技术方案带来的有益效果是:
针对待写入的第一流式数据,确定存储设备中是否存在未满块的分片存储空间的分片大小大于该第一流式数据的数据长度,如果不存在,说明当前不存在能够用于存储该第一流式数据的未满块。在该种情况下,该存储设备从所包括的多个数据块中确定空闲块,然后将该空闲块切分成分片大小大于该数据长度的多个分片存储空间。将该第一流式数据存储至该多个分片存储空间中的一个分片存储空间中,并在空闲块块的分片索引区中存储对应的第一分片索引。由于该第一分片存储空间的分片大小大于该第一流式数据的数据长度,所以若需要对该第一流式数据进行修改,即使修改的流式数据的数据长度有增加,但由于第一分片存储空间存在冗余空间,所以仍可以利用修改后的流式数据在该第一分片存储空间中进行覆盖写,从而可以避免需要移动其他数据,进而提高了存储性能。另外,也避免需要另外开辟存储空间,可以保证流失数据的顺序性,以及可以避免存储空间出现空洞的问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种文件系统的存储结构示意图;
图2是根据另一示例性实施例示出的一种数据管理方法的流程图;
图3是根据另一示例性实施例示出的一种数据管理方法的流程图;
图4是根据另一示例性实施例示出的一种数据管理方法的流程图;
图5是根据另一示例性实施例示出的一种数据管理方法的流程图;
图6是根据另一示例性实施例示出的一种数据管理方法的流程图;
图7是根据另一示例性实施例示出的一种数据管理方法的流程图;
图8是根据另一示例性实施例示出的一种数据管理方法的流程图;
图9是根据一示例性实施例示出的一种数据管理装置的结构示意图;
图10是根据另一示例性实施例示出的一种数据管理装置的结构示意图;
图11是根据一示例性实施例示出的一种存储设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例提供的数据管理方法进行详细介绍之前,先对本申请实施例涉及的术语和实施环境进行简单介绍。
首先,对本申请实施例涉及的术语进行简单介绍。
流式数据:是一组顺序地、大量地、连续到达的数据序列,可被视为是一个随时间延续而增长的动态数据集合。
文件系统:用于对存储设备中的存储空间进行组织和分配,负责数据的存储、修改、读取等操作。
格式化:通常是指对存储空间进行逻辑划分,以及对逻辑划分得到的数据块进行初始化。
覆盖写:修改已经存储在文件系统中的数据。
接下来,对本申请实施例涉及的实施环境进行简单介绍。
本申请实施例提供的数据管理方法可以由存储设备来执行,该存储设备中包括文件系统,存储设备可以通过该文件系统来实现本申请实施例提供的数据管理方法。
为了便于后文理解,这里对本申请实施例中涉及的文件系统的存储结构进行简单介绍。请参考图1,图1是根据一示例性实施例示出的一种文件系统的存储结构示意图,该文件系统包括启动块、数据块区和备份启动块,该备份启动块用于对该启动块中的数据进行备份。其中,该数据块区包括多个数据块,譬如,包括数据块1、数据块2、数据块3、...、数据块M,该多个数据块可以是通过对该存储设备的存储空间进行格式化处理后得到,该多个数据块的块大小相同,该块大小可以根据实际使用情况进行配置。每个数据块包括索引区、数据存储区和备份索引区,其中,索引区中包括公共索引区和分片索引区,备份索引区用于对索引区中的数据进行备份。
上述启动块可以用于记录文件系统的一些关键信息,譬如,该关键信息可以包括存储介质标识、存储介质的存储空间容量、启动块大小、索引区大小、数据块大小等。其中,该存储介质标识可以用于唯一标识存储设备中的一个存储介质。
这里需要说明的是,存储设备中可以包括至少一个存储介质,示例性的,存储介质可以为磁盘、阵列、SSD(Solid State Disk,固态硬盘)等,本申请实施例对此不作限定。
上述每个数据块中的索引区用于存储索引信息,数据存储区用于存储数据。示例性地,索引区可以用于存储但不限于数据的数据类型、数据存储时间、数据实际大小、存储偏移位置以及偏移大小之类的索引信息。
上述每个数据块中的数据存储区可以根据写入的数据长度被切割为长度相等的分片存储空间,不同的数据块上的分片存储空间的分片大小可以相同,也可以不相同。同一个数据块中的分片存储空间的分片大小存储在索引区的分片索引区中,每个分片存储空间都对应有一个分片索引,示例性的,分片索引中还可以包括对应的分片存储空间的分片ID(Identity,身份),另外,该分片索引中还记录了分片存储空间中存储的数据的信息。
作为一种示例,该存储设备可以为笔记本电脑、台式计算机、平板计算机、服务器之类的设备,本申请实施例对此不作限定。
在介绍完本申请实施例涉及的术语和实施环境后,接下来将结合附图对本申请实施例提供的数据管理方法进行详细介绍。其中,该数据管理可以包括数据存储管理和数据读取管理,根据管理方式不同,接下来将通过如下各个实施例分别进行详细说明。
请参考图2,该图2是根据一示例性实施例示出的一种数据管理方法的流程图,这里以该数据管理为数据存储管理为例进行说明,该方法可以由上述存储设备来执行,具体可以包括如下几个实现步骤:
步骤201:获取待写入的第一流式数据。
在实施中,该存储设备可以通过文件系统获取待写入的第一流式数据,进一步地,该文件系统可以从应用层获取该第一流式数据。
作为一种示例,获取待写入的第一流式数据的具体实现可以包括:接收数据写入请求,该数据写入请求中携带第三流式数据,若该第三流式数据的数据长度大于预设阈值,则对该第三流式数据进行切分处理,得到多个切分流式数据,将该多个切分流式数据中的每个切分流式数据确定为该第一流式数据。
其中,该预设阈值可以由用户根据实际需求进行设置,或者,也可以由该存储设备默认设置,本申请实施例对此不作限定。
也即是,该存储设备通过应用层接收数据写入请求,应用层可以控制写入的数据长度大小均匀,以使得数据长度不会相差太大。为此,在接收到数据写入请求后,可以确定该数据写入请求中携带的第三流式数据的数据长度是否大于预设阈值,如果该第三流式数据的数据长度大于预设阈值,说明该第三流式数据比较大,此时,可以对该第三流式数据进行切分处理,以得到的切分流式数据,之后,可以将每个切分流式数据确定为第一流式数据,以便于对每个切分流式数据采用后续的存储方式进行数据存储。也即是,该待写入的第一流式数据可以由存储设备的应用层切分后得到。
需要说明的是,在对第三流式数据进行切分处理时,可以根据预设的切分规则进行切分,譬如,该切分规则可以包括多种流式数据类型与多个切分范围之间的对应关系,也即是,针对不同类型的流式数据,可以按照不同的切分大小进行切分,本申请实施例对此不作限定。
作为另一种示例,获取待写入的第一流式数据的具体实现还可以包括:接收数据写入请求,该数据写入请求中携带第三流式数据,若该第三流式数据的长度小于预设阈值,则将该第三流式数据确定为该第一流式数据。
也就是说,如果数据写入请求中携带的第三流式数据的数据长度不是很大,则应用层就不需要进行切分处理,也即是,存储设备可以直接将该数据写入请求中携带的第三流式数据确定为第一流式数据。
步骤202:若根据该第一流式数据的数据长度确定该存储设备中不存在能够用于存储该第一流式数据的未满块,则从该存储设备包括的多个数据块中确定空闲块。
其中,该未满块是指存储有流式数据但未存满的数据块。不难理解,该存储设备中的某数据块中可能已经存储有流式数据,但该数据块还没有存满,即还可以继续存入流式数据,此时将该数据块称为未满块。
其中,该空闲块是指未存储有流式数据的数据块。
存储设备获取该第一流式数据后,可以查询当前是否存在未满块,如果存在,则可以根据该第一流式数据的数据长度,进一步判断该未满块是否能够存储该第一流式数据。
作为一种示例,根据该第一流式数据的数据长度,判断该未满块是否能够存储该第一流式数据的具体实现可以包括:判断该未满块所包括的分片存储空间的分片大小是否大于该数据长度,如果该未满块所包括的分片存储空间的分片大小大于该数据长度,则确定该未满块能够用于存储该第一流式数据。如果该未满块所包括的分片存储空间的分片大小小于或等于该数据长度,则确定该未满块不能够用于存储该第一流式数据。
其中,该未满块中的分片存储空间的分片大小是在初始往该未满块中存入流式数据时确定的。该存储设备可以判断该未满块中的分片存储空间的分片大小是否大于该第一流式数据的数据长度,如果大于,说明该未满块中的分片存储空间能够足以用于存储该第一流式数据,此时可以确定该未满块能够用于存储该第一流式数据。
当然,如果该未满块中的分片存储空间的分片大小小于该第一流式数据的数据长度,说明该未满块中的分片存储空间不足够用于存储该第一流式数据,此时可以确定该未满块不能够用于存储该第一流式数据。
此外,若该未满块中的分片存储空间的分片大小等于该第一流式数据的数据长度,则在后续若要对该第一流式数据进行覆盖写时,如果数据长度发生变化,就可能会导致需要移动数据,所以,在该未满块中的分片存储空间的分片大小等于该第一流式数据的数据长度的情况下,存储设备确定该未满块不能够用于存储该第一流式数据。
作为另一种示例,根据该第一流式数据的数据长度,判断该未满块是否能够存储该第一流式数据的具体实现还可以包括:判断该未满块所包括的分片存储空间的分片大小是否大于该数据长度,如果该未满块所包括的分片存储空间的分片大小大于该数据长度,确定该分片存储空间的分片大小与该数据长度之间的差值,若该差值处于参考范围内,则确定该未满块能够用于存储该第一流式数据。否则,如果该差值未处于该参考范围内,则确定该未满块不能够用于存储该第一流式数据。
其中,该参考范围可以根据实际需求进行设置。也即是,在该未满块所包括的分片存储空间的分片大小大于该第一流式数据的数据长度的情况下,存储设备进一步确定该分片存储空间的分片大小比该第一流式数据的数据长度大多少,如果相差不是很大,可以确定该未满块能够用于存储该第一流式数据。但如果该未满块中的分片存储空间的分片大小与该数据长度相差比较大,如果通过该未满块中的分片存储空间存储该第一流式数据,会导致存储资源浪费等问题,所以,此时可以确定该未满块不能够用于存储该第一流式数据。
譬如,假设该第一流式数据的数据长度为3K,该参考范围为[0.5K,1K],若该未满块中的分片存储空间的分片大小为4K,则可以确定该未满块能够用于存储该第一流式数据,若该未满块中的分片存储空间的分片大小为16K,则可以确定该未满块不能够用于存储该第一流式数据。
在又一实施例中,若该存储设备中当前不存在未满块,则可以确定不存在能够用于存储该第一流式数据的未满块。
请参考图3,如果确定不存在能够用于存储该第一流式数据的未满块,则可以从该多个数据块中确定一个空闲块。作为一种示例,可以由该存储设备中的文件系统确定一个空闲块,并分配给应用层。进一步地,该文件系统可以将该分片大小记录在索引区中的公共索引区内。
需要说明的是,本申请实施例不对确定空闲块的具体方式进行限定,示例性的,若该多个数据块中包括多个空闲块,则可以从该多个空闲块中随机选择一个空闲块。再如,若在存储空间格式化时对数据块进行了编号,则可以确定未满块的下一个数据块为空闲块。
步骤203:根据该数据长度对该空闲块进行分片,得到的每个分片存储空间的分片大小大于该数据长度。
这里所述的对该空闲块进行分片实际上是对该空闲块进行逻辑划分,得到多个分片存储空间,其中,该多个分片存储空间的分片大小相同,也即是,同一个数据块中的各个分片存储空间的分片大小相同,在实施中,可以由应用层通过文件系统在申请到的空闲块中开辟分片存储空间。
进一步地,存储设备还可以对相邻的分片存储空间进行连续编号。
需要说明的是,在本申请实施例中,在对空闲块进行逻辑切分时,保证切分得到的分片存储空间的分片大小大于该数据长度,也即是,分片存储空间中留有一定的冗余空间,如此,在覆盖写时,可以直接将修改后的流式数据写入分片存储空间中,该冗余空间可以解决修改后的数据长度增加的问题。
作为一种示例,根据该数据长度对该空闲块进行分片,得到的每个分片存储空间的分片大小大于该数据长度的具体实现可以包括:从多个参考长度中,选择大于该数据长度且与该数据长度之间的差值最小的目标参考长度,基于该目标参考长度,对该空闲块进行分片,得到的每个分片存储空间的分片大小为该目标参考长度。
其中,该多个参考长度互不相同,该多个参考长度可以根据实际需求预先进行设置,譬如,该多个参考长度可以包括4K、8K、16K、32K。
在对空闲块进行切分处理过程中,可以从预先设置好的多个参考长度中选择一个大于该数据长度,并且与该数据长度最接近的参考长度,得到目标参考长度,然后按照选择的目标参考长度对该空闲块进行切分,使得切分后每个分片存储空间的分片大小为该目标参考长度,从而在保证覆盖写时能够解决数据长度增加的问题的同时,还能够尽可能的节省存储空间,提高存储空间利用率。
譬如,假设该多个参考长度包括4K、8K、16K、32K,该数据长度为7K,则可以选择8K作为目标参考长度,之后对该空闲块进行切分,得到的每个分片存储空间的分片大小为8K。
需要说明的是,上述根据该数据长度和多个参考长度对该空闲块进行分片仅是示例性的。在另一实施例中,存储设备还可以从该多个参考长度中选择其他的大于该数据长度的参考长度作为目标参考长度。再或者,在又一实施例中,该存储设备还可以根据数据长度,直接对该空闲块进行分片,只要划分后得到的分片存储空间的分片大小大于该数据长度即可,而不需要从多个参考长度中选择一个目标参考长度作为分片大小。
步骤204:将该第一流式数据存储至第一分片存储空间中,以及在该空闲块的分片索引区中存储该第一分片存储空间的第一分片索引,其中,该第一分片存储空间为该空闲块中的一个分片存储空间。
作为一种示例,该存储设备可以从该空闲块包括的多个分片存储空间中选择一个分片存储空间,示例性的,若在对空闲块进行逻辑划分后还对该多个分片存储空间预先进行了编号,则可以根据分片存储空间的编号进行选择。然后将该第一流式数据存储至所选择的分片存储空间中。为了便于描述和区分,这里将选择的用于存储该第一流式数据的分片存储空间称为第一分片存储空间。
此外,为了便于后续的数据读取,存储设备在该空闲块的分片索引区中存储该第一分片存储空间的第一分片索引,示例性的,该第一分片索引可以为该第一分片存储空间的分片ID。
进一步地,该存储设备还可以将该第一流式数据的数据类型、数据存储时间、数据实际大小等其他相关信息进行存储,譬如,可以在分片索引区中对应存储该第一分片索引与该其他相关信息。
值得一提的是,这里以数据块内的分片存储空间作为最小的输入输出粒度,其大小可以根据实际需求进行设置,以满足多种数据长度的使用场景,提高了文件系统的兼容性和可用性。
需要说明的是,上述是以根据该第一流式数据的数据长度确定该存储设备中不存在能够用于存储该第一流式数据的未满块为例进行说明。在另一实施例中,请继续参考图3,若根据该第一流式数据的数据长度确定该存储设备中存在能够用于存储该第一流式数据的未满块,则将该第一流式数据存储至该未满块的第三分片存储空间中,在该未满块的分片索引区中存储该第三分片存储空间的第三分片索引。其中,能够用于存储该第一流式数据的未满块是指所包括的分片存储空间的分片大小大于该数据长度,该第三分片存储空间为未存储数据的分片存储空间。
也就是说,如果该存储设备中有未满块,并且该未满块包括的分片存储空间的分片大小大于该数据长度,则该存储设备可以将该第一流式数据存储至该未满块的分片存储空间中。为了便于区分和理解,这里将该未满块中用于存储该第一流式数据的分片存储空间称为第三分片存储空间。
另外,为了便于后续读取该第一流式数据,该存储设备将该第一流式数据存储至该未满块的第三分片存储空间中后,还在该未满块的分片索引区中存储该第三分片存储空间的第三分片索引。
进一步地,若该未满块中的分片存储空间的分片大小大于该数据长度,并且,该未满块中的分片存储空间的分片大小与该数据块之间的差值处于参考范围内,则确定存在能够用于存储该第一流式数据的未满块,此时,文件系统分片该未满块给应用层,由应用层通过文件系统在申请到的未满块中开辟分片存储空间,该存储设备将该第一流式数据存储至该未满块中,并在分片索引区中进行分片索引更新。
进一步地,该存储设备存储第一流式数据后,可以查询当前用于存储该第一流式数据的数据块中,分片存储空间是否使用完,若确定分片存储空间已经使用完,则可以将该数据块置为满块。满块不能写入新的流式数据,但是可以对其已经存储的流式数据进行覆盖写,以实现流式数据的修改。
进一步地,存储设备接收覆盖写请求,该覆盖写请求携带块索引、第二分片索引和第二流式数据,该第二流式数据为修改后的流式数据,根据该块索引和该第二分片索引,确定对应的第二分片存储空间,将该第二分片存储空间中存储的流式数据更新为该第二流式数据。
请参考图4,若接收到覆盖写请求,说明需要对已存储的流式数据进行修改,该存储设备首先根据该覆盖写请求中携带的块索引和第二分片索引,定位所要修改的流式数据位于哪个块的哪个分片存储空间中。确定所要修改的流式数据的存储位置后,由于在数据存储时,用于存储流式数据的分片存储空间的分片大小大于所存储的流式数据,所以,该存储设备可以用修改后的第二流式数据直接覆盖掉对应的分片存储空间中原来存储的流式数据,如此,即使修改的第二流式数据的数据长度有所增加,但由于分片存储空间存在冗余空间,所以可以利用修改后的第二流式数据在对应的分片存储空间中进行覆盖写。
进一步地,在覆盖写之后,可以根据覆盖写请求更新分片索引,譬如,当覆盖写请求中携带第二流式数据的时间信息时,可以在分片索引信息中利用覆盖写请求中携带的时间信息替换修改前的流式数据的时间信息。
在本申请实施例中,针对待写入的第一流式数据,确定存储设备中是否存在未满块的分片存储空间的分片大小大于该第一流式数据的数据长度,如果不存在,说明当前不存在能够用于存储该第一流式数据的未满块。在该种情况下,该存储设备从所包括的多个数据块中确定空闲块,然后将该空闲块切分成分片大小大于该数据长度的多个分片存储空间。将该第一流式数据存储至该多个分片存储空间中的一个分片存储空间中,并在空闲块块的分片索引区中存储对应的第一分片索引。由于该第一分片存储空间的分片大小大于该第一流式数据的数据长度,所以若需要对该第一流式数据进行修改,即使修改的流式数据的数据长度有增加,但由于第一分片存储空间存在冗余空间,所以仍可以利用修改后的流式数据在该第一分片存储空间中进行覆盖写,从而可以避免需要移动其他数据,进而提高了存储性能。另外,也避免需要另外开辟存储空间,可以保证流失数据的顺序性,以及可以避免存储空间出现空洞的问题。
接下来,对存储空间的初始化过程进行简单介绍。请参考图5,该图5是根据一示例性实施例示出的一种格式化的流程示意图。该格式化过程可以包括:
1、接收格式化请求,该格式化请求中至少携带启动块大小,数据块大小和存储介质容量。
其中,该存储介质容量是指该存储设备的一个存储介质的存储空间总容量。
其中,该启动块大小和该数据块大小可以由用户根据实际需求进行设置,或者,也可以由该存储设备默认设置,本申请实施例对此不作限定。
其中,该格式化请求可以是用户触发的,用户可以通过指定操作触发的,该指定操作可以包括点击操作、滑动操作等等,本申请实施例对此不做限定。
示例性的,该存储设备可以向用户展示格式化界面,该格式化界面中可以包括格式化选项,当用户想要对存储设备的存储空间进行格式化处理时,可以点击该格式化选项以触发该格式化请求。
在另一实施例中,该格式化请求中除了包括上述信息之外,还可以包括其它信息,譬如,还可以包括索引区大小、文件系统的关键信息等,本申请实施例对此不做限定。
2、根据该启动块大小、该数据块大小和该存储介质容量,确定数据块个数。
也即是,该存储设备根据该启动块大小、该数据块大小和存储介质容量,确定能够将该存储设备的存储空间划分为多少个数据块。
作为一种示例,根据该启动块大小、该数据块大小和该存储介质容量,通过如下公式(1)来确定数据块个数:
T=(C-2*B)/D (1);
其中,T表示数据块个数,C表示存储介质容量,B表示启动块大小,D表示数据块大小。
3、基于该数据块个数对该存储设备的存储空间进行逻辑划分,得到该多个数据块。
也即是,将该存储空间切换分成多个数据块,其中,每个数据块的块大小相同。进一步地,可以对该多个数据块中的每个数据块进行连续编号,以便于后续可以按照编号进行数据存储。
4、对该多个数据块进行初始化。
示例性的,该存储设备可以按编号顺序依次对该多个数据块中的每个数据块进行初始化。在初始化过程中,该存储设备在数据块的索引区和备份索引区中的公共索引区写入数据块的初始信息,从而完成对每个数据块的初始化。之后,存储设备即可向数据块中写入数据。
作为一种示例,该初始信息可以包括数据块编号、数据块状态以及初始化时间等等,本申请实施例对此不做限定。
请参考图6,图6是根据另一示例性实施例示出的一种数据管理的方法流程图,这里以该数据管理为数据读取管理为例进行说明,该数据管理方法可以由上述存储设备来执行,具体可以包括如下几个实现步骤:
步骤601:确定待读取流式数据的块索引和参考索引。
其中,该块索引可以用于唯一确定一个数据块。
其中,该参考索引可以为与待读取流式数据相关的索引。示例性的,该参考索引可以包括分片索引,该分片索引可以用于指示一个分片存储空间;再如,该参考索引还可以包括流式属性值范围,该流式属性值范围是指该待读取流式数据所对应的流式属性值的范围。
在实施中,可以由文件系统确定待读取流式数据的块索引和参考索引。作为一种示例,应用层接收数据读取请求,该数据读取请求中可以携带待读取流式数据的URL(Uniform Resource Locator,统一资源定位符)信息,应用层可以根据该URL信息,确定该块索引和参考索引。
值得一提的是,这里以分片存储空间为粒度进行数据存储,应用层可以根据数据块的块索引和分片索引确定数据存储位置,消除了位置索引,大幅度降低了索引复杂性,并使索引数据占用空间减小。
步骤602:根据该块索引,确定该待读取流式数据所在的数据块,该数据块中包括多个分片存储空间,每个分片存储空间的分片大小大于对应的分片存储空间所存储的流式数据的数据长度。
存储设备根据该块索引可以确定该待读取流式数据在哪个数据块中。其中,由于分片存储空间的分片大小大于所存储的流式数据的数据长度,所以,若对分片存储空间中的流式数据进行修改,即使修改后的流式数据的数据长度增加,也可以直接在分片存储空间中进行覆盖写,避免需要进行数据移动。
步骤603:根据该参考索引,从该数据块中确定对应的目标分片存储空间。
在确定待读取流式数据所在的数据块后,即可根据参考索引,从该数据块中确定该参考索引对应的目标分片存储空间。其中,该目标分片存储空间的数量可能为一个,也可能为多个。
步骤604:从该目标分片存储空间中读取该待读取流式数据。
示例性的,若该目标分片存储空间的数量为一个,则直接从该目标分片存储空间中读取该待读取流式数据。
示例性的,若该目标分片存储空间的数量为多个,则分别从每个目标分片存储空间中读取流式数据,得到该待读取流式数据。
进一步地,存储设备接收覆盖写请求,该覆盖写请求携带块索引、第二分片索引和第二流式数据,该第二流式数据为修改后的流式数据,根据该块索引和该第二分片索引,确定对应的第二分片存储空间,将该第二分片存储空间中存储的流式数据更新为该第二流式数据。
具体实现可以参见图2所示实施例中的相关记载,这里不再重复介绍。
在本申请实施例中,由于数据块包括的多个分片存储空间中每个分片存储空间的分片大小大于对应的分片存储空间所存储的流式数据的数据长度,所以,若需要对分片存储空间中的流式数据进行修改,即使修改的流式数据的数据长度有增加,但由于分片存储空间存在冗余空间,所以仍可以利用修改后的流式数据在分片存储空间中进行覆盖写,从而可以避免需要移动其他数据,提高了存储性能。
需要说明的是,数据读取方式可以包括单个分片存储空间的数据读取和多个分片存储空间数据的批量读取,该两种数据读取方式供应用层使用,可以分别应用于不同的场景中,接下来分别通过如下两个实施例分别进行说明。
请参考图7,该图7是根据一示例性实施例示出的一种数据读取的方法流程图,该方法可以由上述存储设备来执行,该方法可以包括:
1、确定待读取流式数据的块索引和分片索引。
其中,该分片索引可以用于唯一指示一个分片存储空间,譬如,该分片索引可以为分片ID。
作为一种示例,存储设备的应用层接收数据读取请求,该数据读取请求中携带待读取流式数据对应的URL信息,该存储设备的应用层可以根据该URL信息,确定对应的块索引和分片索引,并传递给文件系统,如此,文件系统可以确定待读取流式数据的块索引和分片索引。
2、若根据该块索引和该分片索引确定缓存中不存在该待读取流式数据,则根据该块索引,确定该待读取流式数据所在的数据块。
也即是,该存储设备首先根据该块索引和该分片索引,查询缓存中是否存在该待读取流式数据,如果不存在,根据该块索引确定该待读取流式数据在哪个数据块中。
3、根据该分片索引,从该数据块中确定该分片索引对应的目标分片存储空间。
在实施中,根据该分片索引,确定待读取流式数据的存储偏移位置,从而确定目标分片存储空间的起始位置。
4、从该目标分片存储空间中读取该待读取流式数据。
在实施中,从所确定的存储偏移位置开始读取流式数据,具体的,从所确定的存储偏移位置开始,在分片大小的目标分片存储空间中读取该待读取流式数据。
5、将该目标分片存储空间之后的相邻的参考数量个分片存储空间内的数据存储至该缓存中。
作为一种示例,该参考数量可以根据实际需求进行设置,示例性的,该参考数量可以根据数据读取最大长度和单个分片存储空间的分片大小来确定,其中,该数据读取最大长度是指一次性能够读取的最大数据,该单个分片存储空间是指该块索引对应的数据块中包括的单个分片存储空间。示例性的,可以将该数据读取最大长度与单个分片存储空间的分片大小相除,得到参考数量,比如该数据读取最大长度为S,该单个分片存储空间的分片大小为L,则该参考数量N=S/L。
通常情况下,由于流式数据具有时间顺序属性,所以,在读取待读取流式数据之后,用户很有可能会继续读取之后的相邻时间点对应的流式数据。为了提高数据读取效率,在读取该目标分片存储空间中的待读取流式数据之后,还可以预读这个目标分片存储空间之后的多个分片存储空间的流式数据,并将这些流式数据放到缓存中,以便于在下次可以直接从缓存中读取这些流式数据,并且可以保证读取的流式数据是完整的分片存储空间数据。
请参考图8,该图8是根据一示例性实施例示出的一种数据读取的方法流程图,该方法可以由上述存储设备来执行,该方法可以包括:
1、确定待读取流式数据的块索引和流式属性值范围。
示例性的,该流式属性值范围可以为时间范围。
在实施中,该块索引和流式属性值范围可以是由应用层指定。
2、根据该块索引,确定该待读取流式数据所在的数据块。
3、根据该流式属性值范围和该数据块的分片索引区中存储的时间信息,确定该流式属性值范围内的流式数据对应的目标分片索引。
其中,每个分片存储空间的分片索引区中可以存储有该分片存储空间中所存储的流式数据对应的时间信息。
示例性的,假设该流式属性值范围为时间范围,该时间范围为2:00-3:00,其中,该数据块中的数据的时间范围为1:00-4:00,根据该数据块的分片索引区中存储的时间信息可以确定分片5中的流式数据对应的时间信息为2:00-2:30,分片6中的流式数据对应的时间信息为2:30-3:00,则可以确定该时间范围内的流式数据对应的目标分片索引包括分片5和分片6。
作为一种示例,该存储设备可以在索引区中根据二分法查找满足流式属性范围的分片存储空间的起始位置和分片个数,从而确定该目标分片索引。
4、根据该目标分片索引,从该数据块中确定目标分片存储空间。
作为一种示例,可以根据所确定目标分片索引,确定存储偏移位置,之后,根据该存储偏移位置确定目标分片存储空间,譬如,该目标分片索引包括分片5和分片6,可以确定一个分片存储空间的分片大小,之后,将所确定的分片存储空间大小乘以4,得到存储偏移位置,从而确定该分片5的起始位置,进一步地,根据该分片5的起始位置和分片大小,确定分片6的起始位置。
5、从该目标分片存储空间中读取该待读取流式数据。
示例性的,当该目标分片存储空间包括分片5和分片6时,分别从该分片5和分片6对应的分片存储空间中读取流式数据,得到该待读取流式数据。
请参考图9,该图9是根据一示例性实施例示出的一种数据管理装置的结构示意图,该装置可以包括:
获取模块910,用于获取待写入的第一流式数据;
第一确定模块920,用于若根据所述第一流式数据的数据长度确定所述存储设备中不存在能够用于存储所述第一流式数据的未满块,则从所述存储设备包括的多个数据块中确定空闲块;
分片模块930,用于根据所述数据长度对所述空闲块进行分片,得到的每个分片存储空间的分片大小大于所述数据长度;
存储模块940,用于将所述第一流式数据存储至第一分片存储空间中,以及在所述空闲块的分片索引区中存储所述第一分片存储空间的第一分片索引,其中,所述第一分片存储空间为所述空闲块中的一个分片存储空间。
可选地,所述分片模块930用于:
从多个参考长度中,选择大于所述数据长度且与所述数据长度之间的差值最小的目标参考长度;
基于所述目标参考长度,对所述空闲块进行分片,得到的每个分片存储空间的分片大小为所述目标参考长度。
可选地,所述获取模块910还用于:
接收覆盖写请求,所述覆盖写请求携带块索引、第二分片索引和第二流式数据,所述第二流式数据为修改后的流式数据;
根据所述块索引和所述第二分片索引,确定对应的第二分片存储空间;
将所述第二分片存储空间中存储的流式数据更新为所述第二流式数据。
可选地,所述获取模块910用于:
接收数据写入请求,所述数据写入请求中携带第三流式数据;
若所述第三流式数据的数据长度大于预设阈值,则对所述第三流式数据进行切分处理,得到多个切分流式数据;
将所述多个切分流式数据中的每个切分流式数据确定为所述第一流式数据。
可选地,所述存储模块940还用于:
若根据所述第一流式数据的数据长度确定所述存储设备中存在能够用于存储所述第一流式数据的未满块,则将所述第一流式数据存储至所述未满块的第三分片存储空间中,所述能够用于存储所述第一流式数据的未满块是指所包括的分片存储空间的分片大小大于所述数据长度,所述第三分片存储空间为未存储数据的分片存储空间;
在所述未满块的分片索引区中存储所述第三分片存储空间的第三分片索引。
可选地,所述获取模块910还用于:
接收格式化请求,所述格式化请求中至少携带启动块大小,数据块大小和存储介质容量;
根据所述启动块大小、所述数据块大小和所述存储介质容量,确定数据块个数;
基于所述数据块个数对所述存储设备的存储空间进行逻辑划分,得到所述多个数据块;
对所述多个数据块进行初始化。
在本申请实施例中,针对待写入的第一流式数据,确定存储设备中是否存在未满块的分片存储空间的分片大小大于该第一流式数据的数据长度,如果不存在,说明当前不存在能够用于存储该第一流式数据的未满块。在该种情况下,该存储设备从所包括的多个数据块中确定空闲块,然后将该空闲块切分成分片大小大于该数据长度的多个分片存储空间。将该第一流式数据存储至该多个分片存储空间中的一个分片存储空间中,并在空闲块块的分片索引区中存储对应的第一分片索引。由于该第一分片存储空间的分片大小大于该第一流式数据的数据长度,所以若需要对该第一流式数据进行修改,即使修改的流式数据的数据长度有增加,但由于第一分片存储空间存在冗余空间,所以仍可以利用修改后的流式数据在该第一分片存储空间中进行覆盖写,从而可以避免需要移动其他数据,进而提高了存储性能。
请参考图10,该图10是根据另一示例性实施例提供的一种数据管理装置的结构示意图,该装置可以包括:
第二确定模块1000,用于确定待读取流式数据的块索引和参考索引;
第三确定模块1010,用于根据所述块索引,确定所述待读取流式数据所在的数据块,所述数据块中包括多个分片存储空间,每个分片存储空间的分片大小大于对应的分片存储空间所存储的流式数据的数据长度;
第四确定模块1020,用于根据所述参考索引,从所述数据块中确定对应的目标分片存储空间;
读取模块1030,用于从所述目标分片存储空间中读取所述待读取流式数据。
可选地,所述第三确定模块1010用于:
若根据所述块索引和所述分片索引确定缓存中不存在所述待读取流式数据,则根据所述块索引,确定所述待读取流式数据所在的数据块;
所述读取模块1030还用于:将所述目标分片存储空间之后的相邻的参考数量个分片存储空间内的数据存储至所述缓存中。
可选地,所述第四确定模块1020用于:
根据所述流式属性值范围和所述数据块的分片索引区中存储的流式属性信息,确定所述流式属性值范围内的流式数据对应的目标分片索引;
基于所述目标分片索引,从所述数据块中确定所述目标分片存储空间。
在本申请实施例中,由于数据块包括的多个分片存储空间中每个分片存储空间的分片大小大于对应的分片存储空间所存储的流式数据的数据长度,所以,若需要对分片存储空间中的流式数据进行修改,即使修改的流式数据的数据长度有增加,但由于分片存储空间存在冗余空间,所以仍可以利用修改后的流式数据在分片存储空间中进行覆盖写,从而可以避免需要移动其他数据,提高了存储性能。
需要说明的是:上述实施例提供的数据管理的装置在进行数据管理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据管理的装置与数据管理的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图11是本申请实施例提供的一种存储设备1100的结构示意图,该存储设备1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)1101和一个或一个以上的存储器1102,其中,所述存储器1102中存储有至少一条指令,所述至少一条指令由所述处理器1101加载并执行以实现上述各个方法实施例提供的数据管理方法。
当然,该存储设备1100还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该存储设备1100还可以包括其他用于实现设备功能的部件,在此不做赘述。
本申请实施例还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行上述各个实施例提供的数据管理方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各个实施例提供的数据管理方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (13)
1.一种数据管理方法,其特征在于,应用于存储设备中,所述方法包括:
获取待写入的第一流式数据;
若根据所述第一流式数据的数据长度确定所述存储设备中不存在能够用于存储所述第一流式数据的未满块,则从所述存储设备包括的多个数据块中确定空闲块;
根据所述数据长度对所述空闲块进行分片,得到的每个分片存储空间的分片大小大于所述数据长度;
将所述第一流式数据存储至第一分片存储空间中,以及在所述空闲块的分片索引区中存储所述第一分片存储空间的第一分片索引,其中,所述第一分片存储空间为所述空闲块中的一个分片存储空间。
2.如权利要求1所述的方法,其特征在于,所述根据所述数据长度对所述空闲块进行分片,包括:
从多个参考长度中,选择大于所述数据长度且与所述数据长度之间的差值最小的目标参考长度;
基于所述目标参考长度,对所述空闲块进行分片,得到的每个分片存储空间的分片大小为所述目标参考长度。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
接收覆盖写请求,所述覆盖写请求携带块索引、第二分片索引和第二流式数据,所述第二流式数据为修改后的流式数据;
根据所述块索引和所述第二分片索引,确定对应的第二分片存储空间;
将所述第二分片存储空间中存储的流式数据更新为所述第二流式数据。
4.如权利要求1所述的方法,其特征在于,所述获取待写入的第一流式数据,包括:
接收数据写入请求,所述数据写入请求中携带第三流式数据;
若所述第三流式数据的数据长度大于预设阈值,则对所述第三流式数据进行切分处理,得到多个切分流式数据;
将所述多个切分流式数据中的每个切分流式数据确定为所述第一流式数据。
5.如权利要求1所述的方法,其特征在于,所述获取待写入的第一流式数据之后,还包括:
若根据所述第一流式数据的数据长度确定所述存储设备中存在能够用于存储所述第一流式数据的未满块,则将所述第一流式数据存储至所述未满块的第三分片存储空间中,所述能够用于存储所述第一流式数据的未满块是指所包括的分片存储空间的分片大小大于所述数据长度,所述第三分片存储空间为未存储数据的分片存储空间;
在所述未满块的分片索引区中存储所述第三分片存储空间的第三分片索引。
6.如权利要求1所述所述的方法,其特征在于,所述获取待写入的第一流式数据之前,还包括:
接收格式化请求,所述格式化请求中至少携带启动块大小,数据块大小和存储介质容量;
根据所述启动块大小、所述数据块大小和所述存储介质容量,确定数据块个数;
基于所述数据块个数对所述存储设备的存储空间进行逻辑划分,得到所述多个数据块;
对所述多个数据块进行初始化。
7.一种数据管理方法,其特征在于,应用于存储设备中,所述方法包括:
确定待读取流式数据的块索引和参考索引;
根据所述块索引,确定所述待读取流式数据所在的数据块,所述数据块中包括多个分片存储空间,每个分片存储空间的分片大小大于对应的分片存储空间所存储的流式数据的数据长度;
根据所述参考索引,从所述数据块中确定对应的目标分片存储空间;
从所述目标分片存储空间中读取所述待读取流式数据。
8.如权利要求7所述的方法,其特征在于,所述参考索引包括分片索引,所述根据所述块索引,确定待读取流式数据所在的数据块,包括:
若根据所述块索引和所述分片索引确定缓存中不存在所述待读取流式数据,则根据所述块索引,确定所述待读取流式数据所在的数据块;
所述从所述目标分片存储空间中读取所述待读取流式数据之后,还包括:
将所述目标分片存储空间之后的相邻的参考数量个分片存储空间内的数据存储至所述缓存中。
9.如权利要求7所述的方法,其特征在于,所述参考索引包括流式属性值范围,所述根据所述参考索引,从所述数据块中确定对应的目标分片存储空间,包括:
根据所述流式属性值范围和所述数据块的分片索引区中存储的流式属性信息,确定所述流式属性值范围内的流式数据对应的目标分片索引;
基于所述目标分片索引,从所述数据块中确定所述目标分片存储空间。
10.一种数据管理装置,其特征在于,配置于存储设备中,所述装置包括:
获取模块,用于获取待写入的第一流式数据;
第一确定模块,用于若根据所述第一流式数据的数据长度确定所述存储设备中不存在能够用于存储所述第一流式数据的未满块,则从所述存储设备包括的多个数据块中确定空闲块;
分片模块,用于根据所述数据长度对所述空闲块进行分片,得到的每个分片存储空间的分片大小大于所述数据长度;
存储模块,用于将所述第一流式数据存储至第一分片存储空间中,以及在所述空闲块的分片索引区中存储所述第一分片存储空间的第一分片索引,其中,所述第一分片存储空间为所述空闲块中的一个分片存储空间。
11.一种数据管理装置,其特征在于,配置于存储设备中,所述装置包括:
第二确定模块,用于确定待读取流式数据的块索引和参考索引;
第三确定模块,用于根据所述块索引,确定所述待读取流式数据所在的数据块,所述数据块中包括多个分片存储空间,每个分片存储空间的分片大小大于对应的分片存储空间所存储的流式数据的数据长度;
第四确定模块,用于根据所述参考索引,从所述数据块中确定对应的目标分片存储空间;
读取模块,用于从所述目标分片存储空间中读取所述待读取流式数据。
12.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为实现权利要求1-6中任一项所述的方法,或者,实现权利要求7-9中任一项所述的方法。
13.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现权利要求1-6中任一项所述的方法,或者,实现权利要求7-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010653048.8A CN111813813B (zh) | 2020-07-08 | 2020-07-08 | 一种数据管理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010653048.8A CN111813813B (zh) | 2020-07-08 | 2020-07-08 | 一种数据管理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111813813A true CN111813813A (zh) | 2020-10-23 |
CN111813813B CN111813813B (zh) | 2024-02-20 |
Family
ID=72842627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010653048.8A Active CN111813813B (zh) | 2020-07-08 | 2020-07-08 | 一种数据管理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111813813B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112783835A (zh) * | 2021-03-11 | 2021-05-11 | 百果园技术(新加坡)有限公司 | 索引管理方法、装置及电子设备 |
CN112866409A (zh) * | 2021-02-08 | 2021-05-28 | 深圳市杉岩数据技术有限公司 | 基于对象存储分片上传的对象传送及收集方法、终端设备 |
CN113076458A (zh) * | 2021-04-13 | 2021-07-06 | 鹏城实验室 | 一种网内缓存控制方法、系统、存储介质及终端设备 |
CN113791736A (zh) * | 2021-09-15 | 2021-12-14 | 京东科技信息技术有限公司 | 数据迁移方法、网卡设备、服务器及数据迁移系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06214722A (ja) * | 1993-01-13 | 1994-08-05 | Hitachi Ltd | ディスクアレイ装置のデータ格納方式 |
WO2011020360A1 (zh) * | 2009-08-19 | 2011-02-24 | 北京书生国际信息技术有限公司 | 一种文档的存储方法 |
CN107015920A (zh) * | 2015-12-30 | 2017-08-04 | 三星电子株式会社 | 存储设备和存储设备的操作方法 |
CN110737389A (zh) * | 2018-07-19 | 2020-01-31 | 杭州海康威视系统技术有限公司 | 存储数据的方法和装置 |
-
2020
- 2020-07-08 CN CN202010653048.8A patent/CN111813813B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06214722A (ja) * | 1993-01-13 | 1994-08-05 | Hitachi Ltd | ディスクアレイ装置のデータ格納方式 |
WO2011020360A1 (zh) * | 2009-08-19 | 2011-02-24 | 北京书生国际信息技术有限公司 | 一种文档的存储方法 |
CN107015920A (zh) * | 2015-12-30 | 2017-08-04 | 三星电子株式会社 | 存储设备和存储设备的操作方法 |
CN110737389A (zh) * | 2018-07-19 | 2020-01-31 | 杭州海康威视系统技术有限公司 | 存储数据的方法和装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112866409A (zh) * | 2021-02-08 | 2021-05-28 | 深圳市杉岩数据技术有限公司 | 基于对象存储分片上传的对象传送及收集方法、终端设备 |
CN112783835A (zh) * | 2021-03-11 | 2021-05-11 | 百果园技术(新加坡)有限公司 | 索引管理方法、装置及电子设备 |
CN112783835B (zh) * | 2021-03-11 | 2024-06-04 | 百果园技术(新加坡)有限公司 | 索引管理方法、装置及电子设备 |
CN113076458A (zh) * | 2021-04-13 | 2021-07-06 | 鹏城实验室 | 一种网内缓存控制方法、系统、存储介质及终端设备 |
CN113076458B (zh) * | 2021-04-13 | 2024-02-06 | 鹏城实验室 | 一种网内缓存控制方法、系统、存储介质及终端设备 |
CN113791736A (zh) * | 2021-09-15 | 2021-12-14 | 京东科技信息技术有限公司 | 数据迁移方法、网卡设备、服务器及数据迁移系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111813813B (zh) | 2024-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111813813B (zh) | 一种数据管理方法、装置、设备及存储介质 | |
US9251152B1 (en) | Efficient method for relocating shared memory | |
US11853549B2 (en) | Index storage in shingled magnetic recording (SMR) storage system with non-shingled region | |
US10374792B1 (en) | Layout-independent cryptographic stamp of a distributed dataset | |
US8423733B1 (en) | Single-copy implicit sharing among clones | |
US10678446B2 (en) | Bitmap processing for log-structured data store | |
US10120588B2 (en) | Sliding-window multi-class striping | |
JP5886447B2 (ja) | ロケーション非依存のファイル | |
US20200117361A1 (en) | Data stability in data storage system | |
CN115599747B (zh) | 一种分布式存储系统的元数据同步方法、系统及设备 | |
WO2017050064A1 (zh) | 共享内存数据库的内存管理方法及装置 | |
EP4087212A1 (en) | Method and apparatus for cloning file system | |
CN114546295B (zh) | 一种基于zns固态硬盘的智能写分配方法和装置 | |
CN111158602A (zh) | 数据分层存储方法、读取方法、存储主机及存储系统 | |
CN108132759B (zh) | 一种文件系统中管理数据的方法和装置 | |
CN112148736A (zh) | 缓存数据的方法、设备及存储介质 | |
CN110795386B (zh) | 一种数据写入方法和服务端 | |
CN107430546B (zh) | 一种文件更新方法及存储设备 | |
CN112783835A (zh) | 索引管理方法、装置及电子设备 | |
CN111290700A (zh) | 分布式数据读写方法和系统 | |
CN115129789A (zh) | 一种分布式对象存储系统的桶索引存储方法、装置及介质 | |
CN108959517B (zh) | 文件管理方法、装置及电子设备 | |
CN112181291B (zh) | 数据回写方法、装置、电子设备及机器可读存储介质 | |
CN113326001B (zh) | 数据处理方法、装置、设备、系统、介质及程序 | |
CN111414127B (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 |