分布式存储方法及装置、网络节点及存储介质与流程

文档序号:20839701发布日期:2020-05-22 17:20阅读:127来源:国知局
本发明涉及计算机网络
技术领域
:,具体涉及一种分布式存储方法及装置、网络节点和计算机可读存储介质。
背景技术
::分布式存储网络是将数据分散存储在多台独立的设备上。每一个数据都对应若干数量的存储设备(即网络节点),并且单个存储设备上会同时存储多个数据。现有的分布式存储网络,例如dht(distributedhashtable,哈希表)网络中的单个网络节点可能在短时间收到大量的存储请求。如果该网络节点直接向存储网络进行数据存储,后续进行周期性地重存储,可能导致该网络节点出现短时间cpu负载过高,网络丢包等问题,影响该网络节点存储功能的实现。技术实现要素:鉴于以上内容,有必要提出一种分布式存储方法、分布式存储装置、网络节点、计算机可读存储介质和计算机程序产品,其可以使节省网络节点的cpu开销和网络带宽开销。本申请的第一方面提供一种分布式存储方法,所述方法包括:接收指定数据的存储请求;对所述指定数据设置多个标识信息;当对所述指定数据进行初次存储时,从分布式存储网络中查找预设数量的第一目标节点,将所述指定数据和所述多个标识信息存储至所述第一目标节点;当对所述指定数据进行重存储时,从所述分布式存储网络中查找所述预设数量的第二目标节点,根据所述多个标识信息判断所述第二目标节点中是否存储有所述指定数据;若所述第二目标节点中未存储有所述指定数据,则将所述指定数据和所述多个标识信息存储到所述第二目标节点。另一种可能的实现方式中,所述根据所述多个标识信息判断所述第二目标节点中是否存储有所述指定数据包括:向所述第二目标节点发送探测请求消息,所述探测请求消息包括所述多个标识信息;接收所述第二目标节点返回的探测响应消息,所述探测响应消息包括所述第二目标节点中存储的与所述多个标识信息一致的标识信息。另一种可能的实现方式中,所述方法还包括:若所述第二目标节点中存储有所述指定数据,则更新所述第二目标节点中所述指定数据的过期删除时间;和/或增加所述第二目标节点中所述指定数据的热度。另一种可能的实现方式中,所述从所述分布式存储网络中查找预设数量的第一目标节点包括:在所述分布式存储网络中进行迭代查找,获取所述第一目标节点。另一种可能的实现方式中,所述将所述指定数据和所述多个标识信息存储至所述第一目标节点之前,所述方法还包括:根据预设存储周期建立时间窗口数组;从所述时间窗口数组中确定所述指定数据对应的时间窗口,将所述指定数据的存储任务插入确定的时间窗口;所述将所述指定数据和所述多个标识信息存储至所述第一目标节点包括:按照所述确定的时间窗口将所述指定数据和所述多个标识信息存储至所述第一目标节点。另一种可能的实现方式中,所述从所述时间窗口数组中确定所述指定数据对应的时间窗口包括:从所述时间窗口数组中确定起始时间窗口;从所述起始时间窗口开始选择一个时间窗口,判断选择的时间窗口的存储任务是否满足预设条件;若选择的时间窗口的存储任务满足预设条件,则将所述指定数据的存储任务加入所述选择的时间窗口。另一种可能的实现方式中,所述判断选择的时间窗口的存储任务是否满足预设条件包括:判断所述选择的时间窗口的存储任务数或加权存储任务数是否小于所述时间窗口数组的平均存储任务数与预设常数之和。本申请的第二方面提供一种网络节点,所述网络节点包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现所述分布式存储方法。本申请的第三方面提供一种分布式存储装置,所述装置包括:接收单元,用于接收指定数据的存储请求;设置单元,用于对所述指定数据设置多个标识信息;第一存储单元,用于当对所述指定数据进行初次存储时,从分布式存储网络中查找预设数量的第一目标节点,将所述指定数据和所述多个标识信息存储至所述第一目标节点;判断单元,用于当对所述指定数据进行重存储时,从所述分布式存储网络中查找所述预设数量的第二目标节点,根据所述多个标识信息判断所述第二目标节点中是否存储有所述指定数据;第二存储单元,用于若所述第二目标节点中未存储有所述指定数据,则将所述指定数据和所述多个标识信息存储到所述第二目标节点。本申请的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述分布式存储方法。本申请的第五方面提供一种计算机程序产品,包括计算机指令,当其在网络节点上运行时,使得网络节点执行所述分布式存储方法。本发明为数据设置多个标识信息,根据该多个标识信息判断分布式存储系统中的目标节点是否存储有指定数据,当目标节点未存储有指定数据时进行数据存储,避免网络节点重复存储数据,节省了网络节点的cpu开销和网络带宽开销。附图说明图1是本发明实施例提供的分布式存储方法的流程图。图2是本发明实施例提供的分布式存储装置的流程图。图3是本发明实施例提供的网络节点的示意图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。术语“第一”、“第二”、“第三”、“第四”等仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请的各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。优选地,本发明的分布式存储方法应用在一个或者多个网络节点中。所述网络节点是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。所述网络节点可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述网络节点可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。所述网络节点可以是组成dht(distributedhashtable,分布式哈希表)网络、cdn(contentdeliverynetwork,内容分发网络)网络或者区块链网络的节点。实施例一图1是本发明实施例提供的分布式存储方法的流程图。所述分布式存储方法应用于分布式存储网络的网络节点中。所述分布式存储网络包括多个网络节点,每个网络节点存储多个数据。所述网络节点存储的数据可以是不同类型的数据,例如视频数据、音频数据、文本数据等。在本实施例中,所述分布式存储网络可以是dht(distributedhashtable,分布式哈希表)网络。在本实施例中,所述网络节点可以是个人云盘,例如玩客云。所述分布式存储方法为数据设置多个标识信息,根据该多个标识信息判断分布式存储系统中的目标节点是否存储有指定数据,当目标节点未存储有指定数据时进行数据存储,避免网络节点重复存储数据,节省了网络节点的cpu开销和网络带宽开销。参阅1所示,所述分布式存储方法具体包括以下步骤:101,接收指定数据的存储请求。所述网络节点可以接收不同的请求方发送的存储请求。所述请求方包括但不限于台式计算机、膝上型便携计算机、个人数字助理、平板电脑、个人云盘、智能手机、电子书阅读器、mp3(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)或mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面4)播放器、pos终端和车载电脑等。所述网络节点可以接收所述分布式存储网络内的其他网络节点发出的存储请求。或者,所述网络节点可以接收所述分布式存储网络以外的其他计算设备发出的存储请求。所述指定数据可以是各种类型的数据,例如可以是视频数据、音频数据、文本数据等。在一实施例中,所述指定数据是键值对,所述指定数据的关键值(即键值对中的key值)是所述指定数据的哈希值。在其他的实施例中,所述指定数据的关键值可以是其他,例如所述指定数据的文件名。102,对所述指定数据设置多个标识信息。所述多个标识信息用于唯一识别所述指定数据。不同的数据至少有一个标识信息不同。在一实施例中,所述多个标识信息包括所述指定数据的数据id、数据类型、请求存储时间。所述指定数据是键值对,所述指定数据的数据id就是所述指定数据的value值的数据id,所述数据类型就是所述指定数据的value值的数据类型。在其他的实施例中,所述多个标识信息可以包括其他的信息。例如,所述多个标识信息包括所述存储请求的请求方id、所述指定数据的哈希值。在一实施例中,所述指定数据的关键值(即key值)对应多个value值,可以对每个value值设置多个标识信息。例如,所述指定数据的关键值对应五个value值,则对五个value值中的每个value值设置多个标识信息。103,当对所述指定数据进行初次存储时,从所述分布式存储网络中查找预设数量的第一目标节点,将所述指定数据和所述多个标识信息存储至所述第一目标节点。网络节点接收到指定数据的存储请求后,对所述指定数据进行初次存储。在初次存储之后,网络节点会按照预设存储周期对所述指定数据进行重存储。在一实施例中,所述网络节点在所述分布式存储网络中进行迭代查找,获取预设数量(例如10个)距离所述指定数据的关键值最近的第一目标节点。在进行迭代查找时,所述网络节点首先向所述分布式存储网络中的预设初始节点发送查找消息,所述预设初始节点返回若干距离所述指定数据的关键值最近的第一节点;所述网络节点对所述第一节点发送查找消息,所述第一节点返回若干距离所述指定数据的关键值最近的第二节点;所述网络节点对所述第二节点发送查找消息,所述第二节点返回若干距离所述指定数据的关键值最近的第三节点;....;依此类推。若某一节点(例如第二节点)返回的距离所述指定数据的关键值最近的节点是自身,则该节点确定为所述第一目标节点。当查找到预设数量的目标节点,迭代查找结束。在一实施例中,所述分布式存储网络中的任意网络节点与所述指定数据的关键值的距离等于所述任意网络节点的节点id与所述指定数据的关键值的异或值。也就是说,将任意网络节点的节点id与所述指定数据的关键值进行异或运算,得到所述任意网络节点与所述指定数据的关键值的距离。所述分布式存储网络中的任意网络节点的节点id可以在所述任意网络节点加入所述分布式存储网络时分配得到。104,当对所述指定数据进行重存储时,从所述分布式存储网络中查找所述预设数量的第二目标节点,根据所述多个标识信息判断所述第二目标节点中是否存储有所述指定数据。在一实施例中,所述网络节点判断是否对所述指定数据进行重存储,若对所述指定数据进行重存储,则在所述分布式存储网络中进行迭代查找,获取所述预设数量距离所述指定数据的关键值最近的第二目标节点。迭代查找第二目标节点的具体方法可以参阅第一目标节点的相关描述。在一实施例中,所述根据所述多个标识信息判断所述第二目标节点中是否存储有所述指定数据包括:向所述第二目标节点发送探测请求消息,所述探测请求消息包括所述多个标识信息;接收所述第二目标节点返回的探测响应消息,所述探测响应消息包括所述第二目标节点中存储的与所述多个标识信息一致的标识信息。若所述第二目标节点中存储有与所述多个标识信息一致的标识信息,则所述第二目标节点中存储有所述指定数据。否则,若所述第二目标节点中未存储有与所述多个标识信息一致的标识信息,则所述第二目标节点中未存储有所述指定数据。在一实施例中,所述探测请求消息包括所述指定数据的关键值和所述多个标识信息,所述第二目标节点收到所述探测请求消息后,查找所述第二目标节点存储的所述关键值对应的标识信息集合,从所述标识信息集合中查找与所述多个标识信息一致的标识信息,将与所述多个标识信息一致的标识信息返回所述网络节点。在一实施例中,可以将与所述多个标识信息一致的标识信息中的数据id返回所述网络节点。在一实施例中,若所述第二目标节点中存储有所述指定数据,则更新所述第二目标节点中所述指定数据的过期删除时间,和/或增加所述第二目标节点中所述指定数据的热度。105,若所述第二目标节点中未存储有所述指定数据,则将所述指定数据和所述多个标识信息存储到所述第二目标节点。例如,从所述分布式存储网络中查找到十个第二目标节点,并且所述十个第二目标节点均未存储有所述指定数据,则将所述指定数据和所述多个标识信息存储到所述十个第二目标节点。所述分布式存储方法为数据设置多个标识信息,根据该多个标识信息判断分布式存储系统中的目标节点是否存储有指定数据,当目标节点未存储有指定数据时进行数据存储,避免网络节点重复存储数据,节省了网络节点的cpu开销和网络带宽开销。在另一实施例中,所述将所述指定数据和所述多个标识信息存储至所述第一目标节点之前,所述方法还包括:a、根据所述网络节点的预设存储周期建立时间窗口数组。时间窗口数组用于统计一个存储周期内的各个时间段需要执行的存储任务。在一实施例中,一个时间窗口记录一秒内需执行的存储任务。因此,一个存储周期包括的秒数就是时间窗口数组的长度,即时间窗口的总数。例如,存储周期是10分钟,则时间窗口数组的长度为60*10=600。在其他的实施例中,一个时间窗口可以记录其他时间段(例如100毫秒)内需执行的存储任务。b、从所述时间窗口数组中确定所述指定数据对应的时间窗口,将所述指定数据的存储任务插入确定的时间窗口。在一实施例中,所述从所述时间窗口数组中确定所述指定数据对应的时间窗口包括:(1)从所述时间窗口数组中确定起始时间窗口;(2)从所述起始时间窗口开始选择一个时间窗口,判断选择的时间窗口的存储任务是否满足预设条件;(3)若选择的时间窗口的存储任务满足预设条件,则将所述指定数据的存储任务加入所述选择的时间窗口。若选择的时间窗口的存储任务不满足预设条件,则返回(2),从所述时间窗口数组选择下一个时间窗并进行判断。在一实施例中,若选择到所述时间窗口数组的最后一个时间窗口,且该最后一个时间窗口的存储任务不满足预设条件,则从所述时间窗口数组的第一个时间窗口开始选择下一个时间窗口。选择时间窗口的最大次数等于所述时间窗口数组的长度。在一实施例中,所述判断选择的时间窗口的存储任务是否满足预设条件包括:判断所述选择的时间窗口的存储任务数或加权存储任务数是否小于所述时间窗口数组的平均存储任务数与预设常数之和。若所述选择的时间窗口的存储任务数或加权存储任务数小于所述时间窗口数组的平均存储任务数与预设常数之和,则所述选择的时间窗口的存储任务满足预设条件。否则,若所述选择的时间窗口的存储任务数或加权存储任务数大于或等于所述时间窗口数组的平均存储任务数与预设常数之和,则所述选择的时间窗口的存储任务不满足预设条件。所述预设常数可以是2或3。可以根据所述选择的时间窗口的存储任务的历史执行情况、数据大小、任务优先级等计算所述选择的时间窗口的加权存储任务数。若一个存储任务的历史执行速度越快、数据越小、任务优先级越低,则该存储任务的权重越小。反之,若一个存储任务的历史执行速度越慢、数据越大、任务优先级越高,则该存储任务的权重越大。在一实施例中,所述从所述时间窗口数组中确定起始时间窗口包括:计算所述网络节点的当前时间与预设初始时间的时间差秒数;用所述时间差秒数对所述时间窗口数组的长度取模,得到所述起始时间窗口在所述时间窗口数组中的位置。例如,用所述时间差秒数对所述时间窗口数组的长度取模得到5,则所述起始时间窗口为所述时间窗口数组中的第5个时间窗口。所述预设初始时间可以是1970年1月1日0时0分0秒。在另一实施例中,所述从所述时间窗口数组中确定起始时间窗口包括:从所述时间窗口数组中随机选取一个时间窗口作为所述起始时间窗口。在一实施例中,所述指定数据的存储任务的开始执行时间为t+h+r,其中t为所述网络节点的当前时间,h为所述起始时间窗口在所述时间窗口数组中的位置(例如h为5,表示时间窗口数组的第5个时间窗口为起始时间窗口),r为一秒范围内的随机时间(例如10毫秒)。所述将所述指定数据和所述多个标识信息存储至所述第一目标节点包括:按照所述确定的时间窗口将所述指定数据和所述多个标识信息存储至所述第一目标节点。所述将所述指定数据和所述多个标识信息存储到所述第二目标节点包括:按照所述确定的时间窗口将所述指定数据和所述多个标识信息存储到所述第二目标节点。分布式存储网络中的单个网络节点可能在短时间收到大量的存储请求,如果该网络节点直接向存储网络进行数据存储,后续进行周期性地重存储,可能导致该网络节点出现短时间cpu负载过高,网络丢包等问题,影响该网络节点存储功能的实现。通过为单个网络节点建立时间窗口数组,将网络节点的存储任务插入到不同时间窗口,按照确定的时间窗口存储任务,可以使网络节点均衡地执行存储任务,避免网络节点出现短时间负载过高,导致数据丢失或存储失败等问题,提升了网络节点存储数据的数量,保证了网络节点的存储功能的实现。实施例二图2为本发明实施例提供的分布式存储装置的结构图。所述分布式存储装置20于分布式存储网络的网络节点中。所述分布式存储网络包括多个网络节点,每个网络节点存储多个数据。所述网络节点存储的数据可以是不同类型的数据,例如视频数据、音频数据、文本数据等。如图3所示,所述分布式存储装置20可以包括:接收单元201、设置单元202、第一存储单元203、判断单元204、第二存储单元205。接收单元201,用于101,接收指定数据的存储请求。所述网络节点可以接收不同的请求方发送的存储请求。所述请求方包括但不限于台式计算机、膝上型便携计算机、个人数字助理、平板电脑、个人云盘、智能手机、电子书阅读器、mp3(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)或mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面4)播放器、pos终端和车载电脑等。所述网络节点可以接收所述分布式存储网络内的其他网络节点发出的存储请求。或者,所述网络节点可以接收所述分布式存储网络以外的其他计算设备发出的存储请求。所述指定数据可以是各种类型的数据,例如可以是视频数据、音频数据、文本数据等。在一实施例中,所述指定数据是键值对,所述指定数据的关键值(即键值对中的key值)是所述指定数据的哈希值。在其他的实施例中,所述指定数据的关键值可以是其他,例如所述指定数据的文件名。设置单元202,用于对所述指定数据设置多个标识信息。所述多个标识信息用于唯一识别所述指定数据。不同的数据至少有一个标识信息不同。在一实施例中,所述多个标识信息包括所述指定数据的数据id、数据类型、请求存储时间。所述指定数据是键值对,所述指定数据的数据id就是所述指定数据的value值的数据id,所述数据类型就是所述指定数据的value值的数据类型。在其他的实施例中,所述多个标识信息可以包括其他的信息。例如,所述多个标识信息包括所述存储请求的请求方id、所述指定数据的哈希值。在一实施例中,所述指定数据的关键值(即key值)对应多个value值,可以对每个value值设置多个标识信息。例如,所述指定数据的关键值对应五个value值,则对五个value值中的每个value值设置多个标识信息。第一存储单元203,用于当对所述指定数据进行初次存储时,从所述分布式存储网络中查找预设数量的第一目标节点,将所述指定数据和所述多个标识信息存储至所述第一目标节点。网络节点接收到指定数据的存储请求后,对所述指定数据进行初次存储。在初次存储之后,网络节点会按照预设存储周期对所述指定数据进行重存储。在一实施例中,所述网络节点在所述分布式存储网络中进行迭代查找,获取预设数量(例如10个)距离所述指定数据的关键值最近的第一目标节点。在进行迭代查找时,所述网络节点首先向所述分布式存储网络中的预设初始节点发送查找消息,所述预设初始节点返回若干距离所述指定数据的关键值最近的第一节点;所述网络节点对所述第一节点发送查找消息,所述第一节点返回若干距离所述指定数据的关键值最近的第二节点;所述网络节点对所述第二节点发送查找消息,所述第二节点返回若干距离所述指定数据的关键值最近的第三节点;....;依此类推。若某一节点(例如第二节点)返回的距离所述指定数据的关键值最近的节点是自身,则该节点确定为所述第一目标节点。当查找到预设数量的目标节点,迭代查找结束。在一实施例中,所述分布式存储网络中的任意网络节点与所述指定数据的关键值的距离等于所述任意网络节点的节点id与所述指定数据的关键值的异或值。也就是说,将任意网络节点的节点id与所述指定数据的关键值进行异或运算,得到所述任意网络节点与所述指定数据的关键值的距离。所述分布式存储网络中的任意网络节点的节点id可以在所述任意网络节点加入所述分布式存储网络时分配得到。判断单元204,用于当对所述指定数据进行重存储时,从所述分布式存储网络中查找所述预设数量的第二目标节点,根据所述多个标识信息判断所述第二目标节点中是否存储有所述指定数据。在一实施例中,所述网络节点判断是否对所述指定数据进行重存储,若对所述指定数据进行重存储,则在所述分布式存储网络中进行迭代查找,获取所述预设数量距离所述指定数据的关键值最近的第二目标节点。迭代查找第二目标节点的具体方法可以参阅第一目标节点的相关描述。在一实施例中,所述根据所述多个标识信息判断所述第二目标节点中是否存储有所述指定数据包括:向所述第二目标节点发送探测请求消息,所述探测请求消息包括所述多个标识信息;接收所述第二目标节点返回的探测响应消息,所述探测响应消息包括所述第二目标节点中存储的与所述多个标识信息一致的标识信息。若所述第二目标节点中存储有与所述多个标识信息一致的标识信息,则所述第二目标节点中存储有所述指定数据。否则,若所述第二目标节点中未存储有与所述多个标识信息一致的标识信息,则所述第二目标节点中未存储有所述指定数据。在一实施例中,所述探测请求消息包括所述指定数据的关键值和所述多个标识信息,所述第二目标节点收到所述探测请求消息后,查找所述第二目标节点存储的所述关键值对应的标识信息集合,从所述标识信息集合中查找与所述多个标识信息一致的标识信息,将与所述多个标识信息一致的标识信息返回所述网络节点。在一实施例中,可以将与所述多个标识信息一致的标识信息中的数据id返回所述网络节点。在一实施例中,若所述第二目标节点中存储有所述指定数据,则更新所述第二目标节点中所述指定数据的过期删除时间,和/或增加所述第二目标节点中所述指定数据的热度。第二存储单元205,用于若所述第二目标节点中未存储有所述指定数据,则将所述指定数据和所述多个标识信息存储到所述第二目标节点。例如,从所述分布式存储网络中查找到十个第二目标节点,并且所述十个第二目标节点均未存储有所述指定数据,则将所述指定数据和所述多个标识信息存储到所述十个第二目标节点。所述分布式存储方法为数据设置多个标识信息,根据该多个标识信息判断分布式存储系统中的目标节点是否存储有指定数据,当目标节点未存储有指定数据时进行数据存储,避免网络节点重复存储数据,节省了网络节点的cpu开销和网络带宽开销。在另一实施例中,所述分布式存储装置20还包括:建立单元,用于根据所述网络节点的预设存储周期建立时间窗口数组;插入单元,用于从所述时间窗口数组中确定所述指定数据对应的时间窗口,将所述指定数据的存储任务插入确定的时间窗口。所述第一存储单元203将所述指定数据和所述多个标识信息存储至所述第一目标节点包括:按照所述确定的时间窗口将所述指定数据和所述多个标识信息存储至所述第一目标节点。所述第二存储单元205将所述指定数据和所述多个标识信息存储到所述第二目标节点包括:按照所述确定的时间窗口将所述指定数据和所述多个标识信息存储到所述第二目标节点。时间窗口数组用于统计一个存储周期内的各个时间段需要执行的存储任务。在一实施例中,一个时间窗口记录一秒内需执行的存储任务。因此,一个存储周期包括的秒数就是时间窗口数组的长度,即时间窗口的总数。例如,存储周期是10分钟,则时间窗口数组的长度为60*10=600。在其他的实施例中,一个时间窗口可以记录其他时间段(例如100毫秒)内需执行的存储任务。在一实施例中,所述从所述时间窗口数组中确定所述指定数据对应的时间窗口包括:(1)从所述时间窗口数组中确定起始时间窗口;(2)从所述起始时间窗口开始选择一个时间窗口,判断选择的时间窗口的存储任务是否满足预设条件;(3)若选择的时间窗口的存储任务满足预设条件,则将所述指定数据的存储任务加入所述选择的时间窗口。若选择的时间窗口的存储任务不满足预设条件,则返回(2),从所述时间窗口数组选择下一个时间窗并进行判断。在一实施例中,若选择到所述时间窗口数组的最后一个时间窗口,且该最后一个时间窗口的存储任务不满足预设条件,则从所述时间窗口数组的第一个时间窗口开始选择下一个时间窗口。选择时间窗口的最大次数等于所述时间窗口数组的长度。在一实施例中,所述判断选择的时间窗口的存储任务是否满足预设条件包括:判断所述选择的时间窗口的存储任务数或加权存储任务数是否小于所述时间窗口数组的平均存储任务数与预设常数之和。若所述选择的时间窗口的存储任务数或加权存储任务数小于所述时间窗口数组的平均存储任务数与预设常数之和,则所述选择的时间窗口的存储任务满足预设条件。否则,若所述选择的时间窗口的存储任务数或加权存储任务数大于或等于所述时间窗口数组的平均存储任务数与预设常数之和,则所述选择的时间窗口的存储任务不满足预设条件。所述预设常数可以是2或3。可以根据所述选择的时间窗口的存储任务的历史执行情况、数据大小、任务优先级等计算所述选择的时间窗口的加权存储任务数。若一个存储任务的历史执行速度越快、数据越小、任务优先级越低,则该存储任务的权重越小。反之,若一个存储任务的历史执行速度越慢、数据越大、任务优先级越高,则该存储任务的权重越大。在一实施例中,所述从所述时间窗口数组中确定起始时间窗口包括:计算所述网络节点的当前时间与预设初始时间的时间差秒数;用所述时间差秒数对所述时间窗口数组的长度取模,得到所述起始时间窗口在所述时间窗口数组中的位置。例如,用所述时间差秒数对所述时间窗口数组的长度取模得到5,则所述起始时间窗口为所述时间窗口数组中的第5个时间窗口。所述预设初始时间可以是1970年1月1日0时0分0秒。在另一实施例中,所述从所述时间窗口数组中确定起始时间窗口包括:从所述时间窗口数组中随机选取一个时间窗口作为所述起始时间窗口。在一实施例中,所述指定数据的存储任务的开始执行时间为t+h+r,其中t为所述网络节点的当前时间,h为所述起始时间窗口在所述时间窗口数组中的位置(例如h为5,表示时间窗口数组的第5个时间窗口为起始时间窗口),r为一秒范围内的随机时间(例如10毫秒)。分布式存储网络中的单个网络节点可能在短时间收到大量的存储请求,如果该网络节点直接向存储网络进行数据存储,后续进行周期性地重存储,可能导致该网络节点出现短时间cpu负载过高,网络丢包等问题,影响该网络节点存储功能的实现。通过为单个网络节点建立时间窗口数组,将网络节点的存储任务插入到不同时间窗口,按照确定的时间窗口存储任务,可以使网络节点均衡地执行存储任务,避免网络节点出现短时间负载过高,导致数据丢失或存储失败等问题,提升了网络节点存储数据的数量,保证了网络节点的存储功能的实现。实施例三本实施例提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述分布式存储方法实施例中的步骤,例如图1所示的101-105:101,接收指定数据的存储请求;102,对所述指定数据设置多个标识信息;103,当对所述指定数据进行初次存储时,从分布式存储网络中查找预设数量的第一目标节点,将所述指定数据和所述多个标识信息存储至所述第一目标节点;104,当对所述指定数据进行重存储时,从所述分布式存储网络中查找所述预设数量的第二目标节点,根据所述多个标识信息判断所述第二目标节点中是否存储有所述指定数据;105,若所述第二目标节点中未存储有所述指定数据,则将所述指定数据和所述多个标识信息存储到所述第二目标节点。或者,该计算机程序被处理器执行时实现上述装置实施例中各模块/单元的功能,例如图2中的单元201-205:接收单元201,用于接收指定数据的存储请求;设置单元202,用于对所述指定数据设置多个标识信息;第一存储单元203,用于当对所述指定数据进行初次存储时,从分布式存储网络中查找预设数量的第一目标节点,将所述指定数据和所述多个标识信息存储至所述第一目标节点;判断单元204,用于当对所述指定数据进行重存储时,从所述分布式存储网络中查找所述预设数量的第二目标节点,根据所述多个标识信息判断所述第二目标节点中是否存储有所述指定数据;第二存储单元205,用于若所述第二目标节点中未存储有所述指定数据,则将所述指定数据和所述多个标识信息存储到所述第二目标节点。实施例四图3为本发明实施例提供的网络节点的示意图。所述网络节点3包括存储器30、处理器31、总线33以及存储在所述存储器30中并可在所述处理器31上运行的计算机程序32。所述处理器31执行所述计算机程序32时实现上述分布式存储方法实施例中的步骤,例如图1所示的101-105。或者,所述处理器31执行所述计算机程序32时实现上述装置实施例中各模块/单元的功能,例如图3中的单元201-205。示例性的,所述计算机程序32可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器30中,并由所述处理器31执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序32在所述网络节点3中的执行过程。所述网络节点3可以是pc(personalcomputer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机、智能路由器、矿机、网络存储设备等终端设备。所称处理器31可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器31也可以是任何常规的处理器等,所述处理器31是所述网络节点3的控制中心,利用各种接口和线路连接整个网络节点3的各个部分。所述存储器30可用于存储所述计算机程序32和/或模块/单元,所述处理器31通过运行或执行存储在所述存储器30内的计算机程序和/或模块/单元,以及调用存储在存储器30内的数据,实现所述网络节点3的各种功能。所述存储器30可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据网络节点3的使用所创建的数据。此外,存储器30可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件等。所述总线33以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。所述总线33可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。进一步地,网络节点3还可以包括网络接口,网络接口可选的可以包括有线接口和/或无线接口(如wi-fi接口、蓝牙接口等),通常用于在该网络节点3与其他电子设备之间建立通信连接。可选地,该网络节点3还可以包括用户接口,用户接口可以包括显示器(display)、输入单元比如键盘(keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在网络节点3中处理的信息以及用于显示可视化的用户界面。本领域技术人员可以理解,所述示意图3仅仅是网络节点3的示例,并不构成对网络节点3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在网络节点上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述网络节点可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台网络节点(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
:,均同理包括在本发明的专利保护范围内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1