写点什么

Chord:结构化 P2P 网络中的一个 DHT 算法

  • 2014-12-02
  • 本文字数:1062 字

    阅读完需:约 3 分钟

DHT 即分布式哈希表(Distributed Hash Table), 它通常是为了拥有极大节点数量的系统,而且在系统的节点常常会加入或退出节点而设计的。DHT 具有良好的扩展性、鲁棒性、结点 ID 分配的均匀性和自组织能力。DHT 可以用以建立复杂的服务,例如分散式档案系统、点对点技术档案分享系统、网页快取、缓存系统、任意点传输、网域名称系统以及即时通讯等。 Chord 由麻省理工学院(MIT)在 2001 年提出,其目的是提供一种能在 P2P 网络快速定位资源的的算法,它并不关心资源是如何存储的,只是从算法层面研究资源的取得,因此,Chord 的 API 就简单到只有一个 set、get。Chord 在一致性哈希的基础上提供了优化的路由算法,优化后的算法具有负载平衡、分布性、可扩展性、可用性、命名的灵活性等优点。它可用于全球文件系统、命名服务、数据库请求处理、互联网级别的数据结构、通信服务、事件通知、文件共享等应用中。

Chord 要实现的其实就是给定一个关键字 Key,并能够将其映射到某个节点。Chord 采用一致性哈希为每个节点和关键字产生一个 m 位的 ID,并按照 ID 的大小构成环形拓扑。另外,为了路由的需要,Chord 还维护了一张最多 m 项的路由表即 Finger 表。如下图所示的就是 m 为 6 的一个 Chord 拓扑环和 Finger 表。

对于节点的查询的处理,Chord 采用了幂次逼近查询法;对于新节点加入的处理,Chord 需要环形拓扑中的任意一个节点来协助完成, 且加入过程包括新节点本身的 Join 操作和被其他节点发现两个阶段;对于节点失效的处理,Chord 需要周期性对节点的前继节点和后继节点进行探测,并按照节点加入时的算法重建 Finger 表;对于节点退出的处理,Chord 采取了将节点的退出当作为失效来处理的方式。有关 Chord 及 Chord 对节点的查询、加入、失效等具体是如何处理的,请读者参考论文《结构化P2P 网络chord 算法研究与分析》

另外,请读者们注意,DHT 只是一个概念、一种网络模型,读者还可以阅读 freedomlayer 上的一篇介绍以加深对 DHT 的理解。除了 Chord 算法外,基于 DHT 实现的算法还包括加州大学伯克利分校提出的内容寻址网络算法 CAN 、英国剑桥的微软研究院和莱斯大学提出的 Pastry 、加州大学伯克利分校提出的一种新型 P2P 网络定位和路由算法 Tapestry 等。目前,DHT 算法的发展方向非常多,且随着科学技术的发展以及人们的不断探索与研究,将会有新的改进算法不断被提出来。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-12-02 05:4310418
用户头像

发布了 92 篇内容, 共 49.1 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

“查找附近的商铺”|Geohash+MySQL实现地理位置筛选

领创集团Advance Intelligence Group

MySQL sql geohash

兆骑科创科创赛事平台,创业赛事活动路演,线上直播路演

兆骑科创凤阁

暑气渐敛,8月让我们开源一夏!

InfoQ写作社区官方

开源 热门活动 8月月更

2.8K 120Hz触控双屏加持 灵耀X 双屏Pro 2022让办公无惧想象

科技热闻

OneFlow源码解析:Op、Kernel与解释器

OneFlow

深度学习 源码解析

浅谈大数据背景下数据库安全保障体系

阿炜小菜鸡

数据库

AntDB数据库亮相24届高速展,助力智慧高速创新应用

亚信AntDB数据库

AntDB 国产数据库 aisware antdb

打破文件锁限制,以存储力量助力企业增长新动力

焱融科技

存储 文件存储 分布式文件存储 文件锁

选择合适的 DevOps 工具,从理解 DevOps 开始

飞算JavaAI开发助手

30分钟成为Contributor|如何多方位参与OpenHarmony开源贡献?

OpenHarmony开发者

Open Harmony

Rancher 部署 DataKit 最佳实践

观测云

武汉参加web前端培训哪家好

小谷哥

开源一夏 | 五分钟带你上手ShardingJDBC实现MySQL分库分表

知识浅谈

开源 8月月更

分析Flask WSGI经过Nginx代理出现两次302问题

西北望高楼

flask Python.

官网应用开发文档及学习资源7月上新汇总

HarmonyOS开发者

HarmonyOS

TiFlash 存储层概览

TiDB 社区干货传送门

数据库 分布式数据库 TiDB

兆骑科创平台招才引智,海内外高层次人才引进平台

兆骑科创凤阁

分布式一致性如何实现?- Raft 算法

了凡跨境洞察

分布式 微服务架构 raft 一致性算法 一致性

大数据培训机构有哪些?

小谷哥

80篇国产数据库实操文档汇总(含TiDB、达梦、openGauss等)

墨天轮

数据库 opengauss TiDB 国产数据库 南大通用

大数据技术培训班怎么选择?

小谷哥

未来小间距竞争的着力点在哪里

Dylan

LED显示屏 led显示屏厂家

BPM是什么意思?BPM的优势及好处有哪些?

优秀

BPM

直播app开发,是优化直播体验不得不关注的两大指标

开源直播系统源码

软件开发 直播系统源码 语音直播系统源码 直播app

Git 不要只会 pull 和 push,学学这 5 条提高效率的命令(下)

CRMEB

动态模型中嵌入静态模型实践

FunTester

设计专业第一台笔记本 华硕灵耀Pro16 2022 新品首发超值入手

科技热闻

百图生科卓越开发者计划全面升级暨《计算免疫问题白皮书》发布

硬科技星球

面对营销难,有米云指出一条破局之路

ToB行业头条

DBPack SQL Tracing 功能及数据加密功能详解

峨嵋闲散人

分布式事务 分库分表 读写分离 dbmesh Database Mesh

java培训学习怎么样?

小谷哥

Chord:结构化P2P网络中的一个DHT算法_语言 & 开发_李士窑_InfoQ精选文章