信息的传输方法、装置、终端、服务器及存储介质与流程

文档序号:21550468发布日期:2020-07-21 10:56阅读:165来源:国知局
信息的传输方法、装置、终端、服务器及存储介质与流程

本申请涉及计算机技术领域,尤其涉及一种信息的传输方法、装置、终端、服务器及存储介质。



背景技术:

随着计算机的发展,信息技术不断进步,互联网已然成为人们生活的一部分,人们每时每刻会通过互联网产生大量的数据,持续的数据增长必然对存储系统有着紧要需求。然而,当数据在网络传输的过程中,很可能受到网络环境以及硬件等的影响,从而产生数据错误,只有对接收到的数据进行校验,才能保障数据在网络传输中不会丢失或出错。



技术实现要素:

本申请的多个方面提供一种信息的传输方法、装置、终端、服务器及存储介质,用以减少额外校验信息的计算,降低计算资源的损耗。

本申请实施例提供一种信息的传输方法,包括:获取多个第一待存储数据;划分所述多个第一待存储数据到对应至少一个存储区域中;根据划分结果,确定划分后的第一待存储数据对应的第一校验信息的作用域;针对所述至少一个存储区域,发送对应的至少一个第一待存储数据、第一校验信息以及划分后的作用域。

本申请实施例还提供一种信息的传输方法,包括:接收终端发送的至少一个待存储数据、待存储数据的校验信息以及该校验信息的作用域;根据所述作用域确定对应的待存储数据,并根据对应的校验信息,对该待存储数据进行校验;当校验成功后,存储所述待存储数据。

本申请实施例还提供一种信息的传输系统,包括:终端以及数据存储节点;所述终端,用于获取多个第一待存储数据;划分所述多个第一待存储数据到对应至少一个存储区域中;根据划分结果,确定划分后的第一待存储数据对应的第一校验信息的作用域;针对所述至少一个存储区域,发送对应的至少一个第一待存储数据、第一校验信息以及划分后的作用域;数据存储节点,用于接收终端发送的至少一个第一待存储数据、第一待存储数据的第一校验信息以及该第一校验信息的作用域;根据所述作用域确定对应的第一待存储数据,并根据对应的第一校验信息,对该第一待存储数据进行校验;当校验成功后,存储所述第一待存储数据。

本申请实施例还提供一种信息的传输装置,包括:获取模块,用于获取多个第一待存储数据;划分模块,用于划分所述多个第一待存储数据到对应至少一个存储区域中;确定模块,用于根据划分结果,确定划分后的第一待存储数据对应的第一校验信息的作用域;发送模块,用于针对所述至少一个存储区域,发送对应的至少一个第一待存储数据、第一校验信息以及划分后的作用域。

本申请实施例还提供一种终端,包括存储器、处理器以及通信组件;所述存储器,用于存储计算机程序;所述通信组件,用于针对所述至少一个存储区域,发送对应的至少一个第一待存储数据、第一校验信息以及划分后的作用域;所述处理器,用于执行所述计算机程序,以用于:获取多个第一待存储数据;划分所述多个第一待存储数据到对应至少一个存储区域中;根据划分结果,确定划分后的第一待存储数据对应的第一校验信息的作用域。

本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被一个或多个处理器执行时,致使所述一个或多个处理器实现上述信息的传输方法中的步骤。

本申请实施例还提供一种信息的传输装置,包括:接收模块,用于接收终端发送的至少一个待存储数据、待存储数据的校验信息以及该校验信息的作用域;校验模块,用于根据所述作用域确定对应的待存储数据,并根据对应的校验信息,对该待存储数据进行校验;存储模块,用于当校验成功后,存储所述待存储数据。

本申请实施例还提供一种服务器,包括存储器、处理器以及通信组件;所述存储器,用于存储计算机程序;所述通信组件,用于接收终端发送的至少一个待存储数据、待存储数据的校验信息以及该校验信息的作用域;所述处理器,用于执行所述计算机程序,以用于:根据所述作用域确定对应的待存储数据,并根据对应的校验信息,对该待存储数据进行校验;当校验成功后,存储所述待存储数据。

本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被一个或多个处理器执行时,致使所述一个或多个处理器实现上述信息的传输方法中的步骤。

在本申请实施例中,根据对多个第一待存储数据划分到对应至少一个存储区域的结果,确定划分后的第一待存储数据对应的第一校验信息的作用域,并针对至少一个存储区域,发送对应的至少一个第一待存储数据、第一校验信息以及划分后的作用域,通过确定划分后的作用域,减少对待存储数据由于划分结果导致的额外校验信息的计算,降低计算资源的损耗,且降低信息访问延时,同时,数据存储节点在接收到第一待存储数据后,可以根据划分后的作用域,确定对应的第一待存储数据,并根据该第一待存储数据的校验信息对该第一待存储数据进行校验。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本申请一示例性信息的传输系统的结构示意图;

