Pastry

分布式哈希表
授权协议 MIT
开发语言 Google Go
所属分类 服务器软件、 分布式应用/网格
软件类型 开源软件
地区 不详
投 递 者 乜心思
操作系统 Linux
开源组织
适用人群 未知
 软件概览

Pastry 是 Go 语言编写的一个分布式哈希表,Pastry 使用 OS X 10.8.1, Go 1.0.3 开发,但经过验证支持 Ubuntu 12.04 LTS (64-bit), Go 1.0.3.

Pastry 让​​服务器成为集群的自组织。这意味着服务器可以彼此之间发送消息,而不需要中央枢纽,没有单点故障。服务器,称为节点,可以简单地宣布自己的存在,并与其余各组开始传递消息。

示例代码:

hostname, err := os.Hostname()
if err != nil {
    panic(err.Error())
}
id, err := pastry.NodeIDFromBytes([]byte(hostname+" test server"))
if err != nil {
    panic(err.Error())
}
node := pastry.NewNode(id, "your_local_ip_address", "your_global_ip_address", "your_region", 8080)

  • Pastry是2001年由位于英国剑桥大学的微软研究院和莱斯大学提出的一种对象定位和路由协议,他的目的同样是高效的定位存储特定资源的节点和路由消息。与Chord不同的是,psatry在路由时考虑的主要因素是通过标识符的数值临近性将消息的路由最短化,并通过网络的本地化减少单跳的负担。Pastry路由短发能够有效地检索资源,同时保证路由跳数在O(logN)的范围内(N为网络中节点总数),实现了可扩展性

  •   来源:   https://github.com/duydao/Text-Pastry/wiki/Examples Using a text list Using the Clipboard Clipboard Data - Example 2 From 1 to 3 From 1000 to 1300 From 100 to 50 Insert Nums Syntax Insert Nums

  • 元学习论文总结||小样本学习论文总结 2017-2019年计算机视觉顶会文章收录 AAAI2017-2019 CVPR2017-2019 ECCV2018 ICCV2017-2019 ICLR2017-2019 NIPS2017-2019 Chord DHT 借鉴了一致性哈希技术:一致性哈希基本解决了在P2P环境中最为关键的问题——如何在动态的网络拓扑中分布存储和路由。每个节点仅需维护少量相邻节点

 相关资料
  • 问题内容: 假设我需要在Hashset中存储1000个对象,最好是让1000个包含每个对象的存储桶(通过为每个对象生成哈希码的唯一值)还是让10个存储桶大致包含100个对象? 具有唯一存储桶的一个优点是,我可以节省调用equals()方法的执行周期? 为什么一定要设置数量的桶并尽可能均匀地分布在它们之间的物体很重要? 理想的物斗比应该是多少? 问题答案: 为什么一定要设置数量的桶并尽可能均匀地分布

  • 问题内容: 当大小超过maxthreshold值时,如何在哈希表或哈希表中进行重新哈希处理? 是否所有对都已复制到新的存储桶阵列中? 编辑: 重新哈希后,同一存储桶(位于链接列表中)中的元素会发生什么情况?我的意思是说,他们在重新哈希处理后会留在同一个桶中吗? 问题答案: 问题中的最大阈值称为负载系数。 建议负载系数约为0.75。负载因子定义为(m / n),其中n是哈希表的总大小,m是在需要增加

  • 我想在命令行上这样做,所以像这样的事情会很好: 上面的方法当然不适合散列。所以最后我需要打电话 以自动化的方式。

  • 哈希是键/值对 如果你想按名字查询,那么需要哈希。哈希的键必须唯一,但值可以是任意标量。 有时候你仍然会看到人们称它为“关联数组”,但不要想当然的把它作为数组。 通过键/值对列表来创建哈希 使用键/值对列表创建哈希: my %stooges = ( 'Moe', 'Howard', 'Larry', 'Fine', 'Curly', 'Howard', 'Iggy'

  • 哈希表 通过最简单的取模运算作为哈希算法 class HashNode(object): def __init__(self, id, data): self.id = id self.data = data self.next = None def __str__(self): return '(%d,%s)' %

  • REDIS_HASH (哈希表)是 HSET 、 HLEN 等命令的操作对象, 它使用 REDIS_ENCODING_ZIPLIST 和 REDIS_ENCODING_HT 两种编码方式: 字典编码的哈希表 当哈希表使用字典编码时, 程序将哈希表的键(key)保存为字典的键, 将哈希表的值(value)保存为字典的值。 哈希表所使用的字典的键和值都是字符串对象。 下图展示了一个包含三个键值对的哈希