利索能及
我要发布
收藏
专利号: 2019103478183
申请人: 平安科技(深圳)有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2026-06-16
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

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中任一项所述的数据存储装置的功能。