CN117742599A - 数据存储方法及装置、计算机设备和计算机可读存储介质 - Google Patents
数据存储方法及装置、计算机设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN117742599A CN117742599A CN202311757431.8A CN202311757431A CN117742599A CN 117742599 A CN117742599 A CN 117742599A CN 202311757431 A CN202311757431 A CN 202311757431A CN 117742599 A CN117742599 A CN 117742599A
- Authority
- CN
- China
- Prior art keywords
- storage
- data
- memory
- target
- disk
- 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
- 238000013500 data storage Methods 0.000 title claims abstract description 50
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000005192 partition Methods 0.000 claims abstract description 11
- 230000001960 triggered effect Effects 0.000 claims description 13
- 230000006835 compression Effects 0.000 claims description 9
- 238000007906 compression Methods 0.000 claims description 9
- 230000009977 dual effect Effects 0.000 abstract description 7
- 230000009467 reduction Effects 0.000 abstract description 4
- 238000013461 design Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000003321 amplification Effects 0.000 description 4
- 230000007547 defect Effects 0.000 description 4
- 238000003199 nucleic acid amplification method Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006698 induction Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提出了一种数据存储方法及装置、计算机设备和计算机可读存储介质,该方法包括:响应于针对目标数据的存储指令,将所述目标数据缓存至当前***的内存中;确定所述内存的存储属性信息是否满足预设的磁盘存储条件;若所述内存的存储属性信息满足所述磁盘存储条件,将所述目标数据由所述内存写入所述目标磁盘的数据块,并将所述目标数据的数据存储地址和哈希分区信息同步至所述内存的数据访问索引块。本申请的技术方案,满足了数据存储对于低存储成本与减少存储空间占用的双重需求。
Description
【技术领域】
本申请涉及分布式部署技术领域,尤其涉及一种数据存储方法及装置、计算机设备和计算机可读存储介质。
【背景技术】
随着科学技术的快速发展,数据存储作为数据处理相关环节中重要的一环,对计算机***的发展具有不可磨灭的重要作用。
对此,相关技术中给出了多种将数据写入磁盘进行数据存储的方式。例如,采用使用树结构存储数据,其树状结构包括B+树、LSM树等。
然而,B+树的存储方式写入实时性较低,且需要在数据写入过程中对数据进行排序,其消耗的时间成本大,造成存储效率低下。LSM树存储方式虽无需对数据进行排序,存储过程相对简单,却具有造成IO放大的缺陷,IO大会导致磁盘被过多占用,浪费存储空间。也就是说,相关技术中无法兼顾快捷存储与减少存储空间占用的双重需求。
因此,如何满足将数据写入磁盘进行数据存储时的方便快捷与低空间占用的双重需求,成为目前亟待解决的技术问题。
【发明内容】
本申请实施例提供了一种数据存储方法及装置、计算机设备和计算机可读存储介质,旨在解决相关技术中无法兼顾快捷存储与减少存储空间占用的双重需求的技术问题。
第一方面,本申请实施例提供了一种数据存储方法,包括:
响应于针对目标数据的存储指令,将所述目标数据缓存至当前***的内存中;
确定所述内存的存储属性信息是否满足预设的磁盘存储条件,其中,所述存储属性信息用于反映将所述内存的存储能力,所述磁盘存储条件用于限定触发将所述目标数据由所述内存写入目标磁盘的操作时所述内存的存储能力范围;
若所述内存的存储属性信息满足所述磁盘存储条件,将所述目标数据由所述内存写入所述目标磁盘的数据块,并将所述目标数据的数据存储地址和哈希分区信息同步至所述内存的数据访问索引块。
在本申请的一个实施例中,可选地,所述确定所述内存的存储属性信息是否满足预设的磁盘存储条件,包括:
确定所述内存的已占用存储空间是否达到最大存储容量;或者
确定所述内存的已占用存储空间是否达到所述目标磁盘的数据块的存储上限;或者
确定所述内存的已占用存储空间是否达到所述目标磁盘的数据块中单个压缩列的存储上限。
在本申请的一个实施例中,可选地,所述将所述目标数据由所述内存写入所述目标磁盘的数据块,包括:
若所述目标磁盘的已有数据块的可用存储空间大于或等于所述目标数据的所需存储空间,将所述目标数据存储至所述已有数据块;
若所述目标磁盘的已有数据块的可用存储空间小于所述目标数据的所需存储空间,在所述目标磁盘中新建目标数据块,用以存储所述目标数据。
在本申请的一个实施例中,可选地,所述在所述目标磁盘中新建目标数据块,包括:
在所述目标磁盘的空闲存储区域集合中,获取可用存储空间大于或等于所述目标数据的所需存储空间的空闲存储区域;
在所述空闲存储区域新建所述目标数据块,其中,所述目标数据块的大小与所述空闲存储区域的大小一致。
在本申请的一个实施例中,可选地,还包括:
轮询所述目标磁盘中每个已有数据块的已占用存储空间;
对于任一已有数据块,若所述已有数据块的已占用存储空间的大小小于预定阈值,将所述已有数据块的已占用存储空间内的数据释放回所述内存。
在本申请的一个实施例中,可选地,所述预定阈值大于或等于所述内存的可用存储空间的大小。
在本申请的一个实施例中,可选地,还包括:
在将所述已有数据块的已占用存储空间内的数据释放回所述内存后,将所述已有数据块对应的释放存储区域加入所述空闲存储区域集合。
第二方面,本申请实施例提供了一种数据存储装置,包括:
数据缓存单元,用于响应于针对目标数据的存储指令,将所述目标数据缓存至当前***的内存中;
磁盘存储条件判断单元,用于确定所述内存的存储属性信息是否满足预设的磁盘存储条件,其中,所述存储属性信息用于反映将所述内存的存储能力,所述磁盘存储条件用于限定触发将所述目标数据由所述内存写入目标磁盘的操作时所述内存的存储能力范围;
数据块存储单元,用于若所述内存的存储属性信息满足所述磁盘存储条件,将所述目标数据由所述内存写入所述目标磁盘的数据块,并将所在本申请的一个实施例中,可选地,所述磁盘存储条件判断单元用于:
确定所述内存的已占用存储空间是否达到最大存储容量;或者确定所述内存的已占用存储空间是否达到所述目标磁盘的数据块的存储上限;或者确定所述内存的已占用存储空间是否达到所述目标磁盘的数据块中单个压缩列的存储上限。
在本申请的一个实施例中,可选地,所述数据块存储单元包括:
第一执行单元,用于若所述目标磁盘的已有数据块的可用存储空间大于或等于所述目标数据的所需存储空间,将所述目标数据存储至所述已有数据块;
第二执行单元,用于若所述目标磁盘的已有数据块的可用存储空间小于所述目标数据的所需存储空间,在所述目标磁盘中新建目标数据块,用以存储所述目标数据。
在本申请的一个实施例中,可选地,所述第二执行单元用于:
在所述目标磁盘的空闲存储区域集合中,获取可用存储空间大于或等于所述目标数据的所需存储空间的空闲存储区域;在所述空闲存储区域新建所述目标数据块,其中,所述目标数据块的大小与所述空闲存储区域的大小一致。
在本申请的一个实施例中,可选地,所述数据存储装置还包括:
数据块轮询单元,用于轮询所述目标磁盘中每个已有数据块的已占用存储空间;
数据释放单元,用于对于任一已有数据块,若所述已有数据块的已占用存储空间的大小小于预定阈值,将所述已有数据块的已占用存储空间内的数据释放回所述内存。
在本申请的一个实施例中,可选地,所述预定阈值大于或等于所述内存的可用存储空间的大小。
在本申请的一个实施例中,可选地,所述数据存储装置还包括:
存储区域归纳单元,用于在将所述已有数据块的已占用存储空间内的数据释放回所述内存后,将所述已有数据块对应的释放存储区域加入所述空闲存储区域集合。
第三方面,本申请实施例提供了一种计算机设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行上述第一方面所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述第一方面所述的方法。
以上技术方案,针对相关技术中无法兼顾快捷存储与减少存储空间占用的双重需求的技术问题,可在内存满足预设的磁盘存储条件时自动触发将内存中数据写入磁盘的存储操作,相对于相关技术中使用树结构存储数据的存储方式,避免了数据排序等复杂步骤,也避免了因存储过程造成IO放大而浪费磁盘存储空间的缺陷,能够快捷高效地完成对目标数据的存储,提升了数据存储的实时性,满足了数据存储对于低存储成本与减少存储空间占用的双重需求。
【附图说明】
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出了根据本申请的一个实施例的数据存储方法的流程图;
图2示出了根据本申请的另一个实施例的数据存储方法的流程图;
图3示出了根据本申请的一个实施例的CBIT-DB存储引擎架构图;
图4示出了根据本申请的一个实施例的计算机设备的框图;
图5示出了根据本申请的一个实施例的计算机设备的框图。
【具体实施方式】
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了根据本申请的一个实施例的数据存储方法的流程图。
如图1所示,根据本申请的一个实施例的数据存储方法包括:
步骤102,响应于针对目标数据的存储指令,将所述目标数据缓存至当前***的内存中。
目标数据指的是具有被存储至磁盘的需求的数据,先将目标数据缓存至当前***的内存中,而非直接存储至磁盘,可整体上减少对磁盘进行数据存储的次数,简化存储计算计算量,提升存储便利性。
步骤104,确定所述内存的存储属性信息是否满足预设的磁盘存储条件。
其中,所述存储属性信息用于反映将所述内存的存储能力,所述磁盘存储条件用于限定触发将所述目标数据由所述内存写入目标磁盘的操作时所述内存的存储能力范围。
若所述内存的存储属性信息满足所述磁盘存储条件,说明所述内存的存储能力处于触发将所述目标数据由所述内存写入目标磁盘的操作时所述内存的存储能力范围内,即可进入步骤106,触发将所述目标数据由所述内存写入所述目标磁盘的数据块的操作。
反之,若所述内存的存储属性信息不满足所述磁盘存储条件,说明所述内存的存储能力未处于触发将所述目标数据由所述内存写入目标磁盘的操作时所述内存的存储能力范围内,此时,确定还未到将内存的数据写入目标磁盘的时机。
其中,内存剩余的可用存储空间越大,内存的存储能力越高,越偏离触发将所述目标数据由所述内存写入目标磁盘的操作时所述内存的存储能力范围。
具体地,内存的存储属性信息包括所述内存的已占用存储空间、内存相关的目标磁盘的数据块的存储上限、内存相关的目标磁盘的数据块中压缩列的存储上限等。
在一种可能的设计中,步骤102包括:确定所述内存的已占用存储空间是否达到最大存储容量,其中,若所述内存的已占用存储空间达到最大存储容量,说明内存已无法再继续存储数据,此时,需要将内存的全部数据、随机部分数据或指定的部分数据写入目标磁盘,即满足了磁盘存储条件。
在另一种可能的设计中,步骤102包括:确定所述内存的已占用存储空间是否达到所述目标磁盘的数据块的存储上限,其中,若所述内存的已占用存储空间达到所述目标磁盘的数据块的存储上限,说明内存中的数据至少可填满目标磁盘中的一个数据块,此时,即可认为满足磁盘存储条件,将内存的数据写入该数据块。
另外,目标磁盘包括4K对齐分布的多个数据块,写入该数据块后仍溢出的数据可继续写入其他数据块中。
在再一种可能的设计中,步骤102包括:确定所述内存的已占用存储空间是否达到所述目标磁盘的数据块中单个压缩列的存储上限,若所述内存的已占用存储空间达到所述目标磁盘的数据块中单个压缩列的存储上限,说明内存中的数据至少可填满目标磁盘中单个数据块的一个压缩列,此时,即可认为满足磁盘存储条件,将内存的数据写入该数据块的该压缩列。
另外,目标磁盘包括4K对齐分布的多个数据块,每个数据块包括多个压缩列,写入该数据块的一压缩列后仍溢出的数据可继续写入该数据块的其他压缩列中。
步骤106,若所述内存的存储属性信息满足所述磁盘存储条件,将所述目标数据由所述内存写入所述目标磁盘的数据块,并将所述目标数据的数据存储地址和哈希分区信息同步至所述内存的数据访问索引块。
最终,若所述内存的存储属性信息满足所述磁盘存储条件,将目标数据由内存中转移至数据块中,完成对该目标数据的存储操作。进一步地,将所述目标数据的数据存储地址和哈希分区信息同步至所述内存的数据访问索引块,以供在接收到针对目标数据的访问请求时,基于数据存储地址确定目标数据所在的地址,进一步再基于哈希分区信息定位目标数据所在的数据块。以上技术方案,可在内存满足预设的磁盘存储条件时自动触发将内存中数据写入磁盘的存储操作,相对于相关技术中使用树结构存储数据的存储方式,避免了数据排序等复杂步骤,也避免了因存储过程造成IO放大而浪费磁盘存储空间的缺陷,能够快捷高效地完成对目标数据的存储,提升了数据存储的实时性,满足了数据存储对于低存储成本与减少存储空间占用的双重需求。
图2示出了根据本申请的另一个实施例的数据存储方法的流程图。
如图2所示,根据本申请的另一个实施例的数据存储方法包括:
步骤202,响应于针对目标数据的存储指令,将所述目标数据缓存至当前***的内存中。
步骤204,确定所述内存的存储属性信息是否满足预设的磁盘存储条件。
其中,所述存储属性信息用于反映将所述内存的存储能力,所述磁盘存储条件用于限定触发将所述目标数据由所述内存写入目标磁盘的操作时所述内存的存储能力范围。
步骤206,在所述内存的存储属性信息满足所述磁盘存储条件的情况下,确定所述目标磁盘的已有数据块的可用存储空间是否大于或等于所述目标数据的所需存储空间,其中,若所述目标磁盘的已有数据块的可用存储空间大于或等于所述目标数据的所需存储空间,进入步骤208,反之,进入步骤210。
若所述目标磁盘的已有数据块的可用存储空间大于或等于所述目标数据的所需存储空间,说明已有数据块仍具有足够的空间存储目标数据,此时,可将目标数据写入该已有数据块。
反之,若所述目标磁盘的已有数据块的可用存储空间小于所述目标数据的所需存储空间,则说明已有数据块不具有足够的空间存储目标数据了,此时需要另寻其他数据块作为目标数据的存储位置。
步骤208,将所述目标数据存储至所述已有数据块。
步骤210,在所述目标磁盘中新建目标数据块,用以存储所述目标数据。
在一种可能的设计中,在已有数据块不具有足够的空间存储目标数据时,可直接在目标磁盘中新建目标数据块,用以存储所述目标数据。
在另一种可能的设计中,在已有数据块不具有足够的空间存储目标数据时,还可以轮询所述目标磁盘中该已有数据块以外的其他数据块的可用存储空间大于或等于所述目标数据的所需存储空间。若至少一个其他数据块的可用存储空间大于或等于所述目标数据的所需存储空间,说明该至少一个其他数据块可作为目标数据的存储位置,否则,可直接在目标磁盘中新建目标数据块,用以存储所述目标数据。
其中,步骤208具体包括:在所述目标磁盘的空闲存储区域集合中,获取可用存储空间大于或等于所述目标数据的所需存储空间的空闲存储区域;在所述空闲存储区域新建所述目标数据块,其中,所述目标数据块的大小与所述空闲存储区域的大小一致。
也就是说,在目标磁盘中新建目标数据块时,需要先获得大于或等于目标数据块的大小的空闲存储区域。
进一步地,可周期性地轮询所述目标磁盘中每个已有数据块的已占用存储空间;对于任一已有数据块,若所述已有数据块的已占用存储空间的大小小于预定阈值,将所述已有数据块的已占用存储空间内的数据释放回所述内存。也就是说,一旦已有数据块的已占用存储空间不足,即存储利用率低下,即可将该已有数据块的数据释放回***的内存,相当于删除了该已有数据块,将该已有数据块占有的空间进行了清空。
其中,所述预定阈值大于或等于所述内存的可用存储空间的大小。也就是说,将已有数据块的数据释放回***内存的前提是,已有数据块的数据量小于内存的可用存储空间的大小,以保证释放的数据具有有效接收对象,避免数据释放后内存存储空间不足而导致释放的数据丢失或损坏。
最终,在将所述已有数据块的已占用存储空间内的数据释放回所述内存后,将所述已有数据块对应的释放存储区域加入所述空闲存储区域集合,以便在新建目标数据块时从空闲存储区域集合中查询可用的空闲存储区域,用以放置目标数据块。
以上技术方案,可在自动触发存储功能的同时,灵活设置磁盘中的数据块位置及数量,进一步增加了磁盘存储空间的可控性,适应实际存储需求。
图3示出了根据本申请的一个实施例的CBIT-DB存储引擎架构图。
如图3所示,在接收到来自API(数据访问接口)的数据访问请求时,先查询CDI索引模块。其中,CDI索引模块设置有多个索引块,并关联有内存数据,内存数据中缓存有还未存储至CDD数据模块中的数据和/或从CDD数据模块释放回内存中的数据。
每个索引中存储有数据访问用的检索表,检索表内存储有CDD数据模块中各数据块内数据的数据存储地址和hash分区信息,以供基于数据访问请求,在检索表内查询数据访问请求所请求访问的数据所对应的数据存储地址和hash分区信息,从而基于该数据存储地址和hash分区信息在CDD数据模块(即磁盘)中定位数据块及数据块下的压缩列,实现对已存储数据的定位。
在一种可能的设计中,使用Bitmap存储记录状态。
在一种可能的设计中,每个检索表以单独的线程用于数据读取或写入。
在一种可能的设计中,数据的存储与数据的访问异步进行或异步进行。
在一种可能的设计中,数据块中设置有头信息,头信息用于描述各压缩列的列长、大小等属性信息。
在一种可能的设计中,每一块数据库记录固定记录数据数量为262144条。
在一种可能的设计中,CDD数据模块中的数据块以4K方式对其,若数据块内的有效数据占比小于50%,则将数据块内的数据释放后放入内存数据中,实现数据块存储位置的释放,以便新增数据块时可以找到合适的数据空洞存放新的数据。
最终,CDD数据模块将数据访问请求所请求的数据在数据块中定位后返回至内存数据中,供迭代器访问。
本申请的一个实施例还提出了数据存储装置,该装置包括:
数据缓存单元,用于响应于针对目标数据的存储指令,将所述目标数据缓存至当前***的内存中;
磁盘存储条件判断单元,用于确定所述内存的存储属性信息是否满足预设的磁盘存储条件,其中,所述存储属性信息用于反映将所述内存的存储能力,所述磁盘存储条件用于限定触发将所述目标数据由所述内存写入目标磁盘的操作时所述内存的存储能力范围;
数据块存储单元,用于若所述内存的存储属性信息满足所述磁盘存储条件,将所述目标数据由所述内存写入所述目标磁盘的数据块,并将所
在本申请的一个实施例中,可选地,所述磁盘存储条件判断单元用于:
确定所述内存的已占用存储空间是否达到最大存储容量;或者确定所述内存的已占用存储空间是否达到所述目标磁盘的数据块的存储上限;或者确定所述内存的已占用存储空间是否达到所述目标磁盘的数据块中单个压缩列的存储上限。
在本申请的一个实施例中,可选地,所述数据块存储单元包括:
第一执行单元,用于若所述目标磁盘的已有数据块的可用存储空间大于或等于所述目标数据的所需存储空间,将所述目标数据存储至所述已有数据块;
第二执行单元,用于若所述目标磁盘的已有数据块的可用存储空间小于所述目标数据的所需存储空间,在所述目标磁盘中新建目标数据块,用以存储所述目标数据。
在本申请的一个实施例中,可选地,所述第二执行单元用于:
在所述目标磁盘的空闲存储区域集合中,获取可用存储空间大于或等于所述目标数据的所需存储空间的空闲存储区域;在所述空闲存储区域新建所述目标数据块,其中,所述目标数据块的大小与所述空闲存储区域的大小一致。
在本申请的一个实施例中,可选地,所述数据存储装置还包括:
数据块轮询单元,用于轮询所述目标磁盘中每个已有数据块的已占用存储空间;
数据释放单元,用于对于任一已有数据块,若所述已有数据块的已占用存储空间的大小小于预定阈值,将所述已有数据块的已占用存储空间内的数据释放回所述内存。
在本申请的一个实施例中,可选地,所述预定阈值大于或等于所述内存的可用存储空间的大小。
在本申请的一个实施例中,可选地,所述数据存储装置还包括:
存储区域归纳单元,用于在将所述已有数据块的已占用存储空间内的数据释放回所述内存后,将所述已有数据块对应的释放存储区域加入所述空闲存储区域集合。
该数据存储装置使用上述实施例中任一项所述的方案,因此,具有上述所有技术效果,在此不再赘述。
另外,在一个实施例中,本申请提供了一种计算机设备,该计算机设备可以是服务端,其内部结构图可以如图4所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性和/或易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的客户端通过网络连接通信。该计算机程序被处理器执行时可以实现上述任一实施例所述的数据存储方法。
在一个实施例中,本申请还提供了一种计算机设备,该计算机设备可以是客户端,其内部结构图可以如图5所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部服务器通过网络连接通信。该计算机程序被处理器执行时可以实现上述任一实施例所述的数据存储方法。
本申请实施例上述的任一计算机设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具、可穿戴设备和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、***总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
另外,本申请实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行以下步骤:
响应于针对目标数据的存储指令,将所述目标数据缓存至当前***的内存中;
确定所述内存的存储属性信息是否满足预设的磁盘存储条件,其中,所述存储属性信息用于反映将所述内存的存储能力,所述磁盘存储条件用于限定触发将所述目标数据由所述内存写入目标磁盘的操作时所述内存的存储能力范围;
若所述内存的存储属性信息满足所述磁盘存储条件,将所述目标数据由所述内存写入所述目标磁盘的数据块,并将所述目标数据的数据存储地址和哈希分区信息同步至所述内存的数据访问索引块。
需要说明的是,上述关于计算机可读存储介质或计算机设备所能实现的功能或步骤,可对应参阅前述方法实施例中的相关描述,为避免重复,这里不再一一描述。
以上结合附图详细说明了本申请的技术方案,通过本申请的技术方案,可在内存满足预设的磁盘存储条件时自动触发将内存中数据写入磁盘的存储操作,相对于相关技术中使用树结构存储数据的存储方式,避免了数据排序等复杂步骤,也避免了因存储过程造成IO放大而浪费磁盘存储空间的缺陷,能够快捷高效地完成对目标数据的存储,提升了数据存储的实时性,满足了数据存储对于低存储成本与减少存储空间占用的双重需求。
应当理解,尽管在本申请实施例中可能采用术语第一、第二等来描述执行单元,但这些执行单元不应限于这些术语。这些术语仅用来将执行单元彼此区分开。例如,在不脱离本申请实施例范围的情况下,第一执行单元也可以被称为第二执行单元,类似地,第二执行单元也可以被称为第一执行单元。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据存储方法,其特征在于,包括:
响应于针对目标数据的存储指令,将所述目标数据缓存至当前***的内存中;
确定所述内存的存储属性信息是否满足预设的磁盘存储条件,其中,所述存储属性信息用于反映将所述内存的存储能力,所述磁盘存储条件用于限定触发将所述目标数据由所述内存写入目标磁盘的操作时所述内存的存储能力范围;
若所述内存的存储属性信息满足所述磁盘存储条件,将所述目标数据由所述内存写入所述目标磁盘的数据块,并将所述目标数据的数据存储地址和哈希分区信息同步至所述内存的数据访问索引块。
2.根据权利要求1所述的数据存储方法,其特征在于,所述确定所述内存的存储属性信息是否满足预设的磁盘存储条件,包括:
确定所述内存的已占用存储空间是否达到最大存储容量;或者
确定所述内存的已占用存储空间是否达到所述目标磁盘的数据块的存储上限;或者
确定所述内存的已占用存储空间是否达到所述目标磁盘的数据块中单个压缩列的存储上限。
3.根据权利要求1所述的数据存储方法,其特征在于,所述将所述目标数据由所述内存写入所述目标磁盘的数据块,包括:
若所述目标磁盘的已有数据块的可用存储空间大于或等于所述目标数据的所需存储空间,将所述目标数据存储至所述已有数据块;
若所述目标磁盘的已有数据块的可用存储空间小于所述目标数据的所需存储空间,在所述目标磁盘中新建目标数据块,用以存储所述目标数据。
4.根据权利要求3所述的数据存储方法,其特征在于,所述在所述目标磁盘中新建目标数据块,包括:
在所述目标磁盘的空闲存储区域集合中,获取可用存储空间大于或等于所述目标数据的所需存储空间的空闲存储区域;
在所述空闲存储区域新建所述目标数据块,其中,所述目标数据块的大小与所述空闲存储区域的大小一致。
5.根据权利要求4所述的数据存储方法,其特征在于,还包括:
轮询所述目标磁盘中每个已有数据块的已占用存储空间;
对于任一已有数据块,若所述已有数据块的已占用存储空间的大小小于预定阈值,将所述已有数据块的已占用存储空间内的数据释放回所述内存。
6.根据权利要求5所述的数据存储方法,其特征在于,
所述预定阈值大于或等于所述内存的可用存储空间的大小。
7.根据权利要求5所述的数据存储方法,其特征在于,还包括:
在将所述已有数据块的已占用存储空间内的数据释放回所述内存后,将所述已有数据块对应的释放存储区域加入所述空闲存储区域集合。
8.一种数据存储装置,其特征在于,包括:
数据缓存单元,用于响应于针对目标数据的存储指令,将所述目标数据缓存至当前***的内存中;
磁盘存储条件判断单元,用于确定所述内存的存储属性信息是否满足预设的磁盘存储条件,其中,所述存储属性信息用于反映将所述内存的存储能力,所述磁盘存储条件用于限定触发将所述目标数据由所述内存写入目标磁盘的操作时所述内存的存储能力范围;
数据块存储单元,用于若所述内存的存储属性信息满足所述磁盘存储条件,将所述目标数据由所述内存写入所述目标磁盘的数据块,并将所述目标数据的数据存储地址和哈希分区信息同步至所述内存的索引块。
9.一种计算机设备,其特征在于,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行上述权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令用于执行如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311757431.8A CN117742599A (zh) | 2023-12-20 | 2023-12-20 | 数据存储方法及装置、计算机设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311757431.8A CN117742599A (zh) | 2023-12-20 | 2023-12-20 | 数据存储方法及装置、计算机设备和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117742599A true CN117742599A (zh) | 2024-03-22 |
Family
ID=90258819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311757431.8A Pending CN117742599A (zh) | 2023-12-20 | 2023-12-20 | 数据存储方法及装置、计算机设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117742599A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105354151A (zh) * | 2014-08-19 | 2016-02-24 | 阿里巴巴集团控股有限公司 | 一种缓存管理方法与设备 |
CN107665098A (zh) * | 2017-09-05 | 2018-02-06 | 联想(北京)有限公司 | 信息处理方法、存储设备及计算机存储介质 |
CN109800181A (zh) * | 2018-12-12 | 2019-05-24 | 深圳市景阳科技股份有限公司 | 一种基于磁盘的数据写入方法、数据写入装置及终端设备 |
CN111208941A (zh) * | 2019-12-24 | 2020-05-29 | 京信通信***(中国)有限公司 | 文件管理方法、装置、计算机设备和计算机可读存储介质 |
CN111625191A (zh) * | 2020-05-21 | 2020-09-04 | 苏州浪潮智能科技有限公司 | 一种数据读写方法、装置及电子设备和存储介质 |
CN116305290A (zh) * | 2023-05-16 | 2023-06-23 | 北京安天网络安全技术有限公司 | 一种***日志安全检测方法及装置、电子设备及存储介质 |
CN117111860A (zh) * | 2023-10-24 | 2023-11-24 | 苏州元脑智能科技有限公司 | 磁盘阵列降级时的io处理方法、装置及电子设备 |
-
2023
- 2023-12-20 CN CN202311757431.8A patent/CN117742599A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105354151A (zh) * | 2014-08-19 | 2016-02-24 | 阿里巴巴集团控股有限公司 | 一种缓存管理方法与设备 |
CN107665098A (zh) * | 2017-09-05 | 2018-02-06 | 联想(北京)有限公司 | 信息处理方法、存储设备及计算机存储介质 |
CN109800181A (zh) * | 2018-12-12 | 2019-05-24 | 深圳市景阳科技股份有限公司 | 一种基于磁盘的数据写入方法、数据写入装置及终端设备 |
CN111208941A (zh) * | 2019-12-24 | 2020-05-29 | 京信通信***(中国)有限公司 | 文件管理方法、装置、计算机设备和计算机可读存储介质 |
CN111625191A (zh) * | 2020-05-21 | 2020-09-04 | 苏州浪潮智能科技有限公司 | 一种数据读写方法、装置及电子设备和存储介质 |
CN116305290A (zh) * | 2023-05-16 | 2023-06-23 | 北京安天网络安全技术有限公司 | 一种***日志安全检测方法及装置、电子设备及存储介质 |
CN117111860A (zh) * | 2023-10-24 | 2023-11-24 | 苏州元脑智能科技有限公司 | 磁盘阵列降级时的io处理方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20050114601A1 (en) | Method, system, and apparatus for memory compression with flexible in-memory cache | |
CN113419824A (zh) | 数据处理方法、装置、***及计算机存储介质 | |
US11907164B2 (en) | File loading method and apparatus, electronic device, and storage medium | |
CN113806300B (zh) | 数据存储方法、***、装置、设备及存储介质 | |
CN112954244A (zh) | 监控录像的存储实现方法、装置、设备及存储介质 | |
CN107545050A (zh) | 数据查询方法及装置、电子设备 | |
CN110851474A (zh) | 数据查询方法、数据库中间件、数据查询设备及存储介质 | |
CN115470156A (zh) | 基于rdma的内存使用方法、***、电子设备和存储介质 | |
CN116089321A (zh) | 内存管理方法、装置、电子装置和存储介质 | |
CN108132759B (zh) | 一种文件***中管理数据的方法和装置 | |
CN117520278A (zh) | 一种分布式文件***多客户端高精度目录配额控制方法 | |
CN113064919A (zh) | 数据处理方法、数据存储***、计算机设备及存储介质 | |
CN117742599A (zh) | 数据存储方法及装置、计算机设备和计算机可读存储介质 | |
CN113297267A (zh) | 数据缓存和任务处理方法、装置、设备以及存储介质 | |
CN114116656B (zh) | 数据处理方法及相关装置 | |
US10803109B2 (en) | Method and device for reading and writing video data in NAS device | |
CN115495020A (zh) | 文件处理方法、装置、电子设备和可读存储介质 | |
CN112395245B (zh) | 处理器的访问装置、方法及计算机设备 | |
CN114297284A (zh) | 一种接口快速反应方法、装置、电子设备及存储介质 | |
CN114489770A (zh) | 灰度发布方法、装置、计算机设备和存储介质 | |
WO2020227878A1 (zh) | 一种调度存储器中数据的方法、数据调度设备及*** | |
CN113726838A (zh) | 文件传输方法、装置、设备及存储介质 | |
CN105915600A (zh) | 基于cdn网络***的数据写入方法及cdn网络*** | |
CN117255101B (zh) | 分布式存储***的数据处理方法、装置、设备及介质 | |
CN114461146B (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 |