图2为本申请另一示例性实施例的信息的传输方法的流程示意图;

图3为本申请另一示例性实施例提供的又一种信息的传输方法的流程示意图;

图4为本申请又一示例性实施例提供的信息的传输装置的结构示意图;

图5为本申请又一示例性实施例提供的又一种信息的传输装置的结构示意图;

图6为本申请又一示例性实施例提供的一种终端的结构示意图;

图7为本申请又一示例性实施例提供的一种服务器的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在分布式存储系统中,用户的io请求经过数据传输链路最后写入物理磁盘。在小概率下,由于内存、cpu、硬盘、网络、操作系统、应用程序的bug都可能会导致数据错误,即数据静默破坏。通过在用户的io请求中携带校验信息,在分布式存储系统的数据链路中传输,在数据落盘前做一次数据校验,保障数据传输完整性。通常分布式存储系统会对用户数据按照存储策略进行切分合并,会引入多次额外的校验信息的计算,提高计算资源损耗。

在本申请一些实施例中,根据对多个第一待存储数据划分到对应至少一个存储区域的结果,确定划分后的第一待存储数据对应的第一校验信息的作用域,并针对至少一个存储区域,发送对应的至少一个第一待存储数据、第一校验信息以及划分后的作用域,通过确定划分后的作用域,减少对待存储数据由于划分结果导致的额外校验信息的计算,降低计算资源的损耗,且降低信息访问延时,同时,数据存储节点在接收到第一待存储数据后,可以根据划分后的作用域,确定对应的第一待存储数据,并根据该第一待存储数据的校验信息对该第一待存储数据进行校验。

以下结合附图,详细说明本申请各实施例提供的技术方案。

图1为本申请一示例性实施例提供的一种信息的传输系统的结构示意图。如图1所示,该传输系统100包括:终端101以及数据存储节点102。

其中,终端101可以是任何具有一定计算能力的设备,例如,可以是智能手机、笔记本、pc(personalcomputer)电脑等。终端101的基本结构包括:至少一个处理器。处理器的数量取决于终端101的配置和类型。终端101也可以包括存储器,该存储器可以为易失性的,例如ram,也可以为非易失性的,例如只读存储器(read-onlymemory,rom)、闪存等,或者也可以同时包括两种类型。存储器内通常存储有操作系统(operatingsystem,os)、一个或多个应用程序,也可以存储有程序数据等。除了处理单元和存储器之外,终端101还包括一些基本配置,例如网卡芯片、io总线、摄像头以及音视频组件等。可选地,终端101还可以包括一些外围设备,例如键盘、鼠标、输入笔、打印机等。其它外围设备在本领域中是众所周知的,在此不做赘述。

在一些实例中,该终端101也可以以服务器的形式呈现。

数据存储节点102是指可以在网络虚拟环境中进行存储的服务器。在物理实现上,数据存储节点102可以是任何能够提供计算服务,响应服务请求,并进行处理的设备,例如可以是常规服务器、云服务器、云主机、虚拟中心等。数据存储节点102的构成主要包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似。数据存储节点102可以具有多个,且每个数据存储节点102都具有相同的功能,属于传输系统100中的数据存储节点。

在本实施例中,终端101,用于获取多个第一待存储数据;划分多个第一待存储数据到对应至少一个存储区域中;根据划分结果,确定划分后的第一待存储数据对应的第一校验信息的作用域;针对至少一个存储区域,发送对应的至少一个第一待存储数据、第一校验信息以及划分后的作用域,至数据存储节点102。

数据存储节点102,用于接收终端101发送的至少一个第一待存储数据、第一待存储数据的第一校验信息以及该第一校验信息的作用域;根据作用域确定对应的第一待存储数据,并根据对应的第一校验信息,对该第一待存储数据进行校验;当校验成功后,存储第一待存储数据。

在一些实例中,传输系统100还可以包括存储管控节点103。

存储管控节点103是指可以在网络虚拟环境中进行存储管理的服务器,用于管理多个数据存储节点102。在物理实现上,存储管控节点103可以是任何能够提供计算服务,响应服务请求,并进行处理的设备,例如可以是常规服务器、云服务器、云主机、虚拟中心等。存储管控节点103的构成主要包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似。

