Pastry是2001年由位于英国剑桥大学的微软研究院和莱斯大学提出的一种对象定位和路由协议,他的目的同样是高效的定位存储特定资源的节点和路由消息。与Chord不同的是,psatry在路由时考虑的主要因素是通过标识符的数值临近性将消息的路由最短化,并通过网络的本地化减少单跳的负担。Pastry路由短发能够有效地检索资源,同时保证路由跳数在O(logN)的范围内(N为网络中节点总数),实现了可扩展性搜索。
1.标识符空间
在Pastry系统中,每个节点都拥有一个l bit的节点标识符,节点标识符在数值上为区间【0,2的L次方-1】中唯一的整数(l的典型值为128)。通常节点标识符是通过对一个节点的公钥或IP地址进行散列得到的。所有节点按照它们的标识符数值从小到大按顺时针方向排列成一个环形的标识符空间。节点标识符是在节点加入系统时随机分配的,分配策略是尽量保证节点在标识符空间中均匀分布。为了路由的需要,Pastry将节点标识符和关键字标识符看作基于2的b次方的字符串,b的值一般取1,2,3,4.
在Pastry标识符空间中,关键字映射在节点标识符与关键字标识符Key在数值上最接近的节点上。每个节点需要维护与之相近的关键字信息。有余Pastry标识符空间的环形设置,存在同一个关键字信息由两个最近的节点维护的情况。
2.节点状态
。。。