数据存储方法、装置、计算机设备和存储介质与流程

文档序号:20766897发布日期:2020-05-15 19:04阅读:186来源:国知局
数据存储方法、装置、计算机设备和存储介质与流程

本申请涉及数据存储技术领域,特别是涉及一种数据存储方法、装置、计算机设备和存储介质。



背景技术:

随着科技的飞速发展,大数据技术已经渗透到我们日常生活的方方面面。一方面,数据资源共享给人们的生活带来了很多便利,节省了大量时间;另一方面,庞大的数据量也对数据存储能力提出了更多挑战。

相关技术中,通常采用内存和机械硬盘相结合来存储数据。但是,内存容量有限,存储数据量较小,并且出现意外断电或程序终止等异常情况容易造成数据的丢失。而机械硬盘虽然具有价格便宜、数据存储量大的优点,但是机械硬盘的存储速度较慢。所以,目前这种存储结构还远远不能满足用户的数据存储需求。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够满足存储需求的数据存储方法、装置、计算机设备和存储介质。

第一方面,本发明实施例提供了一种数据存储方法,应用于存储系统,存储系统包括固态硬盘和机械硬盘,该方法包括:

接收数据存储指令;数据存储指令用于指示存储第一数据;

若确定固态硬盘的已使用量小于预设阈值,则将第一数据存储到固态硬盘中;

若确定固态硬盘的已使用量不小于预设阈值且存在数据写冲突,则将固态硬盘中存储的第二数据迁移至机械硬盘中,并将第一数据存储到固态硬盘中;

若确定固态硬盘的已使用量不小于预设阈值且不存在数据写冲突,则将第一数据存储到机械硬盘中。

在其中一个实施例中,上述将第一数据存储到固态硬盘中,包括:

根据数据存储指令确定将第一数据存储到固态硬盘中的存储起始位置和存储结束位置;

若确定存储起始位置未与固态硬盘的存储页面的起始位置对齐,和/或,确定存储结束位置未与存储页面的结束位置对齐,则获取第一补充数据;

将待存储的第一数据与获取到的第一补充数据整合为目标存储数据;

将目标存储数据存储到固态硬盘中。

在其中一个实施例中,上述获取第一补充数据,包括:

将存储起始位置所在的存储页面,和/或,存储结束位置所在的存储页面确定为目标存储页面;

获取目标存储页面对应的第三数据作为第一补充数据。

在其中一个实施例中,上述存储系统还包括内存,上述获取目标存储页面对应的第三数据作为第一补充数据,包括:

根据内存中存储的页面索引,确定固态硬盘中是否存在目标存储页面对应的第三数据;

若固态硬盘中存在第三数据,则从固态硬盘中获取第三数据;

若固态硬盘中不存在第三数据,则从机械硬盘中获取第三数据。

在其中一个实施例中,在上述将目标存储数据存储到固态硬盘中之后,该方法还包括:

根据目标存储数据更新内存中的页面索引。

在其中一个实施例中,该方法还包括:

在对固态硬盘进行初始化或者重启存储服务时,根据固态硬盘中的已存储数据在内存中生成页面索引。

在其中一个实施例中,上述数据存储指令携带数据偏移量和数据存储量,上述根据数据存储指令确定将第一数据存储到固态硬盘中的存储起始位置和存储结束位置,包括:

根据数据偏移量确定固态硬盘中的存储起始位置;

根据数据存储量和存储起始位置确定固态硬盘中的存储结束位置。

在其中一个实施例中,该方法还包括:

接收数据读取指令;数据读取指令用于指示从固态硬盘中读取第四数据;

根据数据读取指令确定从固态硬盘中读取第四数据的读取起始位置和读取结束位置;

若确定读取起始位置和/或读取结束位置未与固态硬盘的存储页面对齐,则获取第二补充数据;

将第四数据与获取到的第二补充数据整合为目标读取数据,并反馈目标读取数据。

在其中一个实施例中,上述获取第二补充数据,包括:

根据读取起始位置和读取结束位置确定目标读取页面;

在内存的页面索引中查找目标读取页面;