在一些实例中,存储管控节点103,用于接收终端101发送的查询请求,根据查询请求中携带的划分前的作用域,确定每个第一待存储数据对应的存储区域以及每个第一待存储数据在存储区域的存储位置;发送确定每个第一待存储数据对应的存储区域以及每个第一待存储数据在存储区域的存储位置至终端101。

在本实施例中,终端101、数据存储节点102与存储管控节点103进行网络连接,终端101、数据存储节点102与存储管控节点103之间可以是有线网络连接。若终端101通过移动网络与数据存储节点102或存储管控节点103通信连接,则该移动网络的网络制式可以为2g(gsm)、2.5g(gprs)、3g(wcdma、td-scdma、cdma2000、utms)、4g(lte)、4g+(lte+)、wimax等中的任意一种。

下面结合方法实施例,终端101传输信息的过程进行详细说明。

图2为本申请另一示例性实施例的信息的传输方法的流程示意图。本申请实施例提供的该方法200由终端执行,该方法200包括以下步骤:

201:获取多个第一待存储数据。

202:划分多个第一待存储数据到对应至少一个存储区域中。

203:根据划分结果,确定划分后的第一待存储数据对应的第一校验信息的作用域。

204:针对对应的每个存储区域,发送对应的至少一个第一待存储数据、第一校验信息以及划分后的作用域。

以下针对上述步骤进行详细地阐述:

201:获取多个第一待存储数据。

其中,第一待存储数据是指将要存储至分布式存储系统中的数据存储节点(如,存储服务器)中的数据。

在一些实例中,获取多个第一待存储数据,包括:接收多个第二待存储数据,将各个第二待存储数据转换为预置io向量数据结构;根据预置合并规则,合并转换后的多个第二待存储数据作为多个第一待存储数据。

其中,io向量数据结构(也可以称为iovector或structiovect)是指一种向量元素,可以包括待存储数据的存储位置以及存储长度,例如,可以是由指向数据缓冲区的指针iov_base(可记为起始存储位置offset或存储地址offset或存储标识offset)和表示缓冲区中数据长度的iov_len(可记为存储长度length)构成。该io向量数据结构可唯一标识一个待存储数据,可以是第二待存储数据,也可以是第一待存储数据。

在一些实例中,通过接收到append请求中的structiovec的offset以及length来对第二待存储数据进行structiovec的数据结构的转换。

第二待存储数据是指用户通过终端发送的存储数据,该存储数据需要经过io向量数据结构的转换,进而生成第一待存储数据。

预置合并规则是指合并条件,可以包括合并数据的占用空间阈值(即数据大小阈值),还可以包括合并数据的数量阈值等等。可以通过配置信息对预置合并规则进行设置,如,设置maxappendgroupbytes配置信息来设置合并append请求的数量阈值(即合并数据的数量阈值),通过对配置信息设置合并规则。

例如,用户可以通过终端调用分布式存储系统的客户端的写入接口,如append接口,将第二待存储数据进行写入,并发送append请求至该客户端的fileclient文件客户端模块,客户端的fileclient接收到该append请求中的第二待存储数据以及该第二待存储数据的offset以及length后,根据该offset以及length,将该第二待存储数据转换为structiovec数据结构,并将已经转换为structiovec数据结构的第二待存储数据发送至客户端中的streamclient流客户端模块,客户端中的streamclient根据预置合并规则中的合并的append请求的数量阈值10个,以及合并数据的占用空间阈值1m,确定将要合并的append请求的数量9个,终端的该客户端的streamclient将当前接收到的9个append请求中已经转换为structiovec数据结构的第二待存储数据合并为多个第一待存储数据。其中,一个append请求中的已经转换为structiovec数据结构的第二待存储数据可以作为一个第一待存储数据。

需要说明的是,一个append请求中携带一个待存储数据,还可以携带至少一个structiovec数据结构的待存储数据。当该append请求中携带的是已经为structiovec数据结构的待存储数据时,则不需要在进行structiovec数据结构的转换了。

在合并多个append请求中的已转换为structiovec数据结构的待存储数据时,除了将多个已转换为structiovec数据结构的待存储数据进行组合以外,其各自对应的校验信息,即第一校验信息也需要进行组合成一个校验信息列表,该列表是这些数据的第一校验信息的集合。

在一些实例中,将各个第二待存储数据转换为预置io向量结构数据,包括:基于预置数据格式条件,将多个第二待存储数据转换为符合预置数据格式条件的预置io向量结构数据。

其中,预置数据格式条件是指数据存储的形式,除了满足structiovec数据结构,还可以对数据进行数据对齐,当用户对预先指示了数据对齐的条件,则可以将一个append请求中的一个数据转换为iovecs数组,且可以按照4kb+64b的长度转换用户数据到iovecs数组。当用户没有预先指示了数据对齐的条件,则可以将一个append请求中的一个数据转换一个structiovec。

需要说明的是,还可以把数据切成一个个小packet包,然后排成队列dataquene,给每一个packet计算crc校验码,packet的大小是预定的,默认是512字节;通过处理该dataquene,来检查每个校验码。但是,这种方式引入了过多的校验码计算,且由于每个校验码都会产生一定字节,不但浪费了过多的计算资源还占用了过多的存储空间,造成贷款损耗,同时使得访问延迟。

而在本申请的实施例中,若用户对数据对齐有需求,则每4kb+64b的待存储数据会产生32字节的校验信息,若用户对数据对齐无需求,则用户每次通过append请求传进来的待存储数据只会消耗32字节的校验信息,由于校验信息对应的待存储数据的大小相较而言较大,则该校验信息就没有占用过多存储空间,不会过多消耗带宽损耗,则这两种应用场景数据传输带宽损耗都得到了有效降低。

用户可以通过配置信息,预先设置对预置数据格式条件进行设置。

例如,根据前文所述,当接收到任一第二待存储数据时,读取对应的预置数据格式的配置信息,获取到预置数据格式为不进行数据对齐,则根据接收到的offset以及length,将该第二待存储数据直接转换为一个structiovec,且该structiovec对应一个32字节的校验信息。

在一些实例中,该方法200还包括:在接收第二待存储数据时,且接收到第二待存储数据对应的作用域;当第二待存储数据具有对应的第二检验信息时,则直接将第二校验信息作为第一校验信息,并直接记录第二待存储数据对应的作用域,作为第一校验信息的作用域。

其中,作用域是指作用于待存储数据的范围或作用于校验信息的范围,可以包括指向数据缓冲区的指针iov_base(可记为offset)和表示缓冲区中数据长度的iov_len(可记为length)构成,应理解,该作用域与structiovec中的指向数据缓冲区的指针iov_base(可记为offset)和表示缓冲区中数据长度的iov_len(可记为length)相同。

第二校验信息是指用于对待存储数据的进行查错的校验码,可以为crc校验码。应理解,在本实施例中,该第二校验信息与第一校验信息相同。

例如,根据前文所述,当终端的分布式存储客户端接收到一个append请求,该请求中除了包含第二待存储数据外,还包括该第二待存储数据的crc校验码以及offset以及length,则根据offset以及length,该第二待存储数据在经过structiovec数据结构的转换后,直接将该crc校验码作为对应的第一待存储数据的crc校验码,且将接收到的offset以及length作为该第一待存储数据的crc校验码的作用域。

在一些实例中,该方法200还包括:当第二待存储数据不具有对应的第二检验信息时,则根据第二待存储数据对应的作用域,确定第二待存储数据的第二检验信息,并作为第一校验信息,记录第二待存储数据对应的作用域,作为第一校验信息的作用域。

其中,当未接收到该第二待存储数据的crc校验码,则需要通过crc校验算法计算该crc校验码。

例如,根据前文所述,当终端的分布式存储客户端接收到一个append请求,该请求中除了包含第二待存储数据外,还包括该第二待存储数据的offset以及length,但未包含其crc校验码,则该客户端需要根据offset以及length所指向的第二待存储数据以及crc32算法,计算crc校验码。

在一些实例中,该方法200还包括:若写buffer缓存开关打开,将已经转换为预置io向量数据结构的第二待存储数据,写到本地cache缓存中,当本地cache缓存的存储空间达到阈值或塞满后,进行flush下刷已经转换为预置io向量数据结构的第二待存储数据。

当本地cache缓存持续接收多个已经转换为预置io向量数据结构的第二待存储数据时,需要维持一个校验信息列表,该列表是本地cache缓存接收到的多个已经转换为预置io向量数据结构的第二待存储数据的校验信息的集合,且还伴随着对应的作用域。

当写buffer缓存开关关闭,则可以直接通过终端的分布式存储系统的客户端接收已经转换为预置io向量数据结构的第二待存储数据,无需在经过缓存下刷。

