CN111061682B - 一种数据缓存方法、读取方法、电子设备及存储介质 - Google Patents

一种数据缓存方法、读取方法、电子设备及存储介质 Download PDF

Info

Publication number
CN111061682B
CN111061682B CN201911238191.4A CN201911238191A CN111061682B CN 111061682 B CN111061682 B CN 111061682B CN 201911238191 A CN201911238191 A CN 201911238191A CN 111061682 B CN111061682 B CN 111061682B
Authority
CN
China
Prior art keywords
data
dht
key value
fragment
message body
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911238191.4A
Other languages
English (en)
Other versions
CN111061682A (zh
Inventor
张朝勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cloudminds Robotics Co Ltd
Original Assignee
Cloudminds Shanghai Robotics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cloudminds Shanghai Robotics Co Ltd filed Critical Cloudminds Shanghai Robotics Co Ltd
Priority to CN201911238191.4A priority Critical patent/CN111061682B/zh
Publication of CN111061682A publication Critical patent/CN111061682A/zh
Application granted granted Critical
Publication of CN111061682B publication Critical patent/CN111061682B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明实施例涉及数据处理领域,公开了一种数据缓存方法、数据读取方法、电子设备及存储介质。本申请的部分实施例中,数据缓存方法包括:确定数据的分布式哈希表DHT键值;根据预设的数据长度,对数据进行切分,得到数据的分片;针对每个分片,根据分片的内容,构建DHT消息体;根据数据的DHT键值,确定分片的DHT键值;将DHT消息体保存至分片的DHT键值对应的地址。该实施例中,使得数据缓存突破了DHT消息体的大小限制,对各数据进行缓存。

Description

一种数据缓存方法、读取方法、电子设备及存储介质
技术领域
本发明实施例涉及数据处理领域,特别涉及一种数据缓存方法、读取方法、电子设备及存储介质。
背景技术
星际文件系统(Inter Planetary File System,IPFS)是近几年出现的利用P2P网络的分布式文件系统。IPFS系统的功能是:使用者可以在自己电脑上为一个文件生成一个IPFS地址,然后在其它地方就可以通过该IPFS地址访问到这个文件。但这种分享文件的方式也有一个弊端,就是使用者将文件添加到IPFS系统的时候,虽然生成了相应的地址,但文件还是单独地存在于自己的电脑系统里,在没有其它使用者主动来生成备份之前,如果自己的电脑没有开机,其它访问都是无法访问到文件的。显然,这是一种很被动的备份机制。IPFS系统基于P2P网络,其本身也有一套DHT(Distributed Hash Table,分布式哈希表)机制,IPFS基于DHT网络自身的特性,实现了向某个特定地址发消息的功能。
然而,发明人发现现有技术中至少存在如下问题:目前,IPFS系统可以将文件通过DHT消息发送到IPFS网络中的其它节点上,这样访问者就可以通过消息的地址访问到消息,然后从消息里得到文件。然而,该方式不适用于大文件。
发明内容
本发明实施方式的目的在于提供一种数据缓存方法、读取方法、电子设备及存储介质,使得能够突破DHT消息体的大小限制,对各数据进行缓存。
为解决上述技术问题,本发明的实施方式提供了一种数据缓存方法,包括以下步骤:确定数据的分布式哈希表DHT键值;根据预设的数据长度,对数据进行切分,得到数据的分片;针对每个分片,根据分片的内容,构建DHT消息体;根据数据的DHT键值,确定分片的DHT键值;将DHT消息体保存至分片的DHT键值对应的地址。
本发明的实施方式还提供了一种数据读取方法,包括:获取待读取的数据的DHT键值;根据数据的DHT键值,确定数据的分片的DHT键值,其中,数据的分片根据预设的数据长度对数据进行切分得到,数据的分片的DHT键值根据数据的DHT键值生成;读取分片的DHT键值对应的DHT消息体;根据读取的DHT消息体,生成数据。
本发明的实施方式还提供了一种电子设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述实施方式提及的数据缓存方法。
本发明的实施方式还提供了一种电子设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如上述实施方式提及的数据读取方法。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述实施方式提及的数据缓存方法。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述实施方式提及的数据读取方法。
本发明实施方式相对于现有技术而言,根据预设的数据长度,对数据进行切分,使得各个分片的数据长度符合预先设定的要求,避免了由于数据的数据长度超过预先设定的要求,导致无法构建DHT消息体的问题。除此之外,基于数据的DHT键值,确定各个分片的DHT键值,使得用户在获知数据的DHT键值的情况下,即可获得各分片的DHT键值,得到各分片所对应的DHT消息体,从而得到整个数据,使得数据的缓存和读取过程更为方便。
另外,根据数据的DHT键值,确定分片的DHT键值,具体包括:确定分片的编号;根据分片的编号和数据的DHT键值,生成分片的种子;根据分片的种子,生成分片的DHT键值。
另外,根据预设的数据长度,对数据进行切分,得到数据的分片之后,数据缓存方法还包括:根据数据的分片数量,确定数据的主DHT消息体;将主DHT消息体保存至数据的DHT键值。
另外,确定数据的DHT键值之后,数据缓存方法还包括:根据数据的DHT键值,确定用于缓存数据的节点;将DHT消息体保存至分片的DHT键值对应的地址,具体包括:通过节点,将DHT消息体保存至分片的DHT键值对应的地址;将主DHT消息体保存至数据的DHT键值,具体包括:通过节点,将主DHT消息体保存至数据的DHT键值。
另外,根据数据的DHT键值,确定数据的分片的DHT键值,具体包括:确定数据的分片的编号;针对每个编号,根据编号和数据的DHT键值,确定编号对应的分片的种子;根据编号对应的分片的种子,确定编号对应的分片的DHT键值。
另外,在获取待读取的数据的DHT键值之后,数据获取方法还包括:读取数据的DHT键值对应的主DHT消息体,主DHT消息体根据数据的分片数量确定;根据主DHT消息体,确定数据的分片数量;在读取分片的DHT键值对应的DHT消息体之后,数据读取方法还包括:根据数据的分片数量,以及当前读取的分片的DHT消息体的数量,判断数据的分片是否接收完成。
另外,读取数据的DHT键值对应的主DHT消息体之前,数据读取方法还包括:根据数据的DHT键值,确定缓存有数据的节点;读取数据的DHT键值对应的主DHT消息体,具体包括:通过节点,读取数据的DHT键值对应的主DHT消息体;读取分片的DHT键值对应的DHT消息体,具体包括:通过节点,读取分片的DHT键值对应的DHT消息体。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是根据本发明的第一实施方式的数据缓存方法的流程图;
图2是根据本发明的第二实施方式的数据缓存方法的流程图;
图3是根据本发明的第二实施方式的文件缓存过程的示意图;
图4是根据本发明的第三实施方式的数据读取方法的流程图;
图5是根据本发明的第四实施方式的数据读取方法的流程图;
图6是根据本发明的第四实施方式的文件读取过程的示意图;
图7是根据本发明的第五实施方式的电子设备的结构示意图;
图8是根据本发明的第六实施方式的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
本发明的第一实施方式涉及一种数据缓存方法,应用于电子设备,如终端或服务器,本实施方式提及的数据缓存方法可以应用于IPFS系统。如图1所示,数据缓存方法包括以下步骤:
步骤101:确定数据的DHT键值。
具体地说,该数据可以是文件。电子设备可以基于预先设置的DHT键值的生成协议,生成该数据的DHT键值。
步骤102:根据预设的数据长度,对数据进行切分,得到数据的分片。
具体地说,电子设备可以以一定长度分段读取该数据。具体地说,电子设备从待缓存的数据的第一个字节开始,依次读取该数据的内容;当读取的内容达到预设数据长度或读取至该数据的结尾后,将当前读取的内容作为该数据的一个分片;判断该数据是否读取完成,若确定未读取完成,继续向后读取该数据的内容,直至读取完整个数据。
需要说明的是,本领域技术人员可以理解,预设的数据长度可以根据DHT消息体允许的最大数据长度确定,例如,设置为DHT消息体允许的最大数据长度的1/n倍,n为大于1的正数,本实施方式不限制预设的数据长度的具体取值。
需要说明的是,本实施方式中,数据的各分片可以是数据切分后得到的各段数据,也可以是各段数据经过加密或其他处理后得到的数据,本实施方式不作限制。
步骤103:针对每个分片,根据分片的内容,构建DHT消息体;根据数据的DHT键值,确定分片的DHT键值;将DHT消息体保存至DHT键值对应的地址。
具体地说,电子设备可以将每个该分片的内容,封装在一个DHT消息体中。根据数据的DHT键值,以及预先设置的基于数据的DHT键值生成分片的DHT键值的协议,得到该分片的DHT键值。
在一个实施例中,电子设备基于分片的DHT键值和分片的编号,生成分片的DHT键值。具体地说,电子设备在分段读取数据时,可以根据读取顺序,确定每段分片的编号。例如,若该分片为电子设备读取的第1个分片,则编号为1。电子设备针对每个分片,确定该分片的编号,根据分片的编号和数据的DHT键值,生成分片的种子;根据分片的种子,生成分片的DHT键值。例如,电子设备可以将数据的DHT键值的公钥或私钥,以及分片的编号,拼接得到字符串,基于该字符串,使用SHA256算法,生成分片的种子,再将该分片的种子作为参数,使用ED25519算法,生成该分片的DHT键值。
需要说明的是,实际应用中,也可以使用其他相关算法进行计算,本实施方式仅为举例说明。
值得一提的是,电子设备基于数据的DHT键值和编号生成分片的DHT键值,使得在已知数据的DHT键值和编号的情况下,即可获得该数据的各个分片的DHT键值,无需获知各个分片的DHT键值,使得数据缓存更为方便。
需要说明的是,本实施方式中,以电子设备基于数据的DHT键值和分片的编号生成分片的DHT键值为例,对分片的DHT键值的生成方式进行了举例说明,实际应用中,电子设备还可以通过其他方式生成分片的DHT键值,本实施方式不限制分片的DHT键值的生成方式。
需要说明的是,本实施方式中,为阐述清楚,将步骤103作为步骤102的后续步骤,实际应用中,可以同时执行步骤102和步骤103,即每读取数据中的预设长度的内容,即对该部分内容构成的分片进行步骤103所示的操作,针对该分片完成步骤103所示操作后,再读取数据的下一段内容。本实施方式不限制步骤102和步骤103的执行顺序。
需要说明的是,以上仅为举例说明,并不对本发明的技术方案构成限定。
与现有技术相比,本实施方式中提供的数据缓存方法,根据预设的数据长度,对数据进行切分,使得各个分片的数据长度符合预先设定的要求,避免了由于数据的数据长度超过预先设定的要求,导致无法构建DHT消息体的问题。除此之外,基于数据的DHT键值,确定各个分片的DHT键值,使得用户在获知数据的DHT键值的情况下,即可获得各分片的DHT键值,得到各分片所对应的DHT消息体,从而得到整个数据,使得数据的缓存和读取过程更为方便。
本发明的第二实施方式涉及一种数据缓存方法,本实施方式在第一实施方式的基础上做了进一步改进,具体改进之处为:本实施方式中,将数据的分片数量,保存在数据的DHT键值中。
具体的说,如图2所示,在本实施方式中,包含步骤201至步骤205,其中,步骤201至步骤203分别与第一实施方式中的步骤101至步骤103大致相同,此处不再赘述。下面主要介绍不同之处:
步骤201:确定数据的DHT键值。
步骤202:根据预设的数据长度,对数据进行切分,得到数据的分片。
步骤203:针对每个分片,根据分片的内容,构建DHT消息体;根据数据的DHT键值,确定分片的DHT键值;将DHT消息体保存至分片的DHT键值对应的地址。
步骤204:根据数据的分片数量,确定数据的主DHT消息体。
在一个实施例中,数据的主DHT消息体还可以包括该数据的文件大小、文件格式、文件的生成日期等信息中的任意一个或任意值组合的信息。
步骤205:将主DHT消息体保存至数据的DHT键值。
具体地说,将基于数据的分片数量确定的主DHT消息体保存至数据的DHT键值中,其他设备在读取该数据时,可以从数据的DHT键值中获取该数据的分片数量,以使在分片被漏获取的情况下,可以及时发现。
可选择的,其他设备在读取数据时,若发现获取的分片的数量小于主DHT消息体所指示的分片数量时,发出提示信息,提示用户数据获取失败。
在一个实施例中,电子设备在确定数据的DHT键值之后,根据数据的DHT键值,确定用于缓存数据的节点。电子设备通过该节点,将DHT消息体保存至分片的DHT键值对应的地址;通过该节点,将主DHT消息体保存至数据的DHT键值。
以数据为文件为例,文件缓存的过程如图3所示,包括以下步骤:
步骤301:获取文件的获取路径和文件的DHT键值。
具体地说,当要分享一个较大的文件时,输入该文件的获取路径,生成该文件的DHT键值。由于DHT地址和DHT键值是一一对应的,当已知文件的DHT键值,即可获得该文件的DHT地址。
步骤302:为该DHT键值加载一批节点。
具体地说,DHT的P2P网络使用Kademlia(简称Kad)算法,计算与电子设备相近的节点。所以,当DHT键值相同时,加载出来的节点都是离该DHT键值较近的一批节点,基本一致。当文件发送至该数据的DHT键值加载得到的节点以后,将DHT键值对应的地址发送给其他访问者,其他访问者即可通过该DHT键值,得到相似的一批节点,从这批节点上获取该DHT键值对应的数据。
步骤303:打开文件。具体地说,根据文件的获取路径,打开文件。
步骤304:令m=0。
步骤305:读取文件的第m段内容。
具体地说,电子设备以一定的长度分段读取出文件,例如读取到第m段,那么将第m段的数据(或者加密过后的数据)封装到一个DHT消息体里。其中,第0段内容是指从读取文件的起始开始至预设的数据长度的内容。
步骤306:判断读取是否成功。
具体地说,电子设备判断当前是否读取到字符,若读取到字符,则认为读取成功,执行步骤307,若未读取到字符,则认为读取失败,执行步骤311。
步骤307:以文件的第m段内容(即第m+1个分片)为消息内容,构建第m段内容的DHT消息体。
需要说明的是,一般DHT键值对应的节点应该是通过Kad算法计算出来的相应的节点,本实施方式中,由于各分片的DHT消息体是子片段,可以使用基于文件的DHT键值加载的那批节点。
值得一提的是,基于文件的DHT键值加载的节点进行分片的保存,减少了节点的开销,减少文件片段丢失的概率。
步骤308:生成第m段内容的DHT键值。
具体地说,将DHT消息体发送到一个子地址里,这里的子地址通过协商好的方法生成,参数主要由序列号与主DHT键值构成。一般DHT键值是由随机数与一定的算法生成,如果算法固定的,那么只要随机数相同,那么DHT键值以及DHT地址就一样。这里我们以主DHT键值的公钥(如果为了安全,也可以用私钥)与序列号生成一个种子,然后通过算法生成子DHT键值。最终达到的效果就是一个主DHT键值对应的第n个子DHT键值是可计算出来的,接收方只要有主DHT键值,就可以自行生成对应的DHT键值,进而获取到应用的内容。
步骤309:通过加载的节点,将该DHT消息体发送至第m段内容的DHT键值对应的地址上。
步骤310:令m=m+1。之后返回执行步骤305。
步骤311:将m作为分片数量,生成文件的主DHT消息体。
具体地说,当文件分片都发送完成后,生成一个主DHT消息体,消息内容包括文件的分片数量,其他内容可自定义。例如,在主DHT消息体里添加计数(subCount)字段,记录分片的数量,用于获取时提前知道有多少个分片。
步骤312:将主消息体发送至文件的DHT键值对应的地址上。
具体地说,通过加载的节点,将主消息体发送到主DHT键值对应的地址上。
本实施方式中,数据的键值和分片的DHT键值之间存在关联,这种关联方式实现简洁,且容易扩展(加密、流媒体),不依赖其它模块(上层业务、区块链、服务器),是通过DHT网络分享文件的一个捷径。另一方面,本实施方式所有的分片不使用Kad算法找节点,而是与主DHT消息体存储于同一批节点,也规避了分片太分散而引起的效率问题。本实施方式突破了DHT消息体的大小限制,由具有DHT消息体的本身的特性(如主动分享,设置过期时间),具有还有很大的应用空间。
需要说明的是,以上仅为举例说明,并不对本发明的技术方案构成限定。
与现有技术相比,本实施方式中提供的数据缓存方法,根据预设的数据长度,对数据进行切分,使得各个分片的数据长度符合预先设定的要求,避免了由于数据的数据长度超过预先设定的要求,导致无法构建DHT消息体的问题。基于数据的DHT键值,确定各个分片的DHT键值,使得用户在获知数据的DHT键值的情况下,即可获得各分片的DHT键值,得到各分片所对应的DHT消息体,从而得到整个数据,使得数据的缓存和读取过程更为方便。除此之外,将分片数量作为主DHT消息体,保存至数据的DHT键值对应的地址,使得其他设备在获取该数据时,可以提前知道该数据的分片数量,便于进行后续获取操作,也便于判断数据是否获取完整。
本发明的第三实施方式涉及一种数据读取方法,应用于电子设备,例如终端或服务器,本实施方式提及的数据缓存方法可以应用于IPFS系统。如图4所示,数据读取方法包括以下步骤:
步骤401:获取待读取的数据的DHT键值。
具体地说,其他设备要获取数据时,需要知道数据的DHT键值。
步骤402:根据数据的DHT键值,确定数据的分片的DHT键值。
具体地说,数据的分片根据预设的数据长度对数据进行切分得到,数据的分片的DHT键值根据数据的DHT键值生成。其中,各分片的获得方式可以参考本发明的第一实施方式的相关描述,此处不再赘述。
在一个例子中,分片的DHT键值根据数据的DHT键值和该分片的编号生成。电子设备确定数据的分片的编号;针对每个编号,根据编号和数据的DHT键值,确定编号对应的分片的种子;根据编号对应的分片的种子,确定编号对应的分片的DHT键值。
步骤403:读取分片的DHT键值对应的DHT消息体。
具体地说,电子设备可以从分片的DHT键值对应的地址,读取该分片构成的DHT消息体。
步骤404:根据读取的DHT消息体,生成数据。
具体地说,由于数据的内容被切分为多个分片,每个分片被构建为DHT消息体。电子设备通过读取各分片的DHT消息体,即可得到数据的内容。
需要说明的是,以上仅为举例说明,并不对本发明的技术方案构成限定。
与现有技术相比,本实施方式中提供的数据缓存方法,由于数据被划分并构建成多个DHT消息体,存储在网络节点,且各个分片的DHT键值根据数据的DHT键值生成,电子设备可以基于数据的DHT键值,从网络中查找各个分片的DHT消息体,从而得到整个数据,使得数据的读取过程更为方便。
本发明的第四实施方式涉及一种数据读取方法,本实施方式是对第三实施方式的进一步改进,具体改进之处为:在获取待读取的数据的DHT键值之后,获取数据的分片数量。
具体地说,如图5所示,在本实施方式中,包含步骤501至步骤507,其中,步骤501、步骤504、步骤505和步骤507分别与第三实施方式中的步骤401至步骤404大致相同,此处不再赘述。下面主要介绍不同之处:
步骤501:获取待读取的数据的DHT键值。
步骤502:读取数据的DHT键值对应的主DHT消息体。
具体地说,主DHT消息体根据数据的分片数量确定。电子设备从数据的DHT键值对应的地址,获取数据的主DHT消息体。
在一个实施例中,主DHT消息体包括数据的分片数量,还包括数据的格式类型、数据大小、生成日期等信息中的任意一个或任意组合。
在一个实施例中,电子设备读取数据的DHT键值对应的主DHT消息体之前,根据数据的DHT键值,确定缓存有数据的节点。电子设备通过节点,读取数据的DHT键值对应的主DHT消息体;通过节点,读取分片的DHT键值对应的DHT消息体。
值得一提的是,电子设备通过基于数据的DHT键值确定的节点获取主DHT消息体和分片的DHT消息体,减少了节点的开销,减少文件片段丢失的概率。
步骤503:根据主DHT消息体,确定数据的分片数量。
具体地说,由于主DHT消息体根据数据的分片数量确定,所以,电子设备可以基于主DHT消息体,确定数据的分片数量。
在一个例子中,若数据的分片数量为t,则可以确定数据的分片的编号为1,2,……,t。
步骤504:根据数据的DHT键值,确定数据的分片的DHT键值。
步骤505:读取分片的DHT键值对应的DHT消息体。
步骤506:根据数据的分片数量,以及当前读取的分片的DHT消息体的数量,判断数据的分片是否接收完成。
具体地说,若当前读取的分片的DHT消息体的数量等于数据的分片数量,说明该数据的分片均获取完成,可以执行步骤507。
在一个实施例中,若已获取完已知的最后一个分片DHT消息体,但当前读取的DHT消息体的数量仍然小于数据的分片数量,可以提示用户数据获取失败。
需要说明的是,本领域技术人员可以理解,实际应用中,当前读取的DHT消息体的数量仍然小于数据的分片数量时,电子设备还可以通过其他操作以克服该问题,本实施方式不作限制。
步骤507:根据读取的DHT消息体,生成数据。
具体地说,若数据的分片的编号根据该分片在数据中的位置确定,则可以根据编号从小到大依次获取分片的DHT消息体,最终组合得到该数据。
需要说明的是,本实施方式中,为阐述清楚,将步骤507设置为步骤506的后一步骤,实际应用中,可以在读取各分片的DHT消息体的同时,将当前读取的DHT消息体与已组合得到的数据的内容进行组合,在读取完最后一个分片的DHT消息体时,即得到了该数据,无需单独执行生成数据的过程。
以数据为文件为例,数据读取过程如图6所示,包括以下步骤:
步骤601:获取文件的DHT键值,以及文件的保存路径。
具体地说,输入文件的保存路径和文件的DHT键值。其中,文件保存路径可以自定义,DHT键值由文件上传方提供。
步骤602:根据文件的DHT键值对应的地址,加载节点。
具体地说,可以参考第二实施方式的相关描述,通过kad算法,计算该文件的DHT键值对应的节点。
步骤603:通过该节点,从文件的DHT键值对应的地址获取主DHT消息体。
具体地说,主DHT消息体中可以增加subCount字段,用于记录分片数量。电子设备通过节点,获取到DHT键值对应的主DHT消息体,读取主DHT消息体的subCount字段,得到文件的分片数量。
步骤604:根据主DHT消息体,确定文件的分片数量,并令p=文件的分片数量。
步骤605:令i=0。
步骤606:判断i<p是否成立。
具体地说,如果文件的分片数量大于0,说明该文件存在分片,那么就进一步循环获取每一个分片的DHT消息体。每个分片的DHT消息体中的主体内容都是文件的一个片段,将片段逐一合并,就是完整的文件了。其中,每个分片的DHT键值可以参考第一实施方式的分片的DHT键值的确定方法得到,此处不再赘述。
若确定i<p,则执行步骤607,否则,结束文件获取过程。
步骤607:计算第i段内容的DHT键值。
步骤608:通过该节点,从第i段内容(即第i个分片)的DHT键值对应的地址获取第i段内容的DHT消息体。
具体地说,该节点是指步骤602确定的节点。
步骤609:解析文件的第i段内容的消息体,得到文件的第i段的内容。
步骤610:将文件的第i段的内容写入上一次组合得到的文件的末尾。
步骤611:令i=i+1。之后返回执行步骤606。
需要说明的是,以上仅为举例说明,并不对本发明的技术方案构成限定。
与现有技术相比,本实施方式中提供的数据缓存方法,由于数据被划分并构建成多个DHT消息体,存储在网络节点,且各个分片的DHT键值根据数据的DHT键值生成,电子设备可以基于数据的DHT键值,从网络中查找各个分片的DHT消息体,从而得到整个数据,使得数据的读取过程更为方便。除此之外,从主DHT消息体中获取数据的分片数量,使得在获取该数据时,可以提前知道该数据的分片数量,便于进行后续获取操作,也便于判断数据是否获取完整。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明的第五实施方式涉及一种电子设备,如图7所示,包括:至少一个处理器701;以及,与至少一个处理器701通信连接的存储器702;其中,存储器702存储有可被至少一个处理器701执行的指令,指令被至少一个处理器701执行,以使至少一个处理器701能够执行如第一实施方式或第二实施方式提及的数据缓存方法。
本发明的第六实施方式涉及一种电子设备,如图8所示,包括:至少一个处理器801;以及,与至少一个处理器801通信连接的存储器802;其中,存储器802存储有可被至少一个处理器801执行的指令,指令被至少一个处理器801执行,以使至少一个处理器801能够执行如第三实施方式或第四实施方式提及的数据读取方法。
该电子设备包括:一个或多个处理器以及存储器,图7和图8中以一个处理器为例。处理器、存储器可以通过总线或者其他方式连接,图7和图8中以通过总线连接为例。存储器作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器通过运行存储在存储器中的非易失性软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述数据缓存方法或数据读取方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储选项列表等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至外接设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器中,当被一个或者多个处理器执行时,执行上述任意方法实施方式中的数据缓存方法或数据读取方法。
上述电子设备可执行本申请实施方式所提供的方法,具备执行方法相应的功能模块和有益效果,未在本实施方式中详尽描述的技术细节,可参见本申请实施方式所提供的方法。
本发明的第七实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述第一实施方式或第二实施方式提及的数据缓存方法。
本发明的第八实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述第一实施方式或第二实施方式提及的数据读取方法。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

Claims (10)

1.一种数据缓存方法,其特征在于,包括:
确定数据的分布式哈希表DHT键值;
根据预设的数据长度,对数据进行切分,得到所述数据的分片;
针对每个分片,根据所述分片的内容,构建DHT消息体;根据所述数据的DHT键值,确定所述分片的DHT键值;将所述DHT消息体保存至所述分片的DHT键值对应的地址;
其中,所述根据所述数据的DHT键值,确定所述分片的DHT键值,具体包括:
确定所述分片的编号;
根据所述分片的编号和所述数据的DHT键值,生成所述分片的种子;
根据所述分片的种子,生成所述分片的DHT键值。
2.根据权利要求1所述的数据缓存方法,其特征在于,所述根据预设的数据长度,对数据进行切分,得到所述数据的分片之后,所述数据缓存方法还包括:
根据所述数据的分片数量,确定所述数据的主DHT消息体;
将所述主DHT消息体保存至所述数据的DHT键值。
3.根据权利要求2所述的数据缓存方法,其特征在于,所述确定所述数据的DHT键值之后,所述数据缓存方法还包括:
根据所述数据的DHT键值,确定用于缓存所述数据的节点;
所述将所述DHT消息体保存至所述分片的DHT键值对应的地址,具体包括:
通过所述节点,将所述DHT消息体保存至所述分片的DHT键值对应的地址;
所述将所述主DHT消息体保存至所述数据的DHT键值,具体包括:
通过所述节点,将所述主DHT消息体保存至所述数据的DHT键值。
4.一种数据读取方法,其特征在于,包括:
获取待读取的数据的DHT键值;
根据所述数据的DHT键值,确定所述数据的分片的DHT键值,其中,所述数据的分片根据预设的数据长度对数据进行切分得到,所述数据的分片的DHT键值根据所述数据的DHT键值生成;
读取所述分片的DHT键值对应的DHT消息体;
根据读取的DHT消息体,生成所述数据;
其中,所述根据所述数据的DHT键值,确定所述数据的分片的DHT键值,具体包括:
确定所述数据的分片的编号;
针对每个编号,根据所述编号和所述数据的DHT键值,确定所述编号对应的分片的种子;根据所述编号对应的分片的种子,确定所述编号对应的分片的DHT键值。
5.根据权利要求4所述的数据读取方法,其特征在于,在所述获取待读取的数据的DHT键值之后,所述数据获取方法还包括:
读取所述数据的DHT键值对应的主DHT消息体,所述主DHT消息体根据所述数据的分片数量确定;
根据所述主DHT消息体,确定所述数据的分片数量;
在所述读取所述分片的DHT键值对应的DHT消息体之后,所述数据读取方法还包括:
根据所述数据的分片数量,以及当前读取的分片的DHT消息体的数量,判断所述数据的分片是否接收完成。
6.根据权利要求5所述的数据读取方法,其特征在于,所述读取所述数据的DHT键值对应的主DHT消息体之前,所述数据读取方法还包括:
根据所述数据的DHT键值,确定缓存有所述数据的节点;
所述读取所述数据的DHT键值对应的主DHT消息体,具体包括:
通过所述节点,读取所述数据的DHT键值对应的主DHT消息体;
所述读取所述分片的DHT键值对应的DHT消息体,具体包括:
通过所述节点,读取所述分片的DHT键值对应的DHT消息体。
7.一种电子设备,其特征在于,包括:至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至3中任一项所述的数据缓存方法。
8.一种电子设备,其特征在于,包括:至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求4至6中任一项所述的数据读取方法。
9.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至3中任一项所述的数据缓存方法。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求4至6中任一项所述的数据读取方法。
CN201911238191.4A 2019-12-06 2019-12-06 一种数据缓存方法、读取方法、电子设备及存储介质 Active CN111061682B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911238191.4A CN111061682B (zh) 2019-12-06 2019-12-06 一种数据缓存方法、读取方法、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911238191.4A CN111061682B (zh) 2019-12-06 2019-12-06 一种数据缓存方法、读取方法、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN111061682A CN111061682A (zh) 2020-04-24
CN111061682B true CN111061682B (zh) 2023-07-07

Family

ID=70300147

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911238191.4A Active CN111061682B (zh) 2019-12-06 2019-12-06 一种数据缓存方法、读取方法、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN111061682B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113938324A (zh) * 2021-12-16 2022-01-14 成都车晓科技有限公司 一种基于区块链的车贷信息的安全存储方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102004797A (zh) * 2010-12-24 2011-04-06 深圳市同洲电子股份有限公司 一种数据处理方法、装置和系统
CN109508326A (zh) * 2018-11-22 2019-03-22 北京百度网讯科技有限公司 用于处理数据的方法、装置和系统
CN110099114A (zh) * 2019-04-30 2019-08-06 普华云创科技(北京)有限公司 区块链和ipfs协议的文件存储方法、系统、终端及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11176111B2 (en) * 2013-03-15 2021-11-16 Nuodb, Inc. Distributed database management system with dynamically split B-tree indexes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102004797A (zh) * 2010-12-24 2011-04-06 深圳市同洲电子股份有限公司 一种数据处理方法、装置和系统
CN109508326A (zh) * 2018-11-22 2019-03-22 北京百度网讯科技有限公司 用于处理数据的方法、装置和系统
CN110099114A (zh) * 2019-04-30 2019-08-06 普华云创科技(北京)有限公司 区块链和ipfs协议的文件存储方法、系统、终端及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Yiming Zhang ; Dongsheng Li ; Chuanxiong Guo ; Haitao Wu ; Yongqiang Xiong ; ."CubicRing: Exploiting Network Proximity for Distributed In-Memory Key-Value Store".IEEE/ACM Transactions on Networking.2017,全文. *
张昌文 ; 满毅 ; 何进 ; 谷杰铭 ; 邢潇.基于"PFS生物数据的存储传输".《网络空间安全》.2019,全文. *

Also Published As

Publication number Publication date
CN111061682A (zh) 2020-04-24

Similar Documents

Publication Publication Date Title
CN108256114B (zh) 文档在线预览方法、装置、计算机设备和存储介质
US10291482B2 (en) ECU for transmitting large data in HiL test environment, system including the same and method thereof
EP3780438B1 (en) Data transmission method and related device
EP3211852A1 (en) Ssh protocol-based session parsing method and system
US20160105323A1 (en) Node identification using clusters
CN110995513A (zh) 物联网系统中的数据发送、接收方法、物联网设备及平台
CN111817984B (zh) 消息发送方法、装置、设备及存储介质
CN111970236B (zh) 跨网数据传输方法和装置
CN107689984B (zh) 消息推送方法、装置、计算机设备和存储介质
CN111061682B (zh) 一种数据缓存方法、读取方法、电子设备及存储介质
CN103746768A (zh) 一种数据包的识别方法及设备
CN113852665A (zh) 文件上传方法、装置、电子设备、存储介质及程序产品
CN112119608B (zh) 用于可验证秘密共享的系统和异步协议
US20090280781A1 (en) Method and device for storing and transmitting messages
CN109460182A (zh) 一种数据存储、读取方法及装置
CN107800758B (zh) 风控数据处理方法、装置及系统
US10250515B2 (en) Method and device for forwarding data messages
CN115297104A (zh) 文件上传方法、装置、电子设备和存储介质
CN111262837B (zh) 一种数据加密方法、数据解密方法、系统、设备和介质
CN113900990A (zh) 文件分片存储方法、装置、设备及存储介质
CN115208872A (zh) 边缘云镜像数据处理方法、装置、计算机设备和存储介质
JP2011141587A (ja) 分散処理システム、分散処理方法、およびプログラム
CN110932980B (zh) 通信方法、终端及计算机可读存储介质
CN111506658B (zh) 数据处理方法、装置、第一设备及存储介质
CN111193696B (zh) 数据发送、数据接收方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210207

Address after: 200245 2nd floor, building 2, no.1508, Kunyang Road, Minhang District, Shanghai

Applicant after: Dalu Robot Co.,Ltd.

Address before: 610094 West Section of Fucheng Avenue, Chengdu High-tech District, Sichuan Province

Applicant before: CLOUDMINDS (CHENGDU) TECHNOLOGIES Co.,Ltd.

CB02 Change of applicant information
CB02 Change of applicant information

Address after: 200245 Building 8, No. 207, Zhongqing Road, Minhang District, Shanghai

Applicant after: Dayu robot Co.,Ltd.

Address before: 200245 2nd floor, building 2, no.1508, Kunyang Road, Minhang District, Shanghai

Applicant before: Dalu Robot Co.,Ltd.

GR01 Patent grant
GR01 Patent grant