若在页面索引中查找到目标读取页面,则根据目标读取页面从固态硬盘中获取第二补充数据;

若在页面索引中未查找到目标读取页面,则根据目标读取页面从机械硬盘中获取第二补充数据。

第二方面,本发明实施例提供了一种数据存储装置,应用于存储系统,所述存储系统包括固态硬盘和机械硬盘,该装置包括:

数据存储指令接收模块,用于接收数据存储指令;数据存储指令用于指示存储第一数据;

第一存储模块,用于若确定固态硬盘的已使用量小于预设阈值,则将第一数据存储到固态硬盘中;

第二存储模块,用于若确定固态硬盘的已使用量不小于预设阈值且存在数据写冲突,则将固态硬盘中存储的第二数据迁移至机械硬盘中,并将第一数据存储到固态硬盘中;

第三存储模块,用于若确定固态硬盘的已使用量不小于预设阈值且不存在数据写冲突,则将第一数据存储到机械硬盘中。

在其中一个实施例中,上述第一存储模块,具体用于根据数据存储指令确定将第一数据存储到固态硬盘中的存储起始位置和存储结束位置;若确定存储起始位置未与固态硬盘的存储页面的起始位置对齐,和/或,确定存储结束位置未与存储页面的结束位置对齐,则获取第一补充数据;将待存储的第一数据与获取到的第一补充数据整合为目标存储数据;将目标存储数据存储到固态硬盘中。

在其中一个实施例中,上述第一存储模块,具体用于将存储起始位置所在的存储页面,和/或,存储结束位置所在的存储页面确定为目标存储页面;获取目标存储页面对应的第三数据作为第一补充数据。

在其中一个实施例中,上述存储系统还包括内存,上述第一存储模块,具体用于根据内存中存储的页面索引,确定固态硬盘中是否存在目标存储页面对应的第三数据;若固态硬盘中存在第三数据,则从固态硬盘中获取第三数据;若固态硬盘中不存在第三数据,则从机械硬盘中获取第三数据。

在其中一个实施例中,该装置还包括:

页面索引更新模块,用于根据目标存储数据更新内存中的页面索引。

在其中一个实施例中,该装置还包括:

页面索引生成模块,用于在对固态硬盘进行初始化或者重启存储服务时,根据固态硬盘中的已存储数据在内存中生成页面索引。

在其中一个实施例中,数据存储指令携带数据偏移量和数据存储量,上述第一存储模块,具体用于根据数据偏移量确定固态硬盘中的存储起始位置;根据数据存储量和存储起始位置确定固态硬盘中的存储结束位置。

在其中一个实施例中,该装置还包括:

数据读取指令接收模块,用于接收数据读取指令;数据读取指令用于指示从固态硬盘中读取第四数据;

读取位置确定模块,用于根据数据读取指令确定从固态硬盘中读取第四数据的读取起始位置和读取结束位置;

补充数据获取模块,用于若确定读取起始位置和/或读取结束位置未与固态硬盘的存储页面对齐,则获取第二补充数据;

数据整合模块,用于将第四数据与获取到的第二补充数据整合为目标读取数据,并反馈目标读取数据。

在其中一个实施例中,上述补充数据获取模块,具体用于根据读取起始位置和读取结束位置确定目标读取页面;在内存的页面索引中查找目标读取页面;若在页面索引中查找到目标读取页面,则根据目标读取页面从固态硬盘中获取第二补充数据;若在页面索引中未查找到目标读取页面,则根据目标读取页面从机械硬盘中获取第二补充数据。

第三方面,本发明实施例提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上述方法中的步骤。

第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述方法中的步骤。

上述数据存储方法、装置、计算机设备和存储介质,接收数据存储指令;数据存储指令用于指示存储第一数据;若确定固态硬盘的已使用量小于预设阈值,则将第一数据存储到固态硬盘中;若确定固态硬盘的已使用量不小于预设阈值且存在数据写冲突,则将固态硬盘中存储的第二数据迁移至机械硬盘中,并将第一数据存储到固态硬盘中;若确定固态硬盘的已使用量不小于预设阈值且不存在数据写冲突,则将第一数据存储到机械硬盘中。通过本发明实施例,数据存储系统中包括固态硬盘和机械硬盘,由固态硬盘作为机械硬盘的缓存存储区,可以提高存储速度,进而提高存储系统的存储性能,满足用户的存储需求。