例如,根据前文所述,如果终端的分布式存储系统的客户端的buffer写开关打开,append请求中的已经转换为预置io向量数据结构的第二待存储数据会先写该客户端的内存缓存中,同时需要维护该一个校验信息列表,记录该客户端的内存缓存中的所有校验信息,当内存缓存的存储空间达到阈值时,则flush数据和校验信息列表到该客户端中的streamclient流客户端模块,streamclient收到这些数据后,会根据配置maxappendgroupbytes设定的合并规则,合并数据,即合并多个已经转换为预置io向量数据结构的第二待存储数据,同时在需要的情况下,合并对应的校验信息列表形成一个信息的校验信息列表,记录多个已经转换为预置io向量数据结构的第二待存储数据的第二校验信息,即第一待存储数据的第一校验信息。

应理解,无论是否通过本地内存缓存来暂存已经转换为预置io向量数据结构的第二待存储数据,以及第二校验信息的集合,都需要通过streamclient接收已经转换为预置io向量数据结构的第二待存储数据,此时,需要streamclient对接收到的已经转换为预置io向量数据结构的第二待存储数据的第二校验信息进行集合,生成校验信息列表,同时还有作用域。此时,最新的校验信息列表,即在streamclient中生成的校验信息列表中的各个第一校验信息具有对应的作用域。

202:划分多个第一待存储数据到对应至少一个存储区域中。

其中,存储区域是指分布式存储系统中的数据存储节点(如,存储服务器)中的对应存储区域,可以为chunk存储块。该chunk存储块具有自己的标识、存储位置,且对于多个数据存储节点来说,同一个chunk存储块的标识以及对应的在数据存储节点中的存储位置相同。

在一些实例中,划分多个第一待存储数据到对应的至少一个存储区域中,包括:根据每个第一待存储数据的作用域,确定每个第一待存储数据对应的存储区域以及每个第一待存储数据在存储区域的存储位置。

在一些实例中,确定每个第一待存储数据对应的存储区域以及每个第一待存储数据在存储区域的存储位置,包括:针对多个第一待存储数据,发送查询请求至存储管控节点(如,存储管控服务器),以使存储管控节点根据查询请求中的划分前的作用域,确定每个第一待存储数据对应的存储区域以及每个第一待存储数据在存储区域的存储位置;接收存储管控节点返回的确定每个第一待存储数据对应的存储区域以及每个第一待存储数据在存储区域的存储位置。

其中,该存储管控节点是分布式存储系统中用于管理多个数据存储节点的管理节点。每个数据存储节点需要定时向该管理节点上报当前自己的存储信息,如,当前存储空间,当前空余chunk存储块的标识、自己的存储地址等等,使得管理节点在接收到每个数据存储节点发送的存储信息后,生成数据存储节点列表,记录上报信息,且根据chunk存储块的标识设置对应的offset并记录,好对后续待存储数据进行分配存储。

例如,根据前文所述,终端的分布式存储系统的客户端的streamclient在合并多个append请求中的已经转换为预置io向量数据结构的第二待存储数据,以及对应的第二校验信息,即获得了第一待存储数据,以及第一校验信息列表以及对应的作用域后,该streamclient会将这些数据发送至该客户端中的chunkclient存储块客户端模块,chunkclient接收到这些数据后,会向存储管控节点发送查询请求,该查询请求中携带对应的作用域的offset以及length,当存储管控节点接收到该查询请求后,根据该查询请求中的offset,从数据存储节点列表中查找到与该offset对应的chunk存储块的标识以及所属于数据存储节点的存储地址,根据length确定在该存储块中的存储位置,将该存储块的标识、存储位置以及存储地址,并返回至该chunkclient,或者直接对该offset选择一个对应的chunk存储块的标识以及所属于数据存储节点的存储地址,根据length确定在该存储块中的存储位置,将该存储块的标识、存储位置以及存储地址,并返回至该chunkclient。

需要说明的是,对于分布式存储系统而言,在存储数据时,需要在不同的数据存储节点上存储相同的副本,如,默认选择3个副本,那么存储管控节点在接收到查询请求时,在确定chunk存储块后,再可以根据数据存储节点与终端的距离以及每个数据存储节点的存储空间,选择3个优选的数据存储节点(如,距离近且存储空间小的)上的相同chunk存储块,并将这三个chunk存储块的各自所属数据存储节点的存储地址、chunk存储块的标识以及存储位置发送至终端。相同chunk存储块的标识以及存储位置应当是相同的,但是所属数据存储节点的存储地址不同。

针对一个chunk存储块而言,若多个第一待存储数据均属于一个chunk存储块,则根据其作用域进行依次划分,当任一个第一待存储数据无法完全存储到该chunk存储块时,存储管控节点会将该第一待存储数据一部分划分至该chunk存储块,另一部分存储到另一个不同chunk存储块中。存储管控节点将这两个chunk存储块对应的标识、所属数据存储节点的存储地址以及存储位置发送至终端。

203:根据划分结果,确定划分后的第一待存储数据对应的第一校验信息的作用域。

在一些实例中,划分结果包括对应的存储区域、存储区域的存储位置以及存储长度;根据划分结果,确定划分后的第一待存储数据对应的第一校验信息的作用域,包括:针对每个第一待存储数据,当划分前该第一待存储数据对应的第一校验信息的作用域与存储区域以及存储区域的存储位置对应,则直接将划分前的该作用域作为划分后的作用域;当划分前该第一待存储数据对应的第一校验信息的作用域与存储区域以及存储区域的存储位置不对应,则根据存储区域以及存储位置,确定划分后的作用域。例如,根据前文所述,终端的分布式存储系统的客户端的chunkclient在接收到返回信息后,会根据每个第一待存储数据在chunk存储块的标识以及在该chunk存储块的存储位置,确定是否与该第一待存储数据的offset以及length相同或相对,即offset确定了对应的chunk存储块的标识,length确定了存储位置,若相同或相对,则不修改该第一待存储数据的作用域,即offset以及length,若不相同或不相对,则将offset修改为chunk存储块的标识以及将length修改为存储位置。

需要说明的是,当存储管控节点将任一第一待存储数据一部分划分至该chunk存储块,另一部分存储到另一个不同chunk存储块中后,使得该第一待存储数据的offset以及length发生变化,即产生了两个offset以及两个length分别对应不同的该第一待存储数据的不同数据部分,即每个offset对应一个chunk存储块,每个length对应在每个chunk存储块中的存储位置,如,y待存储数据被划分到标识为0的chunk存储块且存储位置为该chunk存储块的最后2字节,以及标识为1的chunk存储块且存储位置为该chunk存储块的最开始2字节,产生的两个offset以及两个length以chunk返回至终端,此时就需要修改该第一待存储数据的offset为两个offset且length为两个length。

应理解,划分后的作用域可以包括存储标识(offset,与chunk存储块的标识对应)以及存储长度(length,与第一待存储数据在chunk存储块的存储位置对应)。

204:针对至少一个存储区域,发送对应的至少一个第一待存储数据、第一校验信息以及划分后的作用域。

在一些实例中,针对至少一个存储区域,发送对应的至少一个第一待存储数据、第一校验信息以及划分后的作用域,包括:根据至少一个存储区域中的每个存储区域,向数据存储节点发送至少一个第一待存储数据、第一校验信息以及划分后的作用域,以使数据存储节点根据所述划分后的作用域,确定对应的第一待存储数据,并根据第一校验信息确定该第一待存储数据的是否完整。

例如,根据前文所述,终端的分布式存储系统的客户端的chunkclient在确定完划分后的作用域后,会将多个第一待存储数据、第一校验信息的列表、划分后的作用域以及chunk存储块所属数据存储节点的存储地址、chunk存储块的标识以及对应的存储位置发送至该客户端的replicaclient复制客户端模块,replicaclient收到后,会将多个第一待存储数据、第一校验信息的列表及划分后的作用域序列化到writereplica写复制请求中,同时该请求还可以携带chunk存储块的标识以及存储位置,并根据每个chunk存储块所属数据存储节点的存储地址、chunk存储块的标识以及存储位置,向数据存储节点发送writereplica写复制请求,以使对应的数据存储节点(如,chunkserver存储服务器)接收到该writereplica写复制请求后,根据该请求中的作用域查找到对应的第一待存储数据以及校验码,并根据crc32算法,计算该第一待存储数据的crc校验码,并核对该校验码与writereplica写复制请求中的校验码是否相同,若相同则表示该第一待存储数据完整,未存在数据静默破坏导致的数据丢失的问题,并将该第一待存储数据,,进行存储至硬盘进行落盘。

应理解,第一校验信息与其作用域是具有对应关系的。

在一些实例中,该方法200还包括:当第一待存储数据存储成功后,则接收数据存储节点发送的存储成功提示信息,并展示该存储成功提示信息;当第一待存储数据存储成功后,则接收数据存储节点发送的存储失败提示信息,并展示该存储失败提示信息。

例如,根据前文所述,当数据存储节点对第一待存储数据校验成功后,并进行存储,同时向终端的分布式存储系统的客户端的replicaclient返回存储成功提示信息,并向用户展示该提示信息,若数据存储节点对第一待存储数据校验不成功,则向终端的分布式存储系统的客户端的replicaclient返回存储失败提示信息,并向用户展示该提示信息。

图3为本申请另一示例性实施例提供的又一种信息的传输方法的流程示意图。本申请实施例提供的该方法300由数据存储节点,如存储服务器执行,该方法300包括以下步骤:

301:接收终端发送的至少一个待存储数据、待存储数据的校验信息以及该校验信息的作用域。

302:根据作用域确定对应的待存储数据,并根据对应的校验信息,对该待存储数据进行校验。

303:当校验成功后,存储待存储数据。

需要说明的是,上述实施例所提供方法300的具体实施方式在前文已经详细阐述过了,此处就不再赘述。

图4为本申请又一示例性实施例提供的信息的传输装置的结构框架示意图。该装置400可以应用于终端中,该装置400包括获取模块401、划分模块402、确定模块403以及发送模块404,以下针对各个模块的功能进行详细的阐述:

获取模块401,用于获取多个第一待存储数据.

划分模块402,用于划分多个第一待存储数据到对应至少一个存储区域中。

确定模块403,用于根据划分结果,确定划分后的第一待存储数据对应的第一校验信息的作用域。

发送模块404,用于针对至少一个存储区域,发送对应的至少一个第一待存储数据、第一校验信息以及划分后的作用域。

在一些实例中,获取模块401包括:转换单元,用于接收多个第二待存储数据,将各个第二待存储数据转换为预置io向量数据结构;合并单元,用于根据预置合并规则,合并转换后的多个第二待存储数据作为多个第一待存储数据。

在一些实例中,转换单元,用于基于预置数据格式条件,将多个第二待存储数据转换为符合预置数据格式条件的预置io向量数据结构。

在一些实例中,该装置400还包括:第一记录模块,用于在接收第二待存储数据时,且接收到第二待存储数据对应的作用域,当第二待存储数据具有对应的第二检验信息时,则直接将第二校验信息作为第一校验信息,并直接记录第二待存储数据对应的作用域,作为所述第一校验信息的作用域。

在一些实例中,该装置400还包括:第二记录模块,用于当第二待存储数据不具有对应的第二检验信息时,则根据第二待存储数据对应的作用域,确定第二待存储数据的第二检验信息,并作为第一校验信息,记录第二待存储数据对应的作用域,作为第一校验信息的作用域。

在一些实例中,划分模块402,用于根据每个第一待存储数据的作用域,确定每个第一待存储数据对应的存储区域以及每个第一待存储数据在存储区域的存储位置。

在一些实例中,划分结果包括对应的存储区域以及存储区域的存储位置;确定模块403,包括:第一确定单元,用于针对每个第一待存储数据,当划分前该第一待存储数据对应的第一校验信息的作用域与存储区域以及存储区域的存储位置对应,则直接将划分前的该作用域作为划分后的作用域;第二确定单元,用于当划分前该第一待存储数据对应的第一校验信息的作用域与存储区域以及存储区域的存储位置不对应,则根据存储区域以及存储位置,确定划分后的作用域。

在一些实例中,发送模块404,用于根据至少一个存储区域中的每个存储区域,向数据存储节点发送至少一个第一待存储数据、第一校验信息以及划分后的作用域,以使数据存储节点根据划分后的作用域,确定对应的第一待存储数据,并根据第一校验信息确定该第一待存储数据的是否完整。

在一些实例中,划分后的作用域可唯一标识所述第一待存储数据;第一校验信息用于校验第一待存储数据。

在一些实例中,划分后的作用域包括第一待存储数据的存储标识以及存储长度。

在一些实例中,该装置400还包括:接收模块,用于当第一待存储数据存储成功后,则接收数据存储节点发送的存储成功提示信息,并展示该存储成功提示信息;当第一待存储数据存储成功后,则接收数据存储节点发送的存储失败提示信息,并展示该存储失败提示信息。

在一些实例中,划分模块402,包括:发送单元,用于针对多个第一待存储数据,发送查询请求至存储管控节点,以使存储管控节点根据查询请求中的划分前的作用域,确定每个第一待存储数据对应的存储区域以及每个第一待存储数据在存储区域的存储位置;接收单元,用于接收存储管控节点返回的确定每个第一待存储数据对应的存储区域以及每个第一待存储数据在存储区域的存储位置。

图5为本申请又一示例性实施例提供的又一种信息的传输装置的结构框架示意图。该装置500可以应用于数据存储节点,如服务器中,该装置500包括:接收模块501、校验模块502以及存储模块503,以下针对各个模块的功能进行详细的阐述:

接收模块501,用于接收终端发送的至少一个待存储数据、待存储数据的校验信息以及该校验信息的作用域;

校验模块502,用于根据作用域确定对应的待存储数据,并根据对应的校验信息,对该待存储数据进行校验;

