一种数据存储的方法及设备与流程

文档序号:11458422阅读:244来源:国知局
一种数据存储的方法及设备与流程
本发明实施例涉及存储领域,尤其涉及一种数据存储的方法及设备。
背景技术
:用户数据传送至存储设备的过程中,影响用户数据传输的因素是客观存在和无法避免的,导致用户数据的接收延迟。因此,对于同一时间发送的多个相同类型的用户数据,所述存储设备的接收时间是不连续的。相邻两次接收到的,两个所述相同类型的用户数据的接收时间,具有时间间隔。在所述时间间隔内,如果所述存储设备接收到其它类型的用户数据,所述存储设备依据接收时间,顺序存储其它类型的用户数据,所述相同类型的用户数据在所述存储设备中的存储位置,则被所述其他类型的用户数据分散间隔,形成不连续的存储地址。当查找相同类型的用户数据时,为避免遗漏部分相同类型的用户数据,存储设备遍历其存储的所有用户数据,由于遍历规则是多种多样的,对于相同类型的用户数据的随机存储,无法确定一种遍历规则能够快速查找到相同类型的用户数据。另外,如果相同类型的用户数据存储在不同的存储介质上,每个存储介质对应不同的访问通道,存储设备需要多次转换访问通道,才能查找到存储于不同存储介质上的相同类型的用户数据,导致访问时间增加。技术实现要素:本发明公开了一种数据存储的方法及设备,避免为查找相同类型的用户数据,遍历存储设备中存储的所有数据,实现快速查找相同类型的用户数据,提升数据操作的效率。第一方面提供一种数据存储方法,所述方法应用于存储设备中,所述方法包括:所述存储设备接收写请求消息,所述写请求消息包括数据和所述数据的关键字,所述关键字用于识别所述数据的数据类型;所述存储设备根据所述关键字确定所述数据的数据类型;然后根据所述数据类型查找与所述数据类型匹配的目标物理存储块,所述目标物理存储块为物理地址连续的物理存储块;然后,所述存储设备将所述数据保存至所述目标物理存储块。存储设备根据关键字确定出数据的数据类型,将相同数据类型的数据存储于地址连续的目标物理存储块中,避免随机存储相同类型的数据,如果需要查找或访问相同类型的数据,避免遍历存储的所有数据,降低了数据查找和访问时间,提高了数据的查找和访问效率。另外,将相同数据类型的数据存储于地址连续的目标物理存储块中,避免相同类型的数据存储在不同的存储介质上,避免访问相同类型的数据时,多次访问存储于不同存储介质上的数据,降低了访问时间,提高了数据的访问效率。基于第一方面,在第一种实现方式中,所述存储设备中预先保存有所述数据类型与所述目标物理存储块所存储的数据的类型之间的对应关系;所述根据所述数据类型查找与所述数据类型匹配的目标物理存储块包括:根据所述数据类型以及所述对应关系查找所述目标物理存储块。通过预先保存的所述数据类型与所述目标物理存储块所存储的数据的类型之间的对应关系,可以快速的查找到目标物理存储块,提高了数据的存储效率。基于第一方面,在第二种实现方式中,所述目标物理存储块存储有其他数据,所述其他数据的数据类型与所述数据的数据类型相同。通过查找所述目标物理存储块存储有其他数据的数据类型,查找出与所述数据的所述目标物理存储块,基于第一方面,在第三种实现方式中,当确定所述目标物理存储块处于待写状态时,所述处理器,还用于将所述数据保存至所述目标物理存储块。所述目标物理存储块处于待写状态时,表明所述目标物理存储块当前处于可用状态,可以用于存储所述数据,否则处于不可用状态,则需寻找其他的处于待写状态的目标物理存储块,用于存储所述数据,提高数据高效存储的可靠性。结合第一方面,或第一方面的第一种至第三种实现方式中的任一种实现方式,在第四种实现方式中,所述存储设备将所述数据保存至所述目标物理存储块之前,所述方法还包括:所述存储设备查询所述目标物理存储块的剩余存储容量;所述存储设备将所述数据保存至所述目标物理存储块包括:当所述目标物理存储块的剩余存储容量大于或等于所述数据的数据量时,所述存储设备将所述数据保存至所述目标物理存储块。在确定目标物理存储块的剩余存储容量能够存储所述数据后,再保存所述数据至目标物理存储块中,避免由于剩余存储容量不足导致无法存储所述数据的现象发生,则再寻找其他的剩余存储容量能够存储所述数据的目标物理存储块,提高数据高效存储的可靠性。结合第一方面,或第一方面的第一种实现方式,在第五种实现方式中,所述方法还包括:当预设条件到达时,将所述目标物理存储块中存储的所述数据迁移至其他物理存储块,所述其他物理存储块的剩余存储容量大于或等于所述数据的数据量,并且所述其他物理存储块存储的数据的数据类型与所述数据的数据类型相同。为避免碎片式的存储相同数据类型的数据,导致数据管理的繁琐,将相同类型的数据迁移存储在同一物理存储块中。另外,避免由于剩余存储容量不足导致无法存储待迁移的数据的现象发生,则在确定其他物理存储块的剩余存储容量能够存储所述数据后,再保存所述数据至其他物理存储块中,避免碎片式存储相同数据类型的数据时,提高数据高效存储的可靠性。第二方面提供一种存储设备,包括用于执行第一方面或第一方面的任一种可能实现方式中的数据存储方法的各个模块,所述模块可以通过硬件实现,也可以通过硬件执行相应的软件实现。第三方面提供一种存储设备,包括处理器和接口,所述接口用于接收写请求消息,所述写请求消息包括数据和所述数据的关键字,所述关键字用于识别所述数据的数据类型;所述处理器用于执行第一方面或第一方面的任意可能的实现方式中的方法。存储设备根据关键字确定出数据的数据类型,将相同数据类型的数据存储于地址连续的目标物理存储块中,避免随机存储相同类型的数据,如果需要查找或访问相同类型的数据,避免遍历存储的所有数据,降低了数据查找和访问时间,提高了数据的查找和访问效率。另外,将相同数据类型的数据存储于地址连续的目标物理存储块中,避免相同类型的数据存储在不同的存储介质上,避免访问相同类型的数据时,多次访问存储于不同存储介质上的数据,降低了访问时间,提高了数据的访问效率。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。图1为本发明实施例提供的一种分布式存储系统的架构示意图;图2为本发明实施例提供的一种应用服务器110的结构示意图;图3为本发明实施例提供的一种存储设备120的结构示意图;图4为本发明实施例提供的一种数据存储方法的流程图;图5为本发明实施例提供的一种数据存储设备510的结构图;图6为本发明实施例提供的另一种数据存储设备610的结构图。具体实施方式下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述。请参见图1,图1为本发明实施例提供的一种分布式存储系统的架构示意图。如图1所示,分布式存储系统包括应用服务器110和若干个存储设备120,应用服务器110与各存储设备120进行通信,并且任意两个存储设备120之间也可以通信。应用服务器110可以是任何计算设备,如服务器、台式计算机等等。应用服务器110可以与终端设备(图1中未示出)连接,用户通过所述终端设备向应用服务器110发送用户数据,同时发送关键字至应用服务器110,所述关键字用于识别用户数据的数据类型。应用服务器110将所述用户数据划分为若干个数据块,为每个数据块分配数据块标识,将每个数据块和数据块标识封装成一个写请求消息,数据块标识用于识别数据块,数据块标识中包括所述关键字。然后,应用服务器110将所述写请求消息发送给存储设备120。存储设备120根据所述关键字确定所述数据块的数据类型,根据所述数据类型查找与所述数据类型匹配的目标物理存储块,以保存所述数据块至目标物理存储块。所述目标物理存储块为物理地址连续的物理存储块。根据所述关键字确定所述数据块所属的用户数据的数据类型的实现方式为,存储设备120中预先存储数据类型识别插件,所述数据类型识别插件包括数据类型生成算法。存储设备120调用所述数据类型识别插件,根据所述写请求消息中的关键字,通过所述数据类型生成算法对所述关键字进行运算后,输出所述用户数据的数据类型。在其他实施方式中,应用服务器110接收到的用户数据后,不用划分用户数据位为若干个数据块,即应用服务器110接收到用户数据后,将所述用户数据和数据标识封装成一个写请求消息,数据标识用于识别用户数据,数据标识包括关键字,所述关键字用于识别用户数据的数据类型。在所述存储设备120中预先保存数据类型识别插件,一种实现方式为,存储设备120接收所述终端设备发送的所述数据类型识别插件。用户可以在所述终端设备的可视界面上点击上传所述数据类型识别插件;另一种实现方式为,所述存储设备120接收所述应用服务器110获取的所述数据类型识别插件。所述应用服务器110获取所述数据类型识别插件,一种实现方式为,用户在所述应用服务器110的可视界面上点击上传所述数据类型识别插件,或者用户通过所述应用服务器110提供的命令交互式界面,通过交互式命令行输入所述数据类型识别插件;另一种实现方式为,所述应用服务器110可以接收所述终端设备发送的所述数据类型识别插件,用户可以在所述终端设备的可视界面上点击上传所述数据类型识别插件。下面介绍应用服务器110和存储设备120的物理结构。请参见图2,图2为本发明实施例提供的一种应用服务器110的结构示意图。如图2所示,应用服务器110主要包括处理器(英文:processor)211、存储器(英文:memory)212、通信总线(简称总线)213以及通信接口(英文:communicationinterface)214和通信接口215。处理器211、存储器212、通信接口214以及通信接口215通过通信总线213完成相互间的通信。通信接口214,用于与存储设备120通信。通信接口215,用于和用户通信,接收用户发送的写数据消息,所述写数据消息包括用户数据和关键字。通信接口215是文件接口、块接口或者对象接口。如果用户发送用户数据给应用服务器110,是通过文件接口与应用服务器110通信,同时还会发送用户数据在文件中的逻辑地址给应用服务器110,逻辑地址包括文件名、偏移位置和用户数据长度。如果用户发送用户数据给应用服务器110,是通过对象接口与应用服务器110通信,同时还会发送用户数据在对象中的逻辑地址给应用服务器110,逻辑地址包括对象名、偏移位置和用户数据长度。如果用户发送用户数据给应用服务器110,是通过块接口与应用服务器110通信,同时还会发送用户数据存储时的逻辑地址给应用服务器110,逻辑地址包括卷的标识、逻辑块地址(英文:logicalblockaddress,lba)和长度(英文:length)。存储器212,用于临时存储用户发送的用户数据和关键字。存储器212可能包含高速ram存储器,也可能还包括非易失性存储器(英文:non-volatilememory),例如至少一个磁盘存储器。可以理解的是,存储器212可以为随机存储器(英文:random-accessmemory,ram)、磁碟、硬盘、固态硬盘(英文:solidstatedisk,ssd)或者非易失性存储器等各种可以存储程序代码的机器可读介质。处理器211,是一个中央处理器(英文:centralprocessingunit,cpu)。处理器211,用于划分用户数据为多个数据块,以及将划分的数据块存储至存储器212中,以及用于为每个数据块分配数据块标识,还用于发送写请求消息至存储设备120。请参见图3,图3为本发明实施例提供的一种存储设备120的结构示意图。存储设备120是存储服务器,所述存储服务器包括控制器310,控制器310包含接口311、接口312、处理器314、存储器313和至少一个硬盘。如图3所示,存储设备120包括控制器310和一个或多个硬盘320。其中,控制器310至少包括接口311、接口312、存储器313和处理器314。接口311,用于和应用服务器110通信。接口312,用于和硬盘320通信。硬盘320,在存储设备120初次安装时,按照预设存储容量被格式化后,分为多个存储容量大小固定的物理存储块,每个物理存储块由机械硬盘的若干扇区(hdd)中的其中一个或多个扇区组成的,每个或多个扇区组成的物理存储块的物理地址是连续的。或者,物理存储块由所述固态硬盘的一个或多个可擦写存储单元(eraseblock)组成。每个每个或多个可擦写存储单元组成的物理存储块的物理地址是连续的。存储器313,用于临时存储从应用服务器110发送的,写请求消息中的数据块和数据块标识。所述存储器313还用于存储数据类型识别插件。存储器313,还用于预先存储所述数据类型与所述目标物理存储块所存储的用户数据的类型之间的对应关系。通过存储类型,识别存储相同数据类型的用户数据的目标物理存储块,存储类型的参数,表示所述物理存储块存储的用户数据的数据类型。物理存储块的存储类型的参数的初始值为空,存储了相同类型的用户数据后,物理存储块的存储类型的参数的值修改为其存储的用户数据的数据类型。存储器313,还用于预先存储每个物理存储块的状态参数,所述状态参数,用于识别每个物理存储块的使用状态。所述物理存储块的使用状态至少包括四种状态,分别是未分配状态,待写状态、写满状态和回收状态。未分配状态表示所述物理存储块当前未分配给任何数据类型的用户数据。待写状态表示允许存储用户数据至所述物理存储块中。写满状态表示所述物理存储块当前不能再存储任何数据类型的用户数据。回收状态,表示所述物理存储块中的用户数据正在被删除,不允许再存储任何数据类型的用户数据。所述状态参数的初始值为未分配状态,当确定所述物理存储块为用于存储所述数据类型的用户数据的目标物理存储块,即物理存储块的存储类型的参数的值修改为所述数据类型后,所述状态参数的值修改为待写状态,表明所述目标物理存储块允许存储所述数据类型的用户数据。存储器313,还用于存储所述物理存储块的逻辑地址。所述物理存储块的逻辑地址,例如,是物理存储块的标识,或者是存储设备120的标识和物理存储块的标识的组合。如果物理存储块的逻辑地址是物理存储块的标识,则所有的存储设备120中的每个物理存储块的标识不同;如果物理存储块的逻辑地址是存储设备120的标识和物理存储块的标识的组合,则同一存储设备120中的每个物理存储块的标识不同。存储器313可能包含高速ram存储器,也可能还包括非易失性存储器(英文:non-volatilememory),例如至少一个磁盘存储器。可以理解的是,存储器313可以为随机存储器(英文:random-accessmemory,ram)、磁碟、硬盘、机械盘、固态硬盘(英文:solidstatedisk,ssd)或者非易失性存储器等各种可以存储程序代码的机器可读介质。处理器314,是一个中央处理器(英文:centralprocessingunit,cpu)。所述处理器314,在硬盘320被格式化时,用于初始化每个物理存储块的存储类型的参数的值,以及用于初始化每个物理存储块的状态参数的值,初始化后的所述物理存储块的存储类型的参数的值为空,初始化后的所述物理存储块的状态参数的值,表示物理存储块处于未分配状态。处理器314,还用于将存储器313中的数据块发送给硬盘320存储。处理器314,还用于根据所述关键字确定所述用户数据的数据类型。处理器314,还用于根据所述数据类型,查找与所述数据类型匹配的目标物理存储块,以保存数据块至所述目标物理存储块。下面结合图1所示的应用场景,图2所示的应用服务器110以及图3所示的存储设备120,对本发明实施例公开的数据存储方法进行具体的描述。请参见图4,图4为本发明实施例提供的一种数据存储方法的流程图。图4所示的步骤s410、s420、s430和s440由图2所示的处理器211执行,以及步骤s450、s460、s470、s480由图3所示的处理器314执行。图4所示的方法中,存储设备120为图1所示的应用场景中的任意一个存储设备120。如图4所示,所述数据存储方法包括如下步骤。s410、应用服务器110接收写数据消息。所述写数据消息是用户通过终端设备发送的,也可能是用户直接在应用服务器110中输入的。所述写请求消息包括用户数据。所述用户数据可以是文件,也可以是块数据,也可以是对象。所述写请求消息还包括用于识别数据类型的关键字。数据类型,用于识别用户数据的各种属性,例如,存储格式属性、存储日期属性、所属用户属性、发送地点属性、访问频率属性、学科属性等等,数据类型的定义,不受本实施例的限制,由用户自定义。另外,所述写数据消息还包括所述用户的逻辑地址。所述关键字可以是逻辑地址中的一部分,或者是逻辑地址中的部分/全部与其他字段的组合,所述其他字段可以是字母或者数字或者是字母和数字的组合。若所述用户数据是块数据,那么所述逻辑地址包括卷的标识、逻辑块地址(英文:logicalblockaddress,lba)和长度(英文:length)。逻辑块地址为用户数据存储于卷中的首地址。例如,用户数据是长度为4mb的文件,所述用户数据的逻辑地址为卷a、00001和4m。其中卷a为卷的标识,00001为逻辑块地址,4mb为所述用户数据长度。若所述用户数据是文件,那么所述逻辑地址包括文件名、偏移位置和长度。文件名是用户为文件分配的文件标识,偏移位置表示用户数据在文件中的相对位置。若所述用户数据是对象,那么所述逻辑地址包括对象名、偏移位置和长度。对象名是用户为对象分配的对象标识,偏移位置表示用户数据在对象中的相对位置。s420、应用服务器110划分所述用户数据为多个数据块,为每个数据块分配数据块标识。应用服务器110按照预设尺寸将所述用户数据划分为若干个数据块。应用服务器110按照预设尺寸划分用户数据时,会获得每个划分出的数据块的偏移地址,数据块的偏移地址为数据块位于所述用户数据中的位置。例如,所述预设尺寸为1mb,那么所述用户数据可以划分为4个数据块。应用服务器110为每个数据块分配数据块标识,所述数据块标识包括所述关键字。所述数据块标识用于唯一识别所述数据块,可以是数字,也可以是字母,还可以是数字和字母的组合。示例性的,一种实施方式是,所述数据块标识包括卷的标识、逻辑块地址以及偏移地址的组合,每两个相邻的数据块的偏移地址间的地址范围为预设尺寸的长度,所述数据块标识包括的关键字是卷的标识、逻辑块地址以及偏移地址中的任一个或者任意组合。例如,如表1所示,所述数据块标识包括的所述关键字是卷的标识、逻辑块地址和偏移地址的组合。4个数据块的数据块标识和关键字的表示,如表1所示。表1另一种实施方式是,所述数据块标识包括卷的标识、逻辑块地址以及偏移地址的组合之外,还包括其他字段,所述数据块标识包括的关键字是其他字段,或者其他字段与卷的标识、逻辑块地址、偏移地址中的一个或者多个的组合。例如,如表2所示,所述其他字段用于表示所述关键字,其他字段的内容可以是jpg,可以是pdf,也可以是doc,用户数据的数据类型用于识别用户数据的存储格式属性,例如,关键字jpg用于表示用户数据为图片;关键字pdf用于表示用户数据为pdf文档,关键字doc用于表示用户数据为word文档。所述数据块标识包括卷的标识、逻辑块地址、偏移地址和关键字。4个数据块的数据块标识和关键字的表示,如表2所示。卷的标识逻辑块地址偏移地址其他字段(用于表示关键字)卷a0000100001jpg卷a0000100004jpg卷a0000100009jpg卷a0000100013jpg表2又如,如表3所示,所述其他字段属于关键字中的一部分,所述关键字是其他字段,与卷的标识、逻辑块地址以及偏移地址的组合,其他字段的内容可以是gd,可以是sz,也可以是xiaoming,也可以是yinianji,gd用于表示用户数据的地域属性;例如,关键字gd用于表示用户数据为广东用户写入的数据;关键字sz用于表示用户数据为深圳用户写入的数据,关键字xiaoming,用于表示用户数据为xiaoming用户写入的数据,关键字yinianji,用于表示用户数据为一年级的用户写入的数据。4个数据块的数据块标识和关键字的表示,如表3所示。表3另一种实施方式是,所述数据块标识包括卷的标识、逻辑块地址以及数据块的序号的组合,按照这种实施方式,应用服务器110中保存每个数据块的序号与所述数据块的偏移地址之间的对应关系。所述数据块标识包括的关键字是卷的标识、逻辑块地址以及序号中的任一个或者任意组合,或者所述数据块标识包括的关键字是卷的标识、逻辑块地址以及偏移地址中的任一个或者任意组合。例如,如表4所示,所述数据块标识包括的所述关键字是卷的标识、逻辑块地址和序号的组合。4个数据块的数据块标识及其关键字的表示,如表4所示。表4另一种实施方式是,所述数据块标识包括卷的标识、逻辑块地址以及序号的组合之外,还包括其他字段,按照这种实施方式,应用服务器110中保存每个数据块的序号与所述数据块的偏移地址之间的对应关系。所述数据块标识包括的关键字是其他字段,或者是其他字段与卷的标识、逻辑块地址、序号中的一个或者多个的组合,或者,所述数据块标识包括的关键字是其他字段,与卷的标识、逻辑块地址、偏移地址中的一个或者多个的组合。例如,如表4所示,所述其他字段用于表示所述关键字。所述数据块标识包括卷的标识、逻辑块地址、序号和关键字。4个数据块的数据块标识和关键字的表示,如表5所示。卷的标识逻辑块地址序号其他字段(用于表示关键字)卷a000011pdf卷a000012pdf卷a000013pdf卷a000014pdf表5又如,如表6所示,所述其他字段属于关键字中的一部分,所述关键字是其他字段,与卷的标识、逻辑块地址以及序号的组合,比例通过关键字识别不同学科的成绩,用户数据为分数,其他字段的内容可以是shuxue,可以是yuwen,也可以是yinyue,也可以是meishu,例如,关键字shuxue表示用户数据表示的是数学成绩;关键字yuwen,表示用户数据表示的是语文成绩;关键字yinyue表示用户数据表示的是音乐成绩;关键字meishu表示用户数据表示的是美术成绩。4个数据块的数据块标识以及关键字的表示,如表6所示。表6s430、应用服务器110分别封装每个数据块和每个数据块的数据块标识,生成一个写请求消息。由于所述数据块标识包括所述关键字,因此所述写请求消息中也包括有所述关键字。这里的写请求消息与步骤s410中的写数据消息不同,步骤s410中的写数据消息是终端设备发送给应用服务器110的,而步骤s430中的写请求消息是应用服务器110发送给存储设备120的。s440、应用服务器110发送写请求消息给存储设备120。在本实施例中,应用服务器110分别发送每个写请求消息至一个存储设备120,以将划分出的每个数据块分别发送至不同的存储设备120。在其它实现方式中,应用服务器110发送每个写请求消息至同一个存储设备120,以将划分出的每个数据块发送至一个存储设备120。s450、存储设备120解析所述写请求消息,获得数据块和所述数据块所属的用户数据的关键字。s460、存储设备120调用存储器313中存储的所述数据类型识别插件,根据所述关键字输出所述用户数据的数据类型。所述数据类型识别插件用于对所述关键字进行数据类型生成算法的运算,所述关键字通过所述数据类型生成算法的运算后,输出所述用户数据的数据类型。s470、存储设备120根据所述数据类型,查找与所述数据类型匹配的目标物理存储块。在本实施方式中,存储设备120查询预先存储于存储器313中的,物理存储块中存储的数据的数据类型与所述数据类型的对应关系,根据所述数据类型,查找与所述数据类型匹配的目标物理存储块。一种实现方式为,通过查找保存于存储器313中的,物理存储块的存储类型的参数,查找存储类型的参数的值为所述数据类型的目标物理存储块。另一种实现方式为,通过查找物理存储块中的存储的其他数据,识别其他数据的数据类型,当其他数据的数据类型与所述数据块所属的用户数据的数据类型一致,则查找到与所述数据类型匹配的目标物理存储块为,与所述数据块所属的数据类型相同的其他数据所属的目标物理存储块。s480、当查找到所述目标物理存储块,存储设备120保存所述数据块至所述目标物理存储块。当查找到与所述数据类型匹配的目标物理存储块之后,所述存储设备120查询所述目标物理存储块的剩余存储容量;当所述目标物理存储块的剩余存储容量大于或等于所述数据块的数据量时,所述存储设备120将所述数据块保存至所述目标物理存储块。剩余存储容量指的是目标物理存储块中除被占用的存储空间之外的,未被占用的存储空间的容量。基于上述图4所示的实施例,在步骤s480中,当查找到存储类型参数的值为所述数据类型的目标物理存储块之后,存储设备120还用于查询目标物理存储块的状态参数,当所述状态参数的值表示所述目标物理存储块处于待写状态时,表明目标物理存储块当前可以存储数据块。基于上述图4所示的实施例,在步骤s480之后,存储设备120还用于查询所述目标物理存储块的剩余存储容量,当所述目标物理存储块的剩余存储容量小于划分数据块的预设尺寸时,修改目标物理存储块的状态参数的值,修改后的状态参数的值表示所述目标物理存储块处于写满状态。基于上述图4所示的实施例中,在步骤s470中,存储设备120查找到所述目标物理存储块,考虑到目标物理存储块的存储容量是固定大小的,为避免存储所述数据类型的用户数据的所有目标物理存储块的存储容量,在存储设备120接收到所述数据块之前已被写满,而无法存储所述数据块的情况发生,如果存储设备120查找到存储类型为所述数据类型的所有的目标物理存储块都处于写满状态,则存储设备120选择存储类型的参数的值为初始值的物理存储块,修改存储类型的参数的值和状态参数的值,修改后的存储类型的参数的值为所述数据类型,以及修改后的所述状态参数的值表示所述物理存储块处于待写状态。然后,存储设备120保存所述数据块至,存储类型的参数的值修改为所述数据类型,处于待写状态的目标物理存储块。在图4所示的实施例中,在步骤s470中,如果存储设备120没有查找到存储类型为所述数据类型的物理存储块,则存储设备120选择存储类型的参数的值为初始值的目标物理存储块,修改存储类型的参数的值和状态参数的值,修改后的存储类型的参数的值为所述数据类型,以及修改后的所述状态参数的值表示所述目标物理存储块处于待写状态。然后,存储设备120保存所述数据块至,存储类型的参数的值修改为所述数据类型,且处于待写状态的目标物理存储块。基于上述图4所示的实施例,在步骤s440中,应用服务器110生成写请求消息的同时,保存数据块标识和关键字的对应关系,以便于用户后续有操作用户数据的需求时,能够通过关键字查找到若干个数据块标识分别对应的数据块,以查找到相同类型的,被划分成多个数据块的所有用户数据。基于上述图4所示的实施例,当预设条件到达时,存储设备120将所述目标物理存储块中存储的所述数据块迁移至其他物理存储块,所述其他物理存储块的剩余存储容量大于或等于所述数据的数据量,并且所述其他物理存储块存储的数据块所属的用户数据的数据类型与所述数据块所属的用户数据的数据类型相同。预设条件包括:删除目标物理存储块中存储的部分数据块后,或者周期性的查询目标物理存储块中的所有数据块的数据量小于阈值容量,或者目标物理存储块的访问频率小于阈值频率,或者读取目标物理存储块中的所有数据块后。所述目标物理存储块与其他的物理存储块可以在同一存储设备120中,也可以在不同的存储设备120中。然后,存储设备120修改目标物理存储块的状态参数的值为初始值,修改后的状态参数的值表示所述物理存储块处于未分配状态。基于上述图4所示的实施例,在步骤s480之后,数据存储方法还包括:存储设备120将所述目标物理存储块的逻辑地址,发送给应用服务器110。应用服务器110根据所述目标物理存储块的逻辑地址,生成数据块的存储路径。如果物理存储块的逻辑地址是存储设备120的标识,则所述存储路径包括存储设备120的标识,以及所述数据块标识与所述目标物理存储块的标识的对应关系预先存储于所述存储设备120中,物理存储块的标识用于识别存储设备120中的每个物理存储块。如果物理存储块的逻辑地址是存储设备120的标识和目标物理存储块的标识的组合,则所述存储路径包括存储设备120的标识和所述目标物理存储块的标识的组合。如果物理存储块的逻辑地址是物理存储块的标识,存储路径包括物理存储块的标识,所有的存储设备中的物理存储块的标识是唯一的,应用服务器110中预先保存有物理存储块的标识和存储设备120的映射关系。应用服务器110依据所述目标物理存储块的逻辑地址,生成所述数据块存储于所述存储设备120中的存储路径,应用服务器110保存数据块标识和所述数据块的存储路径的对应关系。如果用户后续有读取用户数据的需求时,能够通过关键字查找到若干个数据块标识,再通过数据块存储于所述存储设备120中的存储路径,从所述存储设备120中读取到所述数据块,以获取到相同类型的,被划分成多个数据块的所有用户数据。基于图4所示的实施例,在实现相同类型的用户数据存储于物理存储块后,用户需要读取相同数据类型的用户数据时,应用服务器110接收用户通过终端设备发送的,包括用于识别数据类型的关键字的读数据消息,所述读数据消息还包括待读取的用户数据的逻辑地址。应用服务器110获取用于识别数据类型的关键字,并按照预设尺寸将所述逻辑地址的长度划分为若干段,为每一段长度分配一个长度标识。应用服务器110查询所述关键字对应的所有数据块标识。当应用服务器110查询到数据块标识包括长度标识,则查询包括所述长度标识的所述数据块标识,对应的存储路径,根据所述存储路径,发送包括数据块标识的读取请求消息,至包括所述数据块的存储设备120。所述读取请求消息和之前描述的读数据消息不同。存储设备120收到所述读取请求消息后,在存储所述数据块的目标物理存储块中,依据数据块标识查询数据块,并发送查询到的数据块至应用服务器110,由应用服务器110转发查询到的数据块至终端设备,或者存储设备120发送查询到的数据块到终端设备。如果所述存储路径包括存储设备120的标识,所述应用服务器110依据所述存储设备120的标识,发送所述读取请求消息至所述存储设备120,所述读取请求消息包括数据块标识,所述数据块标识与所述目标物理存储块的标识的对应关系预先存储于所述存储设备120中,以使所述存储设备120在包括所述数据块的物理存储块中,查找所述数据块。如果所述存储路径包括存储设备120的标识和目标物理存储块的标识的组合,所述应用服务器110依据所述存储设备120的标识,发送所述读取请求消息至所述存储设备120,所述读取请求消息包括数据块标识和目标物理存储块的标识,以使所述存储设备120在包括所述数据块的物理存储块中,查找所述数据块。如果所述存储路径包括目标物理存储块的标识,应用服务器110中预先保存有目标物理存储块的标识和存储设备120的映射关系,所述应用服务器110查找目标物理存储块的标识和存储设备120的映射关系,获取所述目标物理存储块所属的存储设备120的标识,依据所述存储设备120的标识,发送所述读取请求消息至所述存储设备120,所述读取请求消息包括数据块标识和目标物理存储块的标识,以使所述存储设备120在包括所述数据块的目标物理存储块中,查找所述数据块。如果用户发送读数据消息,是通过块接口与应用服务器110通信,逻辑地址包括卷的标识、逻辑块地址(英文:logicalblockaddress,lba)和长度(英文:length)。逻辑块地址为用户数据存储于卷中的首地址。为每一段长度分配一个长度标识,一种实现方式为,获得每一段在逻辑地址中的偏移地址,每一段的长度标识为卷的标识、逻辑块地址和偏移地址的组合。另一种实现方式为,每一段的长度标识为卷的标识、逻辑块地址和序号的组合。如果用户发送读数据消息,是通过文件接口与应用服务器110通信,所述逻辑地址包括文件名、偏移位置和用户数据长度。偏移位置为用户数据存储于文件中的首地址。为每一段长度分配一个长度标识,一种实现方式为,获得每一段在逻辑地址中的偏移地址,每一段的长度标识为文件名、偏移位置和偏移地址的组合。另一种实现方式为,每一段的长度标识为文件名、偏移位置和序号的组合。如果用户发送用户数据给应用服务器110,是通过对象接口与应用服务器110通信,所述逻辑地址包括对象名、偏移位置和用户数据长度。偏移位置为部分用户数据存储于对象中的首地址。为每一段长度分配一个长度标识,一种实现方式为,获得每一段在逻辑地址中的偏移地址,每一段的长度标识为对象名、偏移位置和偏移地址的组合。另一种实现方式为,每一段的长度标识为对象名、偏移位置和序号的组合。通过上述实施例,在实现相同类型的用户数据存储于目标物理存储块后,如果用户需要删除相同类型的所有用户数据时,应用服务器110接收用户通过终端设备发送的,携带有用于识别数据类型的关键字的删除数据消息,获取用于识别数据类型的关键字,查询所述关键字对应的所有数据块标识,查询所述数据块标识对应的数据块的存储路径,发送包括数据块标识的删除请求消息至包括所有数据块的所有存储设备120。每个存储设备120收到所述删除请求消息后,将表示所述目标物理存储块处于待写状态或者写满状态的状态参数的值进行修改,修改后的状态参数的值表示所述目标物理存储块处于回收状态。每个存储设备120在存储所述数据块的目标物理存储块中,依据数据块标识查询数据块,并删除查询到的数据块。然后,存储设备120将表示所述目标物理存储块处于回收状态的状态参数的值进行修改,修改后的状态参数的值表示所述目标物理存储块处于未分配状态。通过上述实施例,在实现相同类型的用户数据存储于目标物理存储块后,如果用户需要删除相同数据类型中的部分用户数据时,应用服务器110接收用户通过终端设备发送的,包括用于识别数据类型的关键字的删除数据消息。所述删除数据消息还包括部分用户数据的逻辑地址。应用服务器110获取用于识别数据类型的关键字,并按照预设尺寸将所述逻辑地址的长度划分为若干段,为每一段长度分配一个长度标识。应用服务器110查询所述关键字对应的所有数据块标识,当查询到数据块标识包括长度标识,则查询包括所述长度标识的所述数据块标识,对应的存储路径,发送包括数据块标识的删除请求消息至包括所述数据块的存储设备120。所述删除请求消息和之前描述的删除数据消息不同。存储设备120收到所述删除请求消息后,将表示所述目标物理存储块处于待写状态或者写满状态的状态参数的值进行修改,修改后的状态参数的值表示所述目标物理存储块处于回收状态。所述存储设备120在用于存储所述数据块的目标物理存储块中,依据数据块标识查询数据块,并删除查询到的数据块。然后,存储设备120将表示所述目标物理存储块处于回收状态的状态参数的值进行修改,修改后的状态参数的值表示所述目标物理存储块处于待写状态。目标物理存储块中的所有用户数据都被删除,或者删除了目标物理存储块中的大部分的用户数据,存储设备120后续接收到的相同类型的用户数据,可以存储于目标物理存储块中。但是,如果后续存储设备120不能及时接收到,或者用户不再发送相同类型的用户数据,存储设备120中,剩余的没有存储任何数据块的物理存储块的数量有限,为充分利用存储设备120的存储空间,在删除存储于目标物理存储块中的数据块后,存储设备120统计所述物理存储块的访问频率,如果所述目标物理存储块的访问频率小于阈值频率,存储设备120查询所述目标物理存储块中的所有数据块的数据量,如果所述目标物理存储块中的所有数据块的数据量大于零,则将所述目标物理存储块中的所有数据块,发送至存储相同类型的用户数据的其他物理存储块中。所述其他物理存储块的访问频率大于或等于所述频率阈值,所述其他物理存储块与所述物理存储块可以在同一存储设备120中,也可以在不同的存储设备120中。然后,存储设备120修改所述目标物理存储块的状态参数的值为初始值,修改后的状态参数的值表示所述物理存储块处于未分配状态。如果所述目标物理存储块的所有数据块的数据量等于零,则存储设备120修改目标物理存储块的状态参数的值为初始值,修改后的状态参数的值表示所述物理存储块处于未分配状态。用户发送删除数据消息,与应用服务器110通信时的逻辑地址的实现细节,可参照用户发送读取数据消息的细节,在这里不再赘述。基于以上实施例,如果剩余的物理存储块的数量较少,为避免相同类型的用户数据分散,且碎片式的分散存储在多个物理存储块中,而没有更多的物理存储块用于存储其他数据类型的用户数据,所述存储设备120统计存储相同类型的用户数据的其他物理存储块的剩余存储容量,当其他物理存储块的剩余存储容量大于所述物理存储块的所有数据块的数据量,且所述物理存储块的所有的数据块的数据量小于阈值容量,存储设备120将所述目标物理存储块中的所有数据块,发送至存储相同类型的用户数据的其他物理存储块中。所述物理存储块与其他的物理存储块可以在同一存储设备120中,也可以在不同的存储设备120中。然后,其他的物理存储块所属的存储设备120,发送所述其他物理存储块的逻辑地址给应用服务器110。应用服务器110依据所述其他物理存储块的逻辑地址,生成所述数据块存储于所述存储设备120中的存储路径。以及,应用服务器110修改数据块标识和所述数据块的存储路径的对应关系,便于后续,用户有读取移动至所述其他物理存储块中的用户数据的需求时,能够通过关键字查找到若干个数据块标识分别对应的数据块,再通过数据块存储于所述其他物理存储块所属的存储设备120中的存储路径,从所述其他物理存储块所属的所述存储设备120中,读取到所述数据块,以获取到相同类型的,被划分成数据块的用户数据。另外,存储设备120删除所述物理存储块的所有的用户数据。然后所述存储设备120修改物理存储块的状态参数的值,修改后的状态参数的值表示所述物理存储块处于未分配状态。请参见图5,图5为本发明实施例提供的一种数据存储设备的结构图,如图5所示,本发明实施例提供的数据存储设备510包括接收单元511和处理器512。接收单元511和处理器512连接,下面详细介绍数据存储设备510中的每个模块的功能:接收单元511,用于接收写请求消息,所述写请求消息包括数据和所述数据的关键字,所述关键字用于识别所述数据的数据类型。本实施方式中接收单元511接收写请求消息的功能,可以通过存储设备中的接口311实现,写请求消息的具体实现细节可以参考图4所示的步骤s430、s440和s450描述的具体细节,在这里不再赘述。处理器512,用于根据所述关键字确定所述数据的数据类型;根据所述数据类型查找与所述数据类型匹配的目标物理存储块,所述目标物理存储块为物理地址连续的物理存储块,还用于将所述数据保存至所述目标物理存储块。本实施方式中处理器512根据所述关键字确定所述数据的数据类型,根据所述数据类型查找与所述数据类型匹配的目标物理存储块的功能,可以通过存储设备中的处理器512调用存储器313里面的程序实现实现。本实施方式中确定所述数据的数据类型的具体实现细节,可以参考图4所示的步骤s460,在这里不再赘述。以及,确定目标物理存储块的具体实现细节,可以参考图4所示的步骤s470所描述的具体细节,在这里不再赘述。以及,保存数据至目标物理存储块的具体实现细节,可以参考图4所示的步骤s480所描述的具体细节,在这里不再赘述。作为一种可选的实施方式,所述存储设备中预先保存有所述数据类型与所述目标物理存储块所存储的数据的类型之间的对应关系;所述处理器512,还用于根据所述数据类型以及所述对应关系查找所述目标物理存储块。所述存储设备中预先保存有所述数据类型与所述目标物理存储块所存储的数据的类型之间的对应关系的功能,可以通过存储器313存储所述数据类型与所述目标物理存储块所存储的数据的类型之间的对应关系来实现。本实施方式中,根据所述数据类型以及所述对应关系,查找所述目标物理存储块的具体实现细节,可以参考基于图4所示的步骤s470的具体细节,以及与步骤s470相关的可能的实现方式所描述的具体细节,在这里不再赘述。作为一种可选的实施方式,所述目标物理存储块存储有其他数据,所述其他数据的数据类型与所述数据的数据类型相同。本实施方式中,处理器512将所述数据保存至所述目标物理存储块的具体实现细节,可以参考基于图4所示的步骤s470的具体细节,以及与步骤s470相关的可能的实现方式所描述的具体细节,在这里不再赘述。作为一种可选的实施方式,当确定所述目标物理存储块处于待写状态时,所述处理器512,还用于将所述数据保存至所述目标物理存储块。本实施方式中,处理器512将所述数据保存至所述目标物理存储块的具体实现细节,可以参考基于图4所示的步骤s470的具体细节,以及与步骤s470相关的可能的实现方式所描述的具体细节,在这里不再赘述。作为一种可选的实施方式,所述处理器512,还用于查询所述目标物理存储块的剩余存储容量;当所述目标物理存储块的剩余存储容量大于或等于所述数据的数据量时,所述处理器512,还用于将所述数据保存至所述目标物理存储块。本实施方式中,处理器512将所述数据保存至所述目标物理存储块的具体实现细节,可以参考基于图4所示的步骤s470的具体细节,以及与步骤s470相关的可能的实现方式所描述的具体细节,在这里不再赘述。作为一种可选的实施方式,当预设条件到达时,所述处理器512,还用于将所述目标物理存储块中存储的所述数据迁移至其他物理存储块,所述其他物理存储块的剩余存储容量大于或等于所述数据的数据量,并且所述其他物理存储块存储的数据的数据类型与所述数据的数据类型相同。本实施方式中,处理器512将所述数据保存至所述其他物理存储块的具体实现细节,可以参考基于图4所示的步骤s480之后的具体细节,在这里不再赘述。作为一种可选的实施方式,处理器512还用于访问目标物理存储块中的数据,具体为读取或者删除目标物理存储块中的数据,具体细节可以参考基于图4所示的步骤s480之后的具体细节,在这里不再赘述。请参见图6,图6为本发明实施例提供的另一种数据存储设备的结构图,如图6所示,本发明实施例提供的数据存储设备610包括接口611和处理器612。接口611和处理器612连接。接口611,用于接收写请求消息,所述写请求消息包括数据和所述数据的关键字,所述关键字用于识别所述数据的数据类型。本实施方式中接口611接收写请求消息的细节可参考图4所示的步骤s430、s440和s450描述的具体细节,在这里不再赘述。处理器612,用于根据所述关键字确定所述数据的数据类型;根据所述数据类型查找与所述数据类型匹配的目标物理存储块,所述目标物理存储块为物理地址连续的物理存储块,还用于将所述数据保存至所述目标物理存储块。本实施方式中处理器612确定所述数据的数据类型的具体实现细节,可以参考图4所示的步骤s460,在这里不再赘述。以及,处理器612确定目标物理存储块的具体实现细节,可以参考图4所示的步骤s470所描述的具体细节,在这里不再赘述。以及,处理器612保存数据至目标物理存储块的具体实现细节,可以参考图4所示的步骤s480所描述的具体细节,在这里不再赘述。作为一种可选的实施方式,所述存储设备中预先保存有所述数据类型与所述目标物理存储块所存储的数据的类型之间的对应关系;所述处理器612,还用于根据所述数据类型以及所述对应关系查找所述目标物理存储块。所述存储设备中预先保存有所述数据类型与所述目标物理存储块所存储的数据的类型之间的对应关系的功能,可以通过存储器313存储所述数据类型与所述目标物理存储块所存储的数据的类型之间的对应关系来实现。在其他实施方式中,所述存储设备中预先保存有所述数据类型与所述目标物理存储块所存储的数据的类型之间的对应关系的功能,可以通过处理器612存储所述数据类型与所述目标物理存储块所存储的数据的类型之间的对应关系来实现。本实施方式中,处理器612根据所述数据类型以及所述对应关系,查找所述目标物理存储块的具体实现细节,可以参考基于图4所示的步骤s470的具体细节,以及与步骤s470相关的可能的实现方式所描述的具体细节,在这里不再赘述。作为一种可选的实施方式,所述目标物理存储块存储有其他数据,所述其他数据的数据类型与所述数据的数据类型相同。本实施方式中,处理器612根据所述数据类型以及所述对应关系,查找所述目标物理存储块的具体实现细节,可以参考基于图4所示的步骤s470的具体细节,以及与步骤s470相关的可能的实现方式所描述的具体细节,在这里不再赘述。作为一种可选的实施方式,当确定所述目标物理存储块处于待写状态时,所述处理器612,还用于将所述数据保存至所述目标物理存储块。本实施方式中,处理器612根据所述数据类型以及所述对应关系,查找所述目标物理存储块的具体实现细节,可以参考基于图4所示的步骤s470的具体细节,以及与步骤s470相关的可能的实现方式所描述的具体细节,在这里不再赘述。作为一种可选的实施方式,所述处理器612,还用于查询所述目标物理存储块的剩余存储容量;当所述目标物理存储块的剩余存储容量大于或等于所述数据的数据量时,所述处理器612,还用于将所述数据保存至所述目标物理存储块。本实施方式中,处理器612将所述数据保存至所述目标物理存储块的具体实现细节,可以参考基于图4所示的步骤s470的具体细节,以及与步骤s470相关的可能的实现方式所描述的具体细节,在这里不再赘述。作为一种可选的实施方式,当预设条件到达时,所述处理器612,还用于将所述目标物理存储块中存储的所述数据迁移至其他物理存储块,所述其他物理存储块的剩余存储容量大于或等于所述数据的数据量,并且所述其他物理存储块存储的数据的数据类型与所述数据的数据类型相同。本实施方式中,处理器612将所述数据保存至所述其他物理存储块的具体实现细节,可以参考基于图4所示的步骤s480之后的具体细节,在这里不再赘述。作为一种可选的实施方式,处理器612还用于访问目标物理存储块中的数据,具体为读取或者删除目标物理存储块中的数据,具体细节可以参考基于图4所示的步骤s480之后的具体细节,在这里不再赘述。本发明实施例提供了一种数据存储方法及设备,所述方法应用于存储设备中,所述方法包括:存储设备接收写请求消息,写请求消息包括数据和数据的关键字,关键字用于识别数据的数据类型;存储设备根据关键字确定数据的数据类型。然后,存储设备根据数据类型查找与数据类型匹配的目标物理存储块,目标物理存储块为物理地址连续的物理存储块;然后,存储设备将数据保存至目标物理存储块。存储设备根据关键字确定出数据的数据类型,将相同数据类型的数据存储于地址连续的目标物理存储块中,避免随机存储相同类型的数据。如果需要查找或访问相同类型的数据,避免遍历存储的所有数据,降低了数据查找和访问时间,提高了数据的查找和访问效率。另外,将相同数据类型的数据存储于地址连续的目标物理存储块中,避免相同类型的数据存储在不同的存储介质上,避免访问相同类型的数据时,多次访问存储于不同存储介质上的数据,降低了访问时间,提高了数据的访问效率。在本申请所提供的几个实施例中,应该理解到,所揭露的系统,设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1