附图说明

图1为一个实施例中数据存储方法的应用环境图;

图2为一个实施例中数据存储方法的流程示意图;

图3为一个实施例中将第一数据存储到固态硬盘步骤的流程示意图;

图4为另一个实施例中数据读取方法的流程示意图;

图5为一个实施例中数据存储装置的结构框图;

图6为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的数据存储方法,可以应用于如图1所示的应用环境中。该应用环境包括终端101。其中,终端101可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。

在一个实施例中,如图2所示,提供了一种数据存储方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:

步骤201,接收数据存储指令;数据存储指令用于指示存储第一数据。

本实施例中,终端中设置有存储系统,存储系统包括固态硬盘和机械硬盘。终端接收数据存储指令,根据数据存储指令存储第一数据。其中,固态硬盘(solidstatedisk或solidstatedrive,ssd)是用固态电子存储芯片阵列而制成的硬盘,ssd由控制单元和存储单元(flash芯片、dram芯片)组成。由于ssd采用闪存作为存储介质,读取速度相对机械硬盘更快。机械硬盘(harddiskdrive,hdd),具有价格低、容量大等优点。

步骤202,若确定固态硬盘的已使用量小于预设阈值,则将第一数据存储到固态硬盘中。

本实施例中,由于固态硬盘存储越多性能越慢,因此在接收到数据存储指令后,根据固态硬盘的已使用量确定具体的存储策略。如果固态硬盘的已使用量小于预设阈值,则直接将第一数据存储到固态硬盘中。

例如,预设阈值为固态硬盘总容量的80%,如果固态硬盘的已使用量为固态硬盘总容量的50%,小于预设阈值,则将第一数据a存储到固态硬盘中。本发明实施例对预设阈值不作详细限定,可以根据实际情况进行设置。

步骤203,若确定固态硬盘的已使用量不小于预设阈值且存在数据写冲突,则将固态硬盘中存储的第二数据迁移至机械硬盘中,并将第一数据存储到固态硬盘中。

本实施例中,如果固态硬盘的已使用量不小于预设阈值,则确定是否存在数据写冲突。具体地,判断固态硬盘中是否已存在第一数据,如果固态硬盘中已存在第一数据,则判定存在数据写冲突;如果固态硬盘中不存在第一数据,则判定不存在数据写冲突。

在固态硬盘的已使用量不小于预设阈值且存在数据写冲突时,将固态硬盘中已存储的第二数据迁移至机械硬盘中,再将第一数据存储到固态硬盘中。在数据迁移过程中,建立对应关系表,该对应关系表中用于指示数据迁移前后的存储位置。

例如,如果固态硬盘的已使用量为固态硬盘总容量的85%,并且,固态硬盘中已存在第一数据a,表明固态硬盘的已使用量大于预设阈值且存在数据写冲突。此时,先将固态硬盘中的第二数据b迁移至机械硬盘中,然后再将第一数据a存储到固态硬盘中。

可以理解地,在固态硬盘中存在第一数据时,如果将第一数据存储到机械硬盘中,后续在将固态硬盘中的数据迁移至机械硬盘时,还会将固态硬盘中的第一数据存储到机械硬盘中。这样,机械硬盘就会出现两个第一数据,即存在数据写冲突。

步骤204,若确定固态硬盘的已使用量不小于预设阈值且不存在数据写冲突,则将第一数据存储到机械硬盘中。

本实施例中,如果固态硬盘的已使用量大于或等于预设阈值,并且,固态硬盘中不存在第一数据,则可以不对固态硬盘进行存操作,而是直接将第一数据存储到机械硬盘中。

例如,如果固态硬盘的已使用量为固态硬盘总容量的85%,并且,固态硬盘中不存在第一数据a,表明固态硬盘的已使用量大于预设阈值但是不存在数据写冲突。此时,直接将第一数据直接存储到机械硬盘中。

