CN110099112A - 基于点对点网络的数据存储方法、装置、介质及终端设备 - Google Patents
基于点对点网络的数据存储方法、装置、介质及终端设备 Download PDFInfo
- Publication number
- CN110099112A CN110099112A CN201910347818.3A CN201910347818A CN110099112A CN 110099112 A CN110099112 A CN 110099112A CN 201910347818 A CN201910347818 A CN 201910347818A CN 110099112 A CN110099112 A CN 110099112A
- Authority
- CN
- China
- Prior art keywords
- point
- node
- data
- data fragmentation
- grade
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
- H04L67/108—Resource delivery mechanisms characterised by resources being split in blocks or fragments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于计算机技术领域,尤其涉及一种基于点对点网络的数据存储方法、装置、计算机可读存储介质及终端设备。在所述方法中,源节点将待存储数据划分为各个数据分片,并确定各个数据分片的备份数目;所述源节点确定与第s个数据分片对应的第1级存储节点,并向所述第1级存储节点发送数据存储请求;第n级存储节点确定与第s个数据分片对应的第n+1级存储节点,并向所述第n+1级存储节点发送数据存储请求;所述第n+1级存储节点在接收到所述数据存储请求后,从各个目标节点下载及存储第s个数据分片,将所述第n+1级存储节点的节点标识添加入所述存储节点集合中,并将计数值减去一个计数单元,直至计数值为0为止,从而减少了对源节点带宽资源的占用。
Description
技术领域
本发明属于计算机技术领域,尤其涉及一种基于点对点网络的数据存储方法、装置、计算机可读存储介质及终端设备。
背景技术
点对点(Peer-to-Peer,P2P)网络是一种主要由大量的对等节点组成的网络架构,不同节点之间关系对等,可以互相传输资源。在资源传输过程中,每个节点既会从点对点网络中其他拥有资源的节点,获取所需的资源,也会将已下载的资源,分发给点对点网络中每个需要该资源的节点,从而极大地提高了资源在网络中的传输效率。
在点对点网络中进行存储中,为了保证数据的安全性,需要增加数据的冗余度,常常会把同一个数据分发多份到点对点网络中,而作为存储空间消费者,一份数据多次反复传输会耗用其大量的带宽,造成对其带宽资源的浪费。
发明内容
有鉴于此,本发明实施例提供了一种基于点对点网络的数据存储方法、装置、计算机可读存储介质及终端设备,以解决现有的办公应用程序操作比较繁琐,用户体验较差的问题。
本发明实施例的第一方面提供了一种基于点对点网络的数据存储方法,所述方法应用于包括两个以上节点的点对点网络中,所述方法包括:
源节点将待存储数据划分为各个数据分片,并确定各个数据分片的备份数目,所述源节点为所述点对点网络中的任意一个节点;
所述源节点在所述点对点网络中确定与第s个数据分片对应的第1级存储节点,并向所述第1级存储节点发送数据存储请求,所述数据存储请求中包括计数值和存储节点集合,所述计数值等于第s个数据分片的备份数目,所述存储节点集合为空,1≤s≤SN,SN为数据分片的数目;
所述第1级存储节点在接收到所述数据存储请求后,从所述源节点下载及存储第s个数据分片,将所述第1级存储节点的节点标识添加入所述存储节点集合中,并将所述计数值减去一个计数单元;
第n级存储节点在所述点对点网络中确定与第s个数据分片对应的第n+1级存储节点,并向所述第n+1级存储节点发送数据存储请求,n为正整数;
所述第n+1级存储节点在接收到所述数据存储请求后,从各个目标节点下载及存储第s个数据分片,将所述第n+1级存储节点的节点标识添加入所述存储节点集合中,并将所述计数值减去一个计数单元,直至所述计数值为0为止,所述目标节点为所述数据存储请求的存储节点集合中的各个节点标识分别所对应的节点。
本发明实施例的第二方面提供了一种数据存储装置,可以包括:
数据分片划分模块,用于将待存储数据划分为各个数据分片;
备份数目确定模块,用于确定各个数据分片的备份数目;
第一确定模块,用于在所述点对点网络中确定与第s个数据分片对应的第1级存储节点,并向所述第1级存储节点发送数据存储请求,所述数据存储请求中包括计数值和存储节点集合,所述计数值等于第s个数据分片的备份数目,所述存储节点集合为空,1≤s≤SN,SN为数据分片的数目;
第一处理模块,用于在接收到所述数据存储请求后,从所述源节点下载及存储第s个数据分片,将本地的节点标识添加入所述存储节点集合中,并将所述计数值减去一个计数单元;
第二确定模块,用于在所述点对点网络中确定与第s个数据分片对应的下一级存储节点,并向下一级存储节点发送数据存储请求;
第二处理模块,用于在接收到所述数据存储请求后,从各个目标节点下载及存储第s个数据分片,将本地的节点标识添加入所述存储节点集合中,并将所述计数值减去一个计数单元,所述目标节点为所述数据存储请求的存储节点集合中的各个节点标识分别所对应的节点。
本发明实施例的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现上述数据存储装置的功能。
本发明实施例的第四方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现上述数据存储装置的功能。
本发明实施例与现有技术相比存在的有益效果是:在本发明实施例中,源节点首先将待存储数据划分为各个数据分片,并确定各个数据分片的备份数目,然后在所述点对点网络中确定与第s个数据分片对应的第1级存储节点,并向所述第1级存储节点发送数据存储请求,所述数据存储请求中包括计数值和存储节点集合,所述计数值等于第s个数据分片的备份数目,所述存储节点集合为空。所述第1级存储节点在接收到所述数据存储请求后,首先从所述源节点下载及存储第s个数据分片,将自己的节点标识添加入所述存储节点集合中,并将所述计数值减去一个计数单元,然后在所述点对点网络中确定与第s个数据分片对应的第2级存储节点,并向所述第2级存储节点发送数据存储请求,所述第2级存储节点在接收到所述数据存储请求后,从各个目标节点(即所述数据存储请求的存储节点集合中的各个节点标识分别所对应的节点)下载及存储第s个数据分片,……,不断重复以上过程,直至所述计数值为0为止。通过这样的方式,作为存储消费者(也即所述源节点)只用发送一份数据到点对点网络中,网络中的其它节点自行进行数据分发且逐次增大并发数,从而达到快速分发的效果,减少了对其带宽资源的占用。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例中一种基于点对点网络的数据存储方法的一个实施例流程图;
图2为在点对点网络中确定与第s个数据分片对应的第1级存储节点的示意流程图;
图3为哈希环的示意图;
图4为点对点网络中的节点映射至哈希环上的示意图;
图5为在哈希环上查找第1级存储节点的示意图;
图6为本发明实施例中一种数据存储装置的一个实施例结构图;
图7为本发明实施例中一种终端设备的示意框图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,本发明实施例中一种基于点对点网络的数据存储方法的一个实施例可以包括:
步骤S101、源节点将待存储数据划分为各个数据分片,并确定各个数据分片的备份数目。
所述源节点为所述点对点网络中的任意一个节点。在实际使用过程中,若某一用户需要将其手机、平板、电脑等等终端设备(即所述源节点)中的数据存储到所述点对点网络中,可以在其终端设备上安装的特定应用程序中选定待存储数据,并点击确定按钮,以告知所述源节点进行数据存储操作。
所述源节点可以对所述待存储数据进行分片处理,即按照一定的规则,将一个数据集(即所述待存储数据)划分成多个相互独立、正交的数据子集(即各个数据分片),以便于分布式存储。
具体地,所述源节点可以首先根据下式计算数据分片的数目:
其中,DataBytes为所述待存储数据的字节数,MaxShard为数据分片的最大字节数,其具体取值可以根据实际情况进行设置,例如,可以将其设置为1024、2048、4096或者其它取值,Ceil为向上取整函数,SN为数据分片的数目。
然后,将所述待存储数据划分为满足以下条件的SN个数据分片:
其中,s为各个数据分片的序号,1≤s≤SN,ShdBytess为第s个数据分片的字节数,Max为求最大值函数,Min为求最小值函数,Thresh为预设的比例阈值,其具体取值可以根据实际情况进行设置,例如,可以将其设置为0.1、0.2、0.3或者其它取值。
在完成数据分片的划分之后,所述源节点可以为每个数据分片均分配一个分片标识,且各个数据分片的标识在整个点对点网络中均是唯一的,任意两个数据分片的分片标识均不相同。
对于这些数据分片而言,其在点对点网络中备份的数目越多,冗余度越大,当点对点网络中存储该数据分片的一个或多个存储节点出现故障时,仍有较多的其它的存储该数据分片的存储节点正常运行,则其数据的安全性也越高。但是,若这些数据分片在点对点网络中备份的数目过多,则会占用大量的网络存储资源,因此,需要对这两者进行权衡,选择合适的备份数目。
在本实施例中,可以根据用户的等级来确定其数据分片在点对点网络中的备份数目,将用户划分为普通用户、付费用户、VIP用户等多个等级,每个等级均有与之对应的备份数目,且等级越高的用户,其数据分片在点对点网络中的备份数目也越多。
例如,可以设置普通用户的数据分片在点对点网络中的备份数目为3、付费用户的数据分片在点对点网络中的备份数目为5、VIP用户的数据分片在点对点网络中的备份数目为10等等。
优选地,在本实施例中可以通过下式来计算各个数据分片的备份数目:
其中,NodesNum为所述点对点网络中的节点总数,BaseNdNum为预设的基准节点数目,HsShardNum为根据历史记录统计得到的在所述点对点网络中存储的数据分片的总数,HsDmgSdNum为根据所述历史记录统计得到的在所述点对点网络中丢失或损毁的数据分片的总数,c为用户等级按照从高到低排列的序号,1≤c≤ClassNum,ClassNum为用户等级的总数,ClassCoefc为第c个用户等级的权重系数,等级越高,则对应的系数也越大,具体的系数取值可以根据实际情况进行设置,例如,可以设置ClassCoef1=0.001,ClassCoef2=0.0005,ClassCoef3=0.0003,……,依次类推,BkpNumc为第c个用户等级的数据分片在所述点对点网络中的备份数目。
步骤S102、所述源节点在所述点对点网络中确定与第s个数据分片对应的第1级存储节点,并向所述第1级存储节点发送数据存储请求。
其中,1≤s≤SN。具体地,所述源节点可以通过如图2所示的过程在所述点对点网络中确定与第s个数据分片对应的第1级存储节点:
步骤S1021、使用预设的第一哈希函数计算第s个数据分片的哈希值。
在本实施例中,可以根据下式分别计算第s个数据分片的哈希值:
ShardHashs=FsHashFunc(ShardIDs)
其中,ShardIDs为第s个数据分片的分片标识,FsHashFunc为所述第一哈希函数,ShardHashs为第s个数据分片的哈希值。
所有的哈希函数都有如下一个基本特性:如果两个哈希值是不相同的(根据同一哈希函数),那么这两个哈希值的原始输入也是不相同的。这个特性使哈希函数具有确定性的结果。但另一方面,哈希函数的输入和输出不是唯一对应关系的,如果两个哈希值相同,两个输入值很可能是相同的,但也可能不同,这种情况称为“哈希碰撞”,这通常是两个不同的输入值,刻意计算出相同的输出值。但对于现有技术中常用的哈希函数而言,其发生碰撞的概率极低,几乎可以忽略不计,输入一些数据计算出哈希值,然后部分改变输入值,一个具有强混淆特性的哈希函数会产生一个完全不同的哈希值。本实施例中的第一哈希函数以及其它哈希函数可以包括但不限于MD4、MD5、SHA1等任意一个现有技术中常用的哈希函数。
步骤S1022、将预设的哈希环上与第s个数据分片的哈希值对应的位置点确定目标位置点。
所述哈希环为由所述第一哈希函数的所有函数值按照从小到大的顺序顺时针或者逆时针依次连接所构成的圆环,即所述哈希环上的每个位置点均对应于所述第一哈希函数的一个函数值,若所述第一哈希函数的值域为[0,N],且以顺时针的顺序排列,则可构成如图3所示的哈希环。
步骤S1023、获取所述哈希环上的各个基准位置点。
其中,每个基准位置点均为与所述点对点网络中的一个节点对应的位置点。所述基准位置点的设置过程包括:
首先,获取所述点对点网络中的各个节点的身份标识。
某一节点的身份标识可以为该节点的国际移动设备身份码(InternationalMobile Equipment Identity,IMEI),国际移动设备身份码是由15位数字组成的电子串号,它与每个终端设备一一对应,而且该码是全世界唯一的。每一个终端设备在组装完成后都将被赋予一个全球唯一的号码,这个号码从生产到交付使用都将被制造生产的厂商所记录。
将获取到的各个节点的身份标识分别表示为:NodeID1、NodeID2、…、NodeIDm、…、NodeIDM,其中,m为各个节点的序号,1≤m≤NodesNum,NodeIDm为第m个节点的身份标识。
然后,使用预设的第二哈希函数分别对所述点对点网络中的各个节点的身份标识进行哈希运算,得到各个节点的哈希值。
具体地,可以根据下式分别计算各个节点的哈希值:
NodeHashm=SdHashFunc(NodeIDm)
其中,SdHashFunc为所述第二哈希函数,且所述第二哈希函数的值域与所述第一哈希函数的值域一致,以此保证两者可以映射到同一个哈希环上,NodeHashm为第m个节点的哈希值。
最后,将所述哈希环上与第m个节点的哈希值对应的位置点确定为与第m个节点对应的基准位置点。
图4所示为4个节点的哈希值分别映射至哈希环上的情形,NodeHash1、NodeHash2、NodeHash3、NodeHash4所对应的位置点即为各个基准位置点。
步骤S1024、从所述目标位置点开始顺时针或者逆时针查找所述基准位置点,并将查找到的第一个基准位置点所对应的节点确定为与第s个数据分片对应的第1级存储节点。
以图5为例,从第1个数据分片的哈希值ShardHash1对应的目标位置点开始顺时针查找,找到的第一个基准位置点为NodeHash2对应的位置点,则将所述点对点网络中的第2个节点确定为与第1个数据分片对应的第1级存储节点。
通过上述方法,可以确定出以下的存储对应关系:
若采用逆时针查找的方法,其具体过程与逆时针查找的过程类似,具体可参照上述过程,此处不再赘述。
在确定出所述第1级存储节点之后,所述源节点可以向所述第1级存储节点发送数据存储请求。所述数据存储请求中包括计数值和存储节点集合以及第s个数据分片的分片标识,在初始状态下,所述计数值等于第s个数据分片的备份数目,所述存储节点集合为空。
步骤S103、所述第1级存储节点在接收到所述数据存储请求后,从所述源节点下载及存储第s个数据分片,将所述第1级存储节点的节点标识添加入所述存储节点集合中,并将所述计数值减去一个计数单元。
将所述存储节点集合记为NodeSet,将所述第1级存储节点的节点标识记为NodeID(1),将所述计数值记为Count,则有:
NodeSet=NodeSet∪NodeID(1);
Count=Count-1。
步骤S104、第n级存储节点在所述点对点网络中确定与第s个数据分片对应的第n+1级存储节点,并向所述第n+1级存储节点发送数据存储请求。
n为正整数,初始状态下,设置n=1。
其中,第n级存储节点确定与第s个数据分片对应的第n+1级存储节点的过程与图2所示的过程类似,具体可参见前述内容,此处不再赘述。但需要注意的是,在这一过程中,需要将所述存储节点集合中的各个节点所对应的基准位置点从哈希环中剔除,否则,最终确定出的第n+1级存储节点仍会为所述存储节点集合中的节点。
步骤S105、所述第n+1级存储节点在接收到所述数据存储请求后,从各个目标节点下载及存储第s个数据分片,将所述第n+1级存储节点的节点标识添加入所述存储节点集合中,并将所述计数值减去一个计数单元。
所述目标节点为所述数据存储请求的存储节点集合中的各个节点标识分别所对应的节点。需要注意的是,所述第n+1级存储节点是采用并发下载的方式同时从各个目标节点下载第s个数据分片,以加快下载速度。
在下载及存储完成之后,将所述第n+1级存储节点的节点标识记为NodeID(n+1),则有:
NodeSet=NodeSet∪NodeID(n+1);
Count=Count-1。
步骤S106、判断所述计数值是否为0。
若所述计数值不为0,则说明数据分片的备份数目还未完成,此时继续执行步骤S107,若所述计数值为0,则说明数据分片的备份数目已经完成,此时执行步骤S108。
步骤S107、将n增加一个计数单元。
即执行:n=n+1,然后返回执行步骤S104及其后续步骤,直至所述计数值为0为止。
步骤S108、结束数据存储过程。
综上所述,在本发明实施例中,源节点首先将待存储数据划分为各个数据分片,并确定各个数据分片的备份数目,然后在所述点对点网络中确定与第s个数据分片对应的第1级存储节点,并向所述第1级存储节点发送数据存储请求,所述数据存储请求中包括计数值和存储节点集合,所述计数值等于第s个数据分片的备份数目,所述存储节点集合为空。所述第1级存储节点在接收到所述数据存储请求后,首先从所述源节点下载及存储第s个数据分片,将自己的节点标识添加入所述存储节点集合中,并将所述计数值减去一个计数单元,然后在所述点对点网络中确定与第s个数据分片对应的第2级存储节点,并向所述第2级存储节点发送数据存储请求,所述第2级存储节点在接收到所述数据存储请求后,从各个目标节点(即所述数据存储请求的存储节点集合中的各个节点标识分别所对应的节点)下载及存储第s个数据分片,……,不断重复以上过程,直至所述计数值为0为止。通过这样的方式,作为存储消费者(也即所述源节点)只用发送一份数据到点对点网络中,网络中的其它节点自行进行数据分发且逐次增大并发数,从而达到快速分发的效果,减少了对其带宽资源的占用。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
对应于上文实施例所述的一种基于点对点网络的数据存储方法,图6示出了本发明实施例提供的一种数据存储装置的一个实施例结构图。
本实施例中,一种数据存储装置可以包括:
数据分片划分模块601,用于将待存储数据划分为各个数据分片;
备份数目确定模块602,用于确定各个数据分片的备份数目;
第一确定模块603,用于在所述点对点网络中确定与第s个数据分片对应的第1级存储节点,并向所述第1级存储节点发送数据存储请求,所述数据存储请求中包括计数值和存储节点集合,所述计数值等于第s个数据分片的备份数目,所述存储节点集合为空,1≤s≤SN,SN为数据分片的数目;
第一处理模块604,用于在接收到所述数据存储请求后,从所述源节点下载及存储第s个数据分片,将本地的节点标识添加入所述存储节点集合中,并将所述计数值减去一个计数单元;
第二确定模块605,用于在所述点对点网络中确定与第s个数据分片对应的下一级存储节点,并向下一级存储节点发送数据存储请求;
第二处理模块606,用于在接收到所述数据存储请求后,从各个目标节点下载及存储第s个数据分片,将本地的节点标识添加入所述存储节点集合中,并将所述计数值减去一个计数单元,所述目标节点为所述数据存储请求的存储节点集合中的各个节点标识分别所对应的节点。
进一步地,所述备份数目确定模块具体用于根据下式计算各个数据分片的备份数目:
其中,NodesNum为所述点对点网络中的节点总数,BaseNdNum为预设的基准节点数目,HsShardNum为根据历史记录统计得到的在所述点对点网络中存储的数据分片的总数,HsDmgSdNum为根据所述历史记录统计得到的在所述点对点网络中丢失或损毁的数据分片的总数,c为用户等级按照从高到低排列的序号,1≤c≤ClassNum,ClassNum为用户等级的总数,ClassCoefc为第c个用户等级的权重系数,BkpNumc为第c个用户等级的数据分片在所述点对点网络中的备份数目。
进一步地,所述第一确定模块可以包括:
分片哈希值计算单元,用于使用预设的第一哈希函数计算第s个数据分片的哈希值;
目标位置点确定单元,用于将预设的哈希环上与第s个数据分片的哈希值对应的位置点确定目标位置点,所述哈希环为由所述第一哈希函数的所有函数值按照从小到大的顺序顺时针或者逆时针依次连接所构成的圆环,即所述哈希环上的每个位置点均对应于所述第一哈希函数的一个函数值;
基准位置点获取单元,用于获取所述哈希环上的各个基准位置点,其中,每个基准位置点均为与所述点对点网络中的一个节点对应的位置点;
基准位置点查找单元,用于从所述目标位置点开始顺时针或者逆时针查找所述基准位置点,并将查找到的第一个基准位置点所对应的节点确定为与第s个数据分片对应的第1级存储节点。
进一步地,所述第一确定模块还可以包括:
身份标识获取单元,用于获取所述点对点网络中的各个节点的身份标识;
哈希运算单元,用于使用预设的第二哈希函数分别对所述点对点网络中的各个节点的身份标识进行哈希运算,得到各个节点的哈希值,所述第二哈希函数的值域与所述第一哈希函数的值域一致;
基准位置点确定单元,用于将所述哈希环上与第m个节点的哈希值对应的位置点确定为与第m个节点对应的基准位置点,1≤m≤NodesNum。
进一步地,所述数据分片划分模块可以包括:
分片数目计算单元,用于根据下式计算数据分片的数目:
其中,DataBytes为所述待存储数据的字节数,MaxShard为数据分片的最大字节数,Ceil为向上取整函数;
数据分片划分单元,用于将所述待存储数据划分为满足以下条件的SN个数据分片:
其中,ShdBytess为第s个数据分片的字节数,Max为求最大值函数,Min为求最小值函数,Thresh为预设的比例阈值。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置,模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
图7示出了本发明实施例提供的一种终端设备的示意框图,为了便于说明,仅示出了与本发明实施例相关的部分。
在本实施例中,所述终端设备7可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该终端设备7可包括:处理器70、存储器71以及存储在所述存储器71中并可在所述处理器70上运行的计算机可读指令72,例如执行上述的基于点对点网络的数据存储方法的计算机可读指令。所述处理器70执行所述计算机可读指令72时实现上述各装置实施例中各模块/单元的功能,例如图6所示模块601至606的功能。
示例性的,所述计算机可读指令72可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器71中,并由所述处理器70执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机可读指令72在所述终端设备7中的执行过程。
所述处理器70可以是中央处理单元(Central Processing Unit,CPU),还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器71可以是所述终端设备7的内部存储单元,例如终端设备7的硬盘或内存。所述存储器71也可以是所述终端设备7的外部存储设备,例如所述终端设备7上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器71还可以既包括所述终端设备7的内部存储单元也包括外部存储设备。所述存储器71用于存储所述计算机可读指令以及所述终端设备7所需的其它指令和数据。所述存储器71还可以用于暂时地存储已经输出或者将要输出的数据。
在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干计算机可读指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储计算机可读指令的介质。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于点对点网络的数据存储方法,其特征在于,所述方法应用于包括两个以上节点的点对点网络中,所述方法包括:
源节点将待存储数据划分为各个数据分片,并确定各个数据分片的备份数目,所述源节点为所述点对点网络中的任意一个节点;
所述源节点在所述点对点网络中确定与第s个数据分片对应的第1级存储节点,并向所述第1级存储节点发送数据存储请求,所述数据存储请求中包括计数值和存储节点集合,所述计数值等于第s个数据分片的备份数目,所述存储节点集合为空,1≤s≤SN,SN为数据分片的数目;
所述第1级存储节点在接收到所述数据存储请求后,从所述源节点下载及存储第s个数据分片,将所述第1级存储节点的节点标识添加入所述存储节点集合中,并将所述计数值减去一个计数单元;
第n级存储节点在所述点对点网络中确定与第s个数据分片对应的第n+1级存储节点,并向所述第n+1级存储节点发送数据存储请求,n为正整数;
所述第n+1级存储节点在接收到所述数据存储请求后,从各个目标节点下载及存储第s个数据分片,将所述第n+1级存储节点的节点标识添加入所述存储节点集合中,并将所述计数值减去一个计数单元,直至所述计数值为0为止,所述目标节点为所述数据存储请求的存储节点集合中的各个节点标识分别所对应的节点。
2.根据权利要求1所述的数据存储方法,其特征在于,所述确定各个数据分片的备份数目包括:
根据下式计算各个数据分片的备份数目:
其中,NodesNum为所述点对点网络中的节点总数,BaseNdNum为预设的基准节点数目,HsShardNum为根据历史记录统计得到的在所述点对点网络中存储的数据分片的总数,HsDmgSdNum为根据所述历史记录统计得到的在所述点对点网络中丢失或损毁的数据分片的总数,c为用户等级按照从高到低排列的序号,1≤c≤ClassNum,ClassNum为用户等级的总数,ClassCoefc为第c个用户等级的权重系数,BkpNumc为第c个用户等级的数据分片在所述点对点网络中的备份数目。
3.根据权利要求1所述的数据存储方法,其特征在于,所述在所述点对点网络中确定与第s个数据分片对应的第1级存储节点包括:
使用预设的第一哈希函数计算第s个数据分片的哈希值;
将预设的哈希环上与第s个数据分片的哈希值对应的位置点确定目标位置点,所述哈希环为由所述第一哈希函数的所有函数值按照从小到大的顺序顺时针或者逆时针依次连接所构成的圆环,即所述哈希环上的每个位置点均对应于所述第一哈希函数的一个函数值;
获取所述哈希环上的各个基准位置点,其中,每个基准位置点均为与所述点对点网络中的一个节点对应的位置点;
从所述目标位置点开始顺时针或者逆时针查找所述基准位置点,并将查找到的第一个基准位置点所对应的节点确定为与第s个数据分片对应的第1级存储节点。
4.根据权利要求3所述的数据存储方法,其特征在于,所述基准位置点的设置过程包括:
获取所述点对点网络中的各个节点的身份标识;
使用预设的第二哈希函数分别对所述点对点网络中的各个节点的身份标识进行哈希运算,得到各个节点的哈希值,所述第二哈希函数的值域与所述第一哈希函数的值域一致;
将所述哈希环上与第m个节点的哈希值对应的位置点确定为与第m个节点对应的基准位置点,1≤m≤NodesNum。
5.根据权利要求1至4中任一项所述的数据存储方法,其特征在于,所述将待存储数据划分为各个数据分片包括:
根据下式计算数据分片的数目:
其中,DataBytes为所述待存储数据的字节数,MaxShard为数据分片的最大字节数,Ceil为向上取整函数;
将所述待存储数据划分为满足以下条件的SN个数据分片:
其中,ShdBytess为第s个数据分片的字节数,Max为求最大值函数,Min为求最小值函数,Thresh为预设的比例阈值。
6.一种数据存储装置,其特征在于,包括:
数据分片划分模块,用于将待存储数据划分为各个数据分片;
备份数目确定模块,用于确定各个数据分片的备份数目;
第一确定模块,用于在所述点对点网络中确定与第s个数据分片对应的第1级存储节点,并向所述第1级存储节点发送数据存储请求,所述数据存储请求中包括计数值和存储节点集合,所述计数值等于第s个数据分片的备份数目,所述存储节点集合为空,1≤s≤SN,SN为数据分片的数目;
第一处理模块,用于在接收到所述数据存储请求后,从所述源节点下载及存储第s个数据分片,将本地的节点标识添加入所述存储节点集合中,并将所述计数值减去一个计数单元;
第二确定模块,用于在所述点对点网络中确定与第s个数据分片对应的下一级存储节点,并向下一级存储节点发送数据存储请求;
第二处理模块,用于在接收到所述数据存储请求后,从各个目标节点下载及存储第s个数据分片,将本地的节点标识添加入所述存储节点集合中,并将所述计数值减去一个计数单元,所述目标节点为所述数据存储请求的存储节点集合中的各个节点标识分别所对应的节点。
7.根据权利要求6所述的数据存储装置,其特征在于,所述第一确定模块包括:
分片哈希值计算单元,用于使用预设的第一哈希函数计算第s个数据分片的哈希值;
目标位置点确定单元,用于将预设的哈希环上与第s个数据分片的哈希值对应的位置点确定目标位置点,所述哈希环为由所述第一哈希函数的所有函数值按照从小到大的顺序顺时针或者逆时针依次连接所构成的圆环,即所述哈希环上的每个位置点均对应于所述第一哈希函数的一个函数值;
基准位置点获取单元,用于获取所述哈希环上的各个基准位置点,其中,每个基准位置点均为与所述点对点网络中的一个节点对应的位置点;
基准位置点查找单元,用于从所述目标位置点开始顺时针或者逆时针查找所述基准位置点,并将查找到的第一个基准位置点所对应的节点确定为与第s个数据分片对应的第1级存储节点。
8.根据权利要求7所述的数据存储装置,其特征在于,所述第一确定模块还包括:
身份标识获取单元,用于获取所述点对点网络中的各个节点的身份标识;
哈希运算单元,用于使用预设的第二哈希函数分别对所述点对点网络中的各个节点的身份标识进行哈希运算,得到各个节点的哈希值,所述第二哈希函数的值域与所述第一哈希函数的值域一致;
基准位置点确定单元,用于将所述哈希环上与第m个节点的哈希值对应的位置点确定为与第m个节点对应的基准位置点,1≤m≤NodesNum。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,其特征在于,所述计算机可读指令被处理器执行时实现如权利要求6至8中任一项所述的数据存储装置的功能。
10.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,其特征在于,所述处理器执行所述计算机可读指令时实现如权利要求6至8中任一项所述的数据存储装置的功能。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910347818.3A CN110099112B (zh) | 2019-04-28 | 2019-04-28 | 基于点对点网络的数据存储方法、装置、介质及终端设备 |
PCT/CN2019/103295 WO2020220540A1 (zh) | 2019-04-28 | 2019-08-29 | 基于点对点网络的数据存储方法、装置、介质及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910347818.3A CN110099112B (zh) | 2019-04-28 | 2019-04-28 | 基于点对点网络的数据存储方法、装置、介质及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110099112A true CN110099112A (zh) | 2019-08-06 |
CN110099112B CN110099112B (zh) | 2022-03-29 |
Family
ID=67446019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910347818.3A Active CN110099112B (zh) | 2019-04-28 | 2019-04-28 | 基于点对点网络的数据存储方法、装置、介质及终端设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110099112B (zh) |
WO (1) | WO2020220540A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020220540A1 (zh) * | 2019-04-28 | 2020-11-05 | 平安科技(深圳)有限公司 | 基于点对点网络的数据存储方法、装置、介质及终端设备 |
CN112231398A (zh) * | 2020-09-25 | 2021-01-15 | 北京金山云网络技术有限公司 | 数据存储方法、装置、设备及存储介质 |
CN114897666A (zh) * | 2022-05-19 | 2022-08-12 | 北京百度网讯科技有限公司 | 图数据存储、访问、处理方法、训练方法、设备及介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113794558B (zh) * | 2021-09-16 | 2024-02-27 | 烽火通信科技股份有限公司 | 一种XMSS算法中的L-tree计算方法、装置及系统 |
CN114138475B (zh) * | 2021-11-19 | 2024-09-06 | 郑州云海信息技术有限公司 | 一种数据传输负载均衡方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2202945A1 (en) * | 2008-12-26 | 2010-06-30 | Huawei Technologies Co., Ltd. | Distributed network construction and storage method, apparatus, and system |
CN107404541A (zh) * | 2017-09-20 | 2017-11-28 | 郑州云海信息技术有限公司 | 一种对等网络传输邻居节点选择的方法及系统 |
CN107547657A (zh) * | 2017-09-27 | 2018-01-05 | 柏科数据技术(深圳)股份有限公司 | 一种基于云存储系统中单点数据编号的方法、装置以及存储介质 |
WO2018119587A1 (zh) * | 2016-12-26 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | 数据处理方法、装置、系统及信息采集设备 |
CN108681583A (zh) * | 2018-05-11 | 2018-10-19 | 北京奇虎科技有限公司 | 基于区块链的数据持有证明方法、装置及可读存储介质 |
GB201815423D0 (en) * | 2018-09-21 | 2018-11-07 | Nationwide Building Soc | Distributed data storage |
CN109388351A (zh) * | 2018-12-18 | 2019-02-26 | 平安科技(深圳)有限公司 | 一种分布式数据存储的方法及相关装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136114B (zh) * | 2011-11-30 | 2015-11-25 | 华为技术有限公司 | 存储方法及存储装置 |
CN103634401B (zh) * | 2013-12-03 | 2015-11-25 | 北京京东尚科信息技术有限公司 | 一种存储数据副本的方法和终端装置以及服务器装置 |
CN105511801B (zh) * | 2015-11-12 | 2018-11-16 | 长春理工大学 | 数据存储的方法和装置 |
CN107678688A (zh) * | 2017-09-27 | 2018-02-09 | 柏域信息科技(上海)有限公司 | 一种基于云存储系统中的管理冗余副本的方法、装置和存储介质 |
CN108062419B (zh) * | 2018-01-06 | 2021-04-20 | 深圳市网心科技有限公司 | 一种文件存储方法、电子设备、系统和介质 |
CN110099112B (zh) * | 2019-04-28 | 2022-03-29 | 平安科技(深圳)有限公司 | 基于点对点网络的数据存储方法、装置、介质及终端设备 |
-
2019
- 2019-04-28 CN CN201910347818.3A patent/CN110099112B/zh active Active
- 2019-08-29 WO PCT/CN2019/103295 patent/WO2020220540A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2202945A1 (en) * | 2008-12-26 | 2010-06-30 | Huawei Technologies Co., Ltd. | Distributed network construction and storage method, apparatus, and system |
WO2018119587A1 (zh) * | 2016-12-26 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | 数据处理方法、装置、系统及信息采集设备 |
CN107404541A (zh) * | 2017-09-20 | 2017-11-28 | 郑州云海信息技术有限公司 | 一种对等网络传输邻居节点选择的方法及系统 |
CN107547657A (zh) * | 2017-09-27 | 2018-01-05 | 柏科数据技术(深圳)股份有限公司 | 一种基于云存储系统中单点数据编号的方法、装置以及存储介质 |
CN108681583A (zh) * | 2018-05-11 | 2018-10-19 | 北京奇虎科技有限公司 | 基于区块链的数据持有证明方法、装置及可读存储介质 |
GB201815423D0 (en) * | 2018-09-21 | 2018-11-07 | Nationwide Building Soc | Distributed data storage |
CN109388351A (zh) * | 2018-12-18 | 2019-02-26 | 平安科技(深圳)有限公司 | 一种分布式数据存储的方法及相关装置 |
Non-Patent Citations (1)
Title |
---|
王千阁等: "区块链系统的数据存储与查询技术综述", 《计算机科学》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020220540A1 (zh) * | 2019-04-28 | 2020-11-05 | 平安科技(深圳)有限公司 | 基于点对点网络的数据存储方法、装置、介质及终端设备 |
CN112231398A (zh) * | 2020-09-25 | 2021-01-15 | 北京金山云网络技术有限公司 | 数据存储方法、装置、设备及存储介质 |
CN112231398B (zh) * | 2020-09-25 | 2024-07-23 | 北京金山云网络技术有限公司 | 数据存储方法、装置、设备及存储介质 |
CN114897666A (zh) * | 2022-05-19 | 2022-08-12 | 北京百度网讯科技有限公司 | 图数据存储、访问、处理方法、训练方法、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2020220540A1 (zh) | 2020-11-05 |
CN110099112B (zh) | 2022-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110099112A (zh) | 基于点对点网络的数据存储方法、装置、介质及终端设备 | |
CN109754105B (zh) | 一种预测方法及终端、服务器 | |
CN112398899B (zh) | 一种面向边缘云系统的软件微服务组合优化方法 | |
CN108769111A (zh) | 一种服务器连接方法、计算机可读存储介质及终端设备 | |
US8117609B2 (en) | System and method for optimizing changes of data sets | |
CN110149373A (zh) | 基于点对点网络的数据存储方法、装置、介质及服务器 | |
CN108696511A (zh) | 一种基于区块链的信息公示方法、装置及相关设备 | |
CN110235162B (zh) | 区块链系统数据处理方法和区块的生成方法 | |
JP2018014765A5 (zh) | ||
CN112541019B (zh) | 区块链资源的搜索方法和装置 | |
CN109413202B (zh) | 区块链交易信息的排序系统及方法 | |
CN109886025A (zh) | 用户标识的管理方法、装置、计算机设备及存储介质 | |
CN109739433A (zh) | 数据处理的方法及终端设备 | |
CN113268439A (zh) | 内存地址的查找方法和装置、电子设备和存储介质 | |
CN106062749B (zh) | 使用查询数据提供流行率信息 | |
CN111261170A (zh) | 基于声纹库的声纹识别方法、主控节点及计算节点 | |
CN109788060B (zh) | 基于区块链的云数据共享和更新方法 | |
CN111008873A (zh) | 一种用户确定方法、装置、电子设备及存储介质 | |
CN109905366A (zh) | 终端设备安全验证方法、装置、可读存储介质及终端设备 | |
CN111951112A (zh) | 基于区块链的智能合约执行方法、终端设备和存储介质 | |
CN115795097A (zh) | 基于xml逻辑规则的数据处理方法及装置 | |
CN110442456B (zh) | 一种基于Hyperledger-fabric的多通道的负载均衡方法 | |
CN112291241A (zh) | 防火墙开墙方法、防火墙开墙装置及终端设备 | |
CN109451016A (zh) | 数据下载管理方法、系统及相关设备 | |
CN115328892B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |