1.一种基于二级路由的分布式存储查找方法,其特征在于,包括如下步骤:S1,设置两级路由表的组成属性;
S2,存储数据时,分别增加两级路由表;
S3,读取数据时,二级路由表的查找;
所述设置两级路由表的组成属性的步骤,具体包括如下:S11,根据节点散列函数和数据散列函数设置第二级路由器的组成属性;其中,第二级路由表组成属性设置如下:分布式网络节点,按照节点散列函数F(IP,Port)=(IP+Port)%mod把节点均衡分散;
IP为IPv4地址,Port为端口,Mod为最大散列空间;
节点散列函数F(IP,Port)采用整数除留取余法,把节点的IPv4和Port转换为整数,再与最大散列空间进行计算,得出网络节点的散列值;
再按照单节点的最大链接数,把网络节点的散列值做分组;
数据散列函数F(merkle root hash)=merkle root hash%mod;
依据默克尔树算法,对存储的数据,计算出数据的默克尔根哈希值;
数据散列函数F(merkle root hash)采用整数除留取余法,把merkle root hash转换为整数,再与最大散列空间进行计算,计算出存储数据的散列值;
S12,第一级路由表按照DHT的Kademlia算法组成;所述第一级路由表的组成属性如下:由DHT分布式哈希表组成的第一级路由表;一级路由表按照DHT的Kademlia算法组成;
所述存储数据时,分别增加两级路由表的步骤,具体包括如下:S21,所述第二级路由表的增加;具体的,依据默克尔树算法,对存储的数据,计算出数据的默克尔根哈希值;
再按照数据散列函数F(merkle root hash)=merkle root hash%mod,计算出数据的散列值;
数据散列函数F(merkle root hash)采用整数除留取余法,把merkle root hash转换为整数,再与最大散列空间进行计算,计算出存储数据的散列值;
节点的散列值与数据的散列值做映射关系,增加二级路由表;具体的,使用数据散列值找到相近的节点散列值,由此找到节点,保存数据到此节点;
S22,所述第一级路由表的增加;即按照DHT的Kademlia算法增加路由表项;所述读取数据时,二级路由表的查找的步骤,具体包括如下:S31,所述第二级路由表的查找;具体的,使用默克尔根哈希值进行数据的查找;
再按照散列函数F(merkle root hash)=merkle root hash%mod,计算出数据的散列值;
在第二级路由表中,使用数据散列值查找与其相近的节点散列值;
当查到相似节点时,从此节点读取数据;S32,所述第一级路由表的查找;当没有查到相似节点时,从一级路由表中查找数据的默克尔根哈希对应的节点,由此节点读取数据;其中,第一级路由表的查找:按照DHT的路由表查找。
2.一种基于二级路由的分布式存储查找系统,其特征在于,包括:设置模块,所述设置模块用于设置两级路由表的组成属性;
存储模块,所述存储模块用于存储数据时,分别增加两级路由表;
查找模块,所述查找模块用于读取数据时,二级路由表的查找;
所述设置模块具体用于:
根据节点散列函数和数据散列函数设置第二级路由器的组成属性;其中,第二级路由表组成属性设置如下:分布式网络节点,按照节点散列函数F(IP,Port)=(IP+Port)%mod把节点均衡分散;
IP为IPv4地址,Port为端口,Mod为最大散列空间;
节点散列函数F(IP,Port)采用整数除留取余法,把节点的IPv4和Port转换为整数,再与最大散列空间进行计算,得出网络节点的散列值;
再按照单节点的最大链接数,把网络节点的散列值做分组;
数据散列函数F(merkle root hash)=merkle root hash%mod;
依据默克尔树算法,对存储的数据,计算出数据的默克尔根哈希值;
数据散列函数F(merkle root hash)采用整数除留取余法,把merkle root hash转换为整数,再与最大散列空间进行计算,计算出存储数据的散列值;
第一级路由表按照DHT的Kademlia算法组成;所述第一级路由表的组成属性如下:由DHT分布式哈希表组成的第一级路由表;一级路由表按照DHT的Kademlia算法组成;
所述存储模块具体用于:
所述第二级路由表的增加;具体的,依据默克尔树算法,对存储的数据,计算出数据的默克尔根哈希值;
再按照数据散列函数F(merkle root hash)=merkle root hash%mod,计算出数据的散列值;
数据散列函数F(merkle root hash)采用整数除留取余法,把merkle root hash转换为整数,再与最大散列空间进行计算,计算出存储数据的散列值;
节点的散列值与数据的散列值做映射关系,增加二级路由表;具体的,使用数据散列值找到相近的节点散列值,由此找到节点,保存数据到此节点;
所述第一级路由表的增加;即按照DHT的Kademlia算法增加路由表项;
所述查找模块具体包括用于:
所述第二级路由表的查找;具体的,使用默克尔根哈希值进行数据的查找;
再按照散列函数F(merkle root hash)=merkle root hash%mod,计算出数据的散列值;
在第二级路由表中,使用数据散列值查找与其相近的节点散列值;
当查到相似节点时,从此节点读取数据;
所述第一级路由表的查找;当没有查到相似节点时,从一级路由表中查找数据的默克尔根哈希对应的节点,由此节点读取数据;其中,第一级路由表的查找:按照DHT的路由表查找。