上述数据存储方法中,接收数据存储指令;数据存储指令用于指示存储第一数据;若确定固态硬盘的已使用量小于预设阈值,则将第一数据存储到固态硬盘中;若确定固态硬盘的已使用量不小于预设阈值且存在数据写冲突,则将固态硬盘中存储的第二数据迁移至机械硬盘中,并将第一数据存储到固态硬盘中;若确定固态硬盘的已使用量不小于预设阈值且不存在数据写冲突,则将第一数据存储到机械硬盘中。通过本发明实施例,数据存储系统中包括固态硬盘和机械硬盘,由固态硬盘作为机械硬盘的缓存存储区,可以提高存储速度,进而提高存储系统的存储性能,满足用户的存储需求。

在另一个实施例中,如图3所示,本实施例涉及的是将第一数据存储到固态硬盘的一种可选的过程。在上述图2所示实施例的基础上,具体可以包括以下步骤:

步骤301,根据数据存储指令确定将第一数据存储到固态硬盘中的存储起始位置和存储结束位置。

本实施例中,接收到数据存储指令后,根据数据存储指令确定第一数据的存储位置,即在固态硬盘中的存储起始位置和存储结束位置。其中,固态硬盘中预先划分出多个数据存储块,每个数据存储块中包括多个存储页面,各存储页面的存储容量相同。

具体地,数据存储指令携带数据偏移量和数据存储量,根据数据存储指令确定固态硬盘中的存储起始位置和存储结束位置,包括:根据数据偏移量确定固态硬盘中的存储起始位置;根据数据存储量和存储起始位置确定固态硬盘中的存储结束位置。

例如,每个存储页面的存储容量为4k,数据存储指令携带数据偏移量offset和数据存储量size,根据数据偏移量offset可以确定第一数据的存储起始位置为固态硬盘中数据存储块1的存储页面2的1k处。进一步地,根据存储起始位置和数据存储量size,可以确定第一数据的存储结束位置为固态硬盘中数据存储块1的存储页面3的2k处。本发明实施例对数据偏移量和数据存储量均不作详细限定,可以根据实际情况进行设置。

步骤302若确定存储起始位置未与固态硬盘的存储页面的起始位置对齐,和/或,确定存储结束位置未与存储页面的结束位置对齐,则获取第一补充数据。

本实施例中,每个存储页面的数据量固定。例如,数据存储块1中存储页面1的起始位置为0k,结束位置为4k;存储页面2的起始位置为4k,结束位置为8k;存储页面3的起始位置为8k,结束位置为12k。

在确定第一数据的存储始位置和存储结束位置之后,判断存储起始位置与固态硬盘的存储页面的起始位置是否对齐,判断存储结束位置与固态硬盘的存储页面的结束位置是否对齐。如果存储起始位置未与存储页面的起始位置对齐,则根据存储起始位置获取第一补充数据;如果存储结束位置未与存储页面的结束位置对齐,则根据存储结束位置获取第一补充数据;如果存储起始位置未与存储页面的起始位置对齐,并且存储结束位置未与存储页面的结束位置对齐,则根据存储起始位置和存储结束位置获取第一补充数据。

例如,数据偏移量为5k,数据存储量为6k,则确定第一数据的存储起始位置为存储页面2的1k处,存储结束位置为存储页面3的3k处,进一步确定存储起始位置未与存储页面2的起始位置对齐,存储结束位置未与存储页面3的结束位置对齐。

在其中一个实施例中,获取第一补充数据可以包括:将存储起始位置所在的存储页面,和/或,存储结束位置所在的存储页面确定为目标存储页面;获取目标存储页面对应的第三数据作为第一补充数据。

具体地,如果存储起始位置未与存储页面的起始位置对齐,则将存储起始位置所在的存储页面确定为目标存储页面;如果存储结束位置未与存储页面的结束位置对齐,则将存储结束位置所在的存储页面确定为目标存储页面;如果存储起始位置未与存储页面的起始位置对齐,且存储结束位置未与存储页面的结束位置对齐,则将存储起始位置所在的存储页面和存储结束位置所在的存储页面确定为目标存储页面。