存储模块503,用于当校验成功后,存储待存储数据。

以上描述了图4所示的传输装置400的内部功能和结构,在一个可能的设计中,图4所示的传输装置400的结构可实现为终端,如图6所示,该终端600可以包括:存储器601、处理器602以及通信组件603;

存储器601,用于存储计算机程序;

通信组件603,用于针对至少一个存储区域,发送对应的至少一个第一待存储数据、第一校验信息以及划分后的作用域;

处理器602,用于执行计算机程序,以用于:获取多个第一待存储数据;划分多个第一待存储数据到对应至少一个存储区域中;根据划分结果,确定划分后的第一待存储数据对应的第一校验信息的作用域。

在一些实例中,处理器602,具体用于:接收多个第二待存储数据,将各个第二待存储数据转换为预置io向量数据结构;根据预置合并规则,合并转换后的多个第二待存储数据作为多个第一待存储数据。

在一些实例中,处理器602,具体用于:基于预置数据格式条件,将多个第二待存储数据转换为符合预置数据格式条件的预置io向量数据结构。

在一些实例中,处理器602,还用于:在接收第二待存储数据时,且接收到第二待存储数据对应的作用域,当第二待存储数据具有对应的第二检验信息时,则直接将第二校验信息作为第一校验信息,并直接记录第二待存储数据对应的作用域,作为所述第一校验信息的作用域。

在一些实例中,处理器602,还用于:当第二待存储数据不具有对应的第二检验信息时,则根据第二待存储数据对应的作用域,确定第二待存储数据的第二检验信息,并作为第一校验信息,记录第二待存储数据对应的作用域,作为第一校验信息的作用域。

在一些实例中,处理器602,具体用于:根据每个第一待存储数据的作用域,确定每个第一待存储数据对应的存储区域以及每个第一待存储数据在存储区域的存储位置。

在一些实例中,划分结果包括对应的存储区域以及存储区域的存储位置;处理器602,具体用于:针对每个第一待存储数据,当划分前该第一待存储数据对应的第一校验信息的作用域与存储区域以及存储区域的存储位置对应,则直接将划分前的该作用域作为划分后的作用域;当划分前该第一待存储数据对应的第一校验信息的作用域与存储区域以及存储区域的存储位置不对应,则根据存储区域以及存储位置,确定划分后的作用域。

在一些实例中,处理器602,具体用于:根据至少一个存储区域中的存储区域,向数据存储节点发送至少一个第一待存储数据、第一校验信息以及划分后的作用域,以使数据存储节点根据所述划分后的作用域,确定对应的第一待存储数据,并根据第一校验信息确定该第一待存储数据的是否完整。

在一些实例中,划分后的作用域可唯一标识所述第一待存储数据;第一校验信息用于校验第一待存储数据。

在一些实例中,划分后的作用域包括第一待存储数据的存储标识以及存储长度。

在一些实例中,处理器602,还用于:当第一待存储数据存储成功后,则接收数据存储节点发送的存储成功提示信息,并展示该存储成功提示信息;当第一待存储数据存储成功后,则接收数据存储节点发送的存储失败提示信息,并展示该存储失败提示信息。

在一些实例中,处理器602,具体用于:针对多个第一待存储数据,发送查询请求至存储管控节点,以使存储管控节点根据查询请求中的划分前的作用域,确定每个第一待存储数据对应的存储区域以及每个第一待存储数据在存储区域的存储位置;接收存储管控节点返回的确定每个第一待存储数据对应的存储区域以及每个第一待存储数据在存储区域的存储位置。

另外,本发明实施例提供了一种计算机存储介质,计算机程序被一个或多个处理器执行时,致使一个或多个处理器实现图2方法实施例中信息的传输方法的步骤。

以上描述了图5所示的传输装置500的内部功能和结构,在一个可能的设计中,图5所示的传输装置500的结构可实现为数据存储服务器,如图7所示,该服务器700可以包括:存储器701、处理器702以及通信组件703;

存储器701,用于存储计算机程序;

通信组件703,用于接收终端发送的至少一个待存储数据、待存储数据的校验信息以及该校验信息的作用域;

处理器702,用于执行计算机程序,以用于:根据作用域确定对应的待存储数据,并根据对应的校验信息,对该待存储数据进行校验;当校验成功后,存储待存储数据。

另外,本发明实施例提供了一种计算机存储介质,计算机程序被一个或多个处理器执行时,致使一个或多个处理器实现图3方法实施例中信息的传输方法的步骤。

另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如201、202、203等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程多媒体数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程多媒体数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程多媒体数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程多媒体数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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