本申请提供一种数据存储方法、装置、设备及存储介质,应用于小文件的数据存储,涉及数据存储技术领域。其中,该方法包括:根据数据标识获取对应的数据作为写请求;其中,所述标识用于唯一指示对应的数据;将获取的写请求加入节点队列尾部;按照预设时间间隔,读取所述节点队列中的队列头部的写请求作为目标写请求;将所述目标写请求加入至目标节点。相对于现有技术,避免了小文件数据的存储过程中,由于每个数据块都产生磁盘碎片,所以造成磁盘浪费的问题。
【技术实现步骤摘要】
数据存储方法、装置、设备及存储介质
本申请涉及数据存储
,具体而言,涉及一种数据存储方法、装置、设备及存储介质。
技术介绍
随着互联网的发展及数字化转型的深入,海量数据对存储方式提出了新的要求。为了满足海量数据的存储需求,市场上出现了分布式存储技术。分布式存储是一种数据存储技术,通过网络使用每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在网络中的各个角落。现有技术中,分布式存储采用分布式文件系统(HDFS)最多,适用于大文件、大数据处理,处理数据达到GB、TB、甚至PB级别的数据;适合流式文件访问,一次写入,多次读取。但是对于小文件数据的分存储,这种存储方式就会使得每个数据块都产生磁盘碎片,造成磁盘的浪费。
技术实现思路
本申请的目的在于,针对上述现有技术中的不足,提供一种数据存储方法、装置、设备及存储介质,以解决现有技术中小文件数据的存储过程中,由于每个数据块都产生磁盘碎片,所以造成磁盘浪费的问题。为实现上述目的,本申请实施例采用的技术方案如下:第一方面,本申请一实施例提供了一种数据存储方法,应用于小文件的数据存储,所述方法包括:根据数据标识获取对应的数据作为写请求;其中,所述标识用于唯一指示对应的数据;将获取的写请求加入节点队列尾部;按照预设时间间隔,读取所述节点队列中的队列头部的写请求作为目标写请求;将所述目标写请求加入至目标节点。可选地,所述按照预设时间间隔,读取所述节点队列中的队列头部的写请求作为目标写请求之后,所述方法还包括:计算所述节点存储区域的剩余空间和当前其他节点的平均存储区域的剩余空间;若所述节点存储区域的剩余空间大于所述其他节点的平均存储区域剩余空间;则将所述节点存储区域对应的节点作为目标节点。可选地,所述将获取的写请求加入节点队列尾部之前,所述方法还包括:服务器通过预设协议建立与客户端之间的连接;并通过所述连接进行数据的读写;所述服务器返回给所述客户端每个数据对应的标识,所述标识存储于客户端数据库中,用于客户端读取数据时,指示对应的数据。可选地,所述根据数据标识获取对应的数据作为写请求之后,所述方法还包括:判断所述节点队列是否已满;若所述节点队列未满,则将获取的写请求加入节点队列尾部。可选地,若所述节点存储区域的剩余空间小于所述其他节点的平均存储区域剩余空间;则获取所述其他节点中,存储区域的剩余空间最大的节点作为目标节点,并将所述写请求加入所述目标节点队列尾部。可选地,若所述目标写请求写入失败,则将所述目标写请求加入所述节点队列的队列头部,等待下一次读取。第二方面,本申请另一实施例提供了一种数据存储装置,应用于小文件的数据存储,所述装置包括:获取模块、加入模块和读取模块,其中:所述获取模块,用于根据数据标识获取对应的数据作为写请求;其中,所述标识用于唯一指示对应的数据;所述加入模块,用于将获取的写请求加入节点队列尾部;所述读取模块,用于按照预设时间间隔,读取所述节点队列中的队列头部的写请求作为目标写请求;所述加入模块,还用于将所述目标写请求加入至目标节点。可选地,所述装置还包括:计算模块和执行模块,其中:所述计算模块,用于计算所述节点存储区域的剩余空间和当前其他节点的平均存储区域的剩余空间;所述执行模块,用于若所述节点存储区域的剩余空间大于所述其他节点的平均存储区域剩余空间;则将所述节点存储区域对应的节点作为目标节点。可选地,所述装置还包括:建立模块和返回模块,其中:所述建立模块,用于通过预设协议建立与客户端之间的连接;并通过所述连接进行数据的读写;所述返回模块,用于所述服务器返回给所述客户端每个数据对应的标识,所述标识存储于客户端数据库中,用于客户端读取数据时,指示对应的数据。可选地,所述装置还包括:判断模块,用于判断所述节点队列是否已满;所述加入模块,还用于若所述节点队列未满,则将获取的所述写请求加入节点队列尾部。可选地,所述加入模块还用于,若所述节点存储区域的剩余空间小于所述其他节点的平均存储区域剩余空间;则获取所述其他节点中,存储区域的剩余空间最大的节点作为目标节点,并将所述写请求加入所述目标节点队列尾部。可选地,所述加入模块还用于,若所述目标写请求写入失败,则将所述目标写请求加入所述节点队列的队列头部,等待下一次读取。第三方面,本申请另一实施例提供了一种数据存储设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当数据存储设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如上述第一方面任一所述方法的步骤。第四方面,本申请另一实施例提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述第一方面任一所述方法的步骤。本申请的有益效果是:采用本申请提供的数据存储方法,在客户端需要读取数据时,只需在数据库中获取该数据对应的标识,并将该数据对应的标识传给服务器,就可以获取该数据,这种去中心节点化的策略,由于不需要在节点上浪费磁盘去存储元数据,直接通过标识定位数据,且标识存储在客户端数据库中,所以可以解决现有技术中每个节点都会产生磁盘碎片,造成磁盘浪费的问题,并且通过队列进行数据的读写,可以最大程度上利用磁盘空间,进一步减少磁盘浪费的问题。附图说明为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1为本申请一实施例提供的数据存储方法的流程示意图;图2为本申请另一实施例提供的数据存储方法的流程示意图;图3为本申请另一实施例提供的数据存储方法的流程示意图;图4为本申请另一实施例提供的数据存储方法的流程示意图;图5为本申请一实施例提供的数据存储装置的结构示意图;图6为本申请另一实施例提供的数据存储装置的结构示意图;图7为本申请另一实施例提供的数据存储装置的结构示意图;图8为本申请另一实施例提供的数据存储装置的结构示意图;图9为本申请一实施例提供的数据存储设备的结构示意图。具体实施方式为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。为方便理解,下述内容为本申请中相关名词的解释:ZooKeeper:是一个分布式的,开放源码的分布式应用程序协调服务,是Hadoop和Hbase的重要组件。它是一个本文档来自技高网...
【技术保护点】
1.一种数据存储方法,应用于小文件的数据存储,其特征在于,所述方法包括:/n根据数据标识获取对应的数据作为写请求;其中,所述标识用于唯一指示对应的数据;/n将获取的写请求加入节点队列尾部;/n按照预设时间间隔,读取所述节点队列中的队列头部的写请求作为目标写请求;/n将所述目标写请求加入至目标节点。/n
【技术特征摘要】
1.一种数据存储方法,应用于小文件的数据存储,其特征在于,所述方法包括:
根据数据标识获取对应的数据作为写请求;其中,所述标识用于唯一指示对应的数据;
将获取的写请求加入节点队列尾部;
按照预设时间间隔,读取所述节点队列中的队列头部的写请求作为目标写请求;
将所述目标写请求加入至目标节点。
2.如权利要求1所述的方法,其特征在于,所述按照预设时间间隔,读取所述节点队列中的队列头部的写请求作为目标写请求之后,所述方法还包括:
计算所述节点存储区域的剩余空间和当前其他节点的平均存储区域的剩余空间;
若所述节点存储区域的剩余空间大于所述其他节点的平均存储区域剩余空间;则将所述节点存储区域对应的节点作为目标节点。
3.如权利要求1所述的方法,其特征在于,所述将获取的写请求加入节点队列尾部之前,所述方法还包括:
服务器通过预设协议建立与客户端之间的连接,并通过所述连接进行数据的读写;
所述服务器返回给所述客户端每个数据对应的标识,所述标识存储于客户端数据库中,用于客户端读取数据时,指示对应的数据。
4.如权利要求3所述的方法,其特征在于,所述根据数据标识获取对应的数据作为写请求之后,所述方法还包括:
判断所述节点队列是否已满;
若所述节点队列未满,则将获取的所述写请求加入节点队列尾部。
5.如权利要求2所述的方法,其特征在于,若所述节点存储区域的剩余空间小于所述其他节点的平均存储区域剩余空间;则获取所述其他节点中,存储区域的剩余空间最大的节点作为目标节...
【专利技术属性】
技术研发人员:周洋,
申请(专利权)人:中国建设银行股份有限公司,建信金融科技有限责任公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。