例如,存储起始位置未与存储页面2的起始位置对齐,存储结束位置未与存储页面3的结束位置对齐,则将存储页面2和存储页面3均确定为目标存储页面。

在其中一个实施例中,存储系统还包括内存,在确定目标存储页面之后,获取目标存储页面对应的第三数据作为第一补充数据可以包括:根据内存中存储的页面索引,确定固态硬盘中是否存在目标存储页面对应的第三数据;若固态硬盘中存在第三数据,则从固态硬盘中获取第三数据;若固态硬盘中不存在第三数据,则从机械硬盘中获取第三数据。

具体地,在对固态硬盘进行初始化或者重启存储服务时,根据固态硬盘中的已存储数据在内存中生成页面索引。在确定目标存储页面之后,根据页面索引确定固态硬盘中是否存在目标存储页面对应的第三数据;如果存在,则根据页面索引从固态硬盘中获取第三数据。如果不存在,则表明目标存储页面对应的第三数据已被迁移至机械硬盘中,因此可以根据数据迁移过程中建立的对应关系表从机械硬盘中获取第三数据。

最后,将获取到的第三数据作为第一补充数据。例如,获取到第三数据c,则将第三数据c作为第一补充数据。

步骤303,将待存储的第一数据与获取到的第一补充数据整合为目标存储数据。

本实施例中,在获取到第一补充数据后,将第一数据和第一补充数据进行整合,得到目标存储数据。例如,第一数据在存储页面2中从1k到4k,获取到的第一补充数据在存储页面2中从0k到1k,将第一数据和第一补充数据进行拼接,则可以得到目标存储数据。或者,第一数据在存储页面2中从1k到4k,获取到的第一补充数据在存储页面2中从0k到2k的数据,则只保留在存储页面2中0k到1k的第一补充数据,然后将第一数据中和第一补充数据进行拼接,得到目标存储数据。还可以采用其他整合方式,本发明实施例对此不作详细限定,可以根据实际情况进行设置。

步骤304,目标存储数据存储到固态硬盘中。

本实施例中,目标存储数据的数据量对应完整的存储页面,因此在将目标存储数据存储到固态硬盘时,可以实现整页写入。例如,将目标存储数据整页写入存储页面2中。

在其中一个实施例中,在将目标存储数据存储到固态硬盘中之后,根据目标存储数据更新内存中的页面索引。

本实施例中,在对固态硬盘进行初始化或者重启存储服务时,将固态硬盘中的数据加载到内存中,并根据加载数据在内存中生成页面索引。在将目标存储数据存储到固态硬盘中之后,固态硬盘中的数据发生了变化,因此根据目标存储数据更新内存中的页面索引,以方便后续在存储数据时获取补充数据。

上述将第一数据存储到固态硬盘步骤中,根据数据存储指令确定将第一数据存储到固态硬盘中的存储起始位置和存储结束位置;若确定存储起始位置未与固态硬盘的存储页面的起始位置对齐,和/或,确定存储结束位置未与存储页面的结束位置对齐,则获取第一补充数据;将待存储的第一数据与获取到的第一补充数据整合为目标存储数据;目标存储数据存储到固态硬盘中。通过本发明实施例,首先确定如果将第一数据存储到固态硬盘中,是否可以整页写入,如果第一数据不能实现整页写入,则获取第一补充数据,将第一补充数据与第一数据整合得到目标存储数据,这样,在将目标存储数据存储到固态硬盘时就可以实现整页写入,从而提高固态硬盘的使用寿命。

在另一个实施例中,如图4所示,本实施例涉及的是数据读取方法的一种可选的过程。在上述实施例的基础上,具体可以包括以下步骤:

步骤401,接收数据读取指令;数据读取指令用于指示从固态硬盘中读取第四数据。

本实施例中,在读取数据时,终端接收数据读取指令,根据数据读取指令进行第四数据的读取操作。

步骤402,根据数据读取指令确定从固态硬盘中读取第四数据的读取起始位置和读取结束位置。

本实施例中,数据读取指令携带数据偏移量和数据读取量,根据数据偏移量可以确定第四数据在固态硬盘中的读取起始位置。根据读取起始位置和数据读取量,可以确定第四数据在固态硬盘中的读取结束位置。具体确定方式与确定存储起始位置和存储结束位置类似,在此不再赘述。

步骤403,若确定读取起始位置和/或读取结束位置未与固态硬盘中的存储页面对齐,则获取第二补充数据。

本实施例中,在确定读取起始位置和读取结束位置之后,判断读取起始位置是否与存储页面的起始位置对齐,判断读取结束位置是否与存储页面的结束位置对齐。如果读取起始位置未与存储页面的起始位置对齐,根据读取起始位置获取第二补充数据;如果读取结束位置未与存储页面的结束位置对齐,根据读取结束位置获取第二补充数据;如果读取起始位置未与存储页面的起始位置对齐,且读取结束位置未与存储页面的结束位置对齐,根据读取起始位置和读取结束位置获取第二补充数据。

在其中一个实施例中,获取第二补充数据可以包括:根据读取起始位置和读取结束位置确定目标读取页面;在内存的页面索引中查找目标读取页面;若在页面索引中查找到目标读取页面,则根据目标读取页面从固态硬盘中获取第二补充数据;若在页面索引中未查找到目标读取页面,则根据目标读取页面从机械硬盘中获取第二补充数据。

具体地,如果读取起始位置未与存储页面的起始位置对齐,则将读取起始位置所在的存储页面确定为目标读取页面;如果读取结束位置未与存储页面的结束位置对齐,则将读取结束位置所在的存储页面确定为目标读取页面;如果读取起始位置未与存储页面的起始位置对齐,且读取结束位置未与存储页面的结束位置对齐,则将读取起始位置所在的存储页面和读取结束位置所在的存储页面确定为目标读取页面。

确定目标读取页面之后,根据页面索引在内存中查找目标读取页面,如果查找到目标读取页面,则根据页面索引获取目标读取页面对应的数据作为第二补充数据。如果未查找到目标读取页面,表明已将目标读取页面对应的数据迁移至机械硬盘中,则从机械硬盘中获取目标读取页面对应的数据作为第二补充数据。

步骤404,将第四数据与获取到的第二补充数据整合为目标读取数据,并反馈目标读取数据。

本实施例中,在获取到第二补充数据之后,将第四数据和第二补充数据整合为目标读取数据。整合过程与将第一数据和第一补充数据整合为目标存储数据的过程类似,在此不再赘述。

在得到目标读取数据后,反馈目标读取数据。例如,终端显示目标读取数据。本发明实施例对反馈方式不作详细限定,可以根据实际情况进行设置。

上述数据读取方法中,接收数据读取指令;数据读取指令用于指示从固态硬盘中读取第四数据;根据数据读取指令确定从固态硬盘中读取第四数据的读取起始位置和读取结束位置;若确定读取起始位置和/或读取结束位置未与固态硬盘中的存储页面对齐,则获取第二补充数据;将第四数据与获取到的第二补充数据整合为目标读取数据,并反馈目标读取数据。通过本发明实施例,确定第四数据是否可以整页读取,如果不能实现整页读取,则获取第二补充数据,将第二补充数据与第四数据整合得到目标读取数据,从而实现整页读取,进而提高固态硬盘的使用寿命。

应该理解的是,虽然图2-图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且图2-图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图5所示,提供了一种数据存储装置,应用于存储系统,所述存储系统包括固态硬盘和机械硬盘,该装置包括:

数据存储指令接收模块501,用于接收数据存储指令;数据存储指令用于指示存储第一数据;

第一存储模块502,用于若确定固态硬盘的已使用量小于预设阈值,则将第一数据存储到固态硬盘中;

第二存储模块503,用于若确定固态硬盘的已使用量不小于预设阈值且存在数据写冲突,则将固态硬盘中存储的第二数据迁移至机械硬盘中,并将第一数据存储到固态硬盘中;

第三存储模块504,用于若确定固态硬盘的已使用量不小于预设阈值且不存在数据写冲突,则将第一数据存储到机械硬盘中。

在其中一个实施例中,上述第一存储模块,具体用于根据数据存储指令确定将第一数据存储到固态硬盘中的存储起始位置和存储结束位置;若确定存储起始位置未与固态硬盘的存储页面的起始位置对齐,和/或,确定存储结束位置未与存储页面的结束位置对齐,则获取第一补充数据;将待存储的第一数据与获取到的第一补充数据整合为目标存储数据;将目标存储数据存储到固态硬盘中。

在其中一个实施例中,上述第一存储模块,具体用于将存储起始位置所在的存储页面,和/或,存储结束位置所在的存储页面确定为目标存储页面;获取目标存储页面对应的第三数据作为第一补充数据。

在其中一个实施例中,上述存储系统还包括内存,上述第一存储模块,具体用于根据内存中存储的页面索引,确定固态硬盘中是否存在目标存储页面对应的第三数据;若固态硬盘中存在第三数据,则从固态硬盘中获取第三数据;若固态硬盘中不存在第三数据,则从机械硬盘中获取第三数据。

在其中一个实施例中,该装置还包括:

页面索引更新模块,用于根据目标存储数据更新内存中的页面索引。

在其中一个实施例中,该装置还包括:

页面索引生成模块,用于在对固态硬盘进行初始化或者重启存储服务时,根据固态硬盘中的已存储数据在内存中生成页面索引。

在其中一个实施例中,上述数据存储指令携带数据偏移量和数据存储量,上述第一存储模块,具体用于根据数据偏移量确定固态硬盘中的存储起始位置;根据数据存储量和存储起始位置确定固态硬盘中的存储结束位置。

在其中一个实施例中,该装置还包括:

数据读取指令接收模块,用于接收数据读取指令;数据读取指令用于指示从固态硬盘中读取第四数据;

读取位置确定模块,用于根据数据读取指令确定从固态硬盘中读取第四数据的读取起始位置和读取结束位置;

补充数据获取模块,用于若确定读取起始位置和/或读取结束位置未与固态硬盘的存储页面对齐,则获取第二补充数据;

数据整合模块,用于将第四数据与获取到的第二补充数据整合为目标读取数据,并反馈目标读取数据。

在其中一个实施例中,上述补充数据获取模块,具体用于根据读取起始位置和读取结束位置确定目标读取页面;在内存的页面索引中查找目标读取页面;若在页面索引中查找到目标读取页面,则根据目标读取页面从固态硬盘中获取第二补充数据;若在页面索引中未查找到目标读取页面,则根据目标读取页面从机械硬盘中获取第二补充数据。

关于数据存储装置的具体限定可以参见上文中对于数据存储方法的限定,在此不再赘述。上述数据存储装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据存储方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

接收数据存储指令;数据存储指令用于指示存储第一数据;

若确定固态硬盘的已使用量小于预设阈值,则将第一数据存储到固态硬盘中;

若确定固态硬盘的已使用量不小于预设阈值且存在数据写冲突,则将固态硬盘中存储的第二数据迁移至机械硬盘中,并将第一数据存储到固态硬盘中;

若确定固态硬盘的已使用量不小于预设阈值且不存在数据写冲突,则将第一数据存储到机械硬盘中。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

根据数据存储指令确定将第一数据存储到固态硬盘中的存储起始位置和存储结束位置;

若确定存储起始位置未与固态硬盘的存储页面的起始位置对齐,和/或,确定存储结束位置未与存储页面的结束位置对齐,则获取第一补充数据;

将待存储的第一数据与获取到的第一补充数据整合为目标存储数据;

将目标存储数据存储到固态硬盘中。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

将存储起始位置所在的存储页面,和/或,存储结束位置所在的存储页面确定为目标存储页面;

获取目标存储页面对应的第三数据作为第一补充数据。

在一个实施例中,上述存储系统还包括内存,处理器执行计算机程序时还实现以下步骤:

根据内存中存储的页面索引,确定固态硬盘中是否存在目标存储页面对应的第三数据;

若固态硬盘中存在第三数据,则从固态硬盘中获取第三数据;

若固态硬盘中不存在第三数据,则从机械硬盘中获取第三数据。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

根据目标存储数据更新内存中的页面索引。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

在对固态硬盘进行初始化或者重启存储服务时,根据固态硬盘中的已存储数据在内存中生成页面索引。

在一个实施例中,上述数据存储指令携带数据偏移量和数据存储量,处理器执行计算机程序时还实现以下步骤:

根据数据偏移量确定固态硬盘中的存储起始位置;

根据数据存储量和存储起始位置确定固态硬盘中的存储结束位置。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

接收数据读取指令;数据读取指令用于指示从固态硬盘中读取第四数据;

根据数据读取指令确定从固态硬盘中读取第四数据的读取起始位置和读取结束位置;

若确定读取起始位置和/或读取结束位置未与固态硬盘的存储页面对齐,则获取第二补充数据;

将第四数据与获取到的第二补充数据整合为目标读取数据,并反馈目标读取数据。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

根据读取起始位置和读取结束位置确定目标读取页面;

在内存的页面索引中查找目标读取页面;

若在页面索引中查找到目标读取页面,则根据目标读取页面从固态硬盘中获取第二补充数据;

若在页面索引中未查找到目标读取页面,则根据目标读取页面从机械硬盘中获取第二补充数据。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

接收数据存储指令;数据存储指令用于指示存储第一数据;

若确定固态硬盘的已使用量小于预设阈值,则将第一数据存储到固态硬盘中;

若确定固态硬盘的已使用量不小于预设阈值且存在数据写冲突,则将固态硬盘中存储的第二数据迁移至机械硬盘中,并将第一数据存储到固态硬盘中;

若确定固态硬盘的已使用量不小于预设阈值且不存在数据写冲突,则将第一数据存储到机械硬盘中。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

根据数据存储指令确定将第一数据存储到固态硬盘中的存储起始位置和存储结束位置;

若确定存储起始位置未与固态硬盘的存储页面的起始位置对齐,和/或,确定存储结束位置未与存储页面的结束位置对齐,则获取第一补充数据;

将待存储的第一数据与获取到的第一补充数据整合为目标存储数据;

将目标存储数据存储到固态硬盘中。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

将存储起始位置所在的存储页面,和/或,存储结束位置所在的存储页面确定为目标存储页面;

获取目标存储页面对应的第三数据作为第一补充数据。

在一个实施例中,上述存储系统还包括内存,计算机程序被处理器执行时还实现以下步骤:

根据内存中存储的页面索引,确定固态硬盘中是否存在目标存储页面对应的第三数据;

若固态硬盘中存在第三数据,则从固态硬盘中获取第三数据;

若固态硬盘中不存在第三数据,则从机械硬盘中获取第三数据。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

根据目标存储数据更新内存中的页面索引。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

在对固态硬盘进行初始化或者重启存储服务时,根据固态硬盘中的已存储数据在内存中生成页面索引。

在一个实施例中,上述数据存储指令携带数据偏移量和数据存储量,计算机程序被处理器执行时还实现以下步骤:

根据数据偏移量确定固态硬盘中的存储起始位置;

根据数据存储量和存储起始位置确定固态硬盘中的存储结束位置。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

接收数据读取指令;数据读取指令用于指示从固态硬盘中读取第四数据;

根据数据读取指令确定从固态硬盘中读取第四数据的读取起始位置和读取结束位置;

若确定读取起始位置和/或读取结束位置未与固态硬盘的存储页面对齐,则获取第二补充数据;

将第四数据与获取到的第二补充数据整合为目标读取数据,并反馈目标读取数据。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

根据读取起始位置和读取结束位置确定目标读取页面;

在内存的页面索引中查找目标读取页面;

若在页面索引中查找到目标读取页面,则根据目标读取页面从固态硬盘中获取第二补充数据;

若在页面索引中未查找到目标读取页面,则根据目标读取页面从机械硬盘中获取第二补充数据。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1