东亚银行、岚图汽车带你解锁 AIGC 时代的数字化人才培养各赛道新模式! 了解详情
写点什么

Dynomite: NetFlix 对 dynamo 的开源通用实现

  • 2014-11-11
  • 本文字数:1331 字

    阅读完需:约 4 分钟

Dynomite NetFlix 对亚马逊分布式存储引擎 Dynamo 的一个开源通用实现,它不仅支持基于内存的 K/V 数据库,还支持持久化的 Mysql、BerkeleyDb、LevelDb 等数据库,并具有简单、高效、支持跨数据中心的数据复制等优点。Dynomite 的最终目标是提供数据库存储引擎不能提供的简单、高效、跨数据中心的数据复制功能。目前,Dynomite 已经实现了对 Redis Memcached 的支持。

Dynomite 的拓扑结构如下图:

从图中可以看出每个 Dynomite 集群包括多个数据中心(dc),每个数据中心都有一组机架,每个机架包括多个节点,每个机架都包括完整的数据集,该数据集被划分在同一机架的多个节点上。因此,多个机架架构能够提供更高的可用性的数据服务。机架上的每个节点都有个一个唯一的标示,该标示用来识别节点属于哪个数据集。每个 Dynomite 节点都有一个 Dynomite process 组件用来协同数据服务器提供服务,该组件具有代理、路由、协调等作用。

Dynomite 支持多数据中心的复制,当发送写操作时,客户端能够连接到 Dynomite 集群的任意一个节点。如果 Dynomite 节点恰好接收的数据是属于本节点的数据时,该数据首先会被写到本地数据库服务中,并且异步的复制到所有数据中心的集群中的其他机架中。如果节点接收到不属于本节点的数据,Dynomite 将会以一个协调者的角色发送写的操作到相同机架上应该存储数据的节点上,并复制写操作到其他机架和数据中心的相应节点上。下图所示的是 Dynamo 客户端正将数据往一个集群上写,该数据属于节点 a2、b2、c2、d2。该请求发送给了 a1 节点,a1 节点就充当协调员的角色,并将请求转发给节点 a2、b2、c2、d2。

Dynomite 还具有一个常规、一致性的哈希环,但是复制是不对称的。Dyno 客户端的本地写使用了基于令牌的负载均衡,Dyno 客户端在相同区域知道 Dynomite 的集群拓扑结构,因此,Dynomite 能够使用一致性哈希直接将数据写到一个具体的节点中。

一致性是 Dynomite 的一个重要特性,但是在目前版本中,Dynomite 开发团队把高可用性放在了首位,把 Dynomite 的一致性放到了下一个版本中。如果开发者的使用场景是存储高频率的时间序列数据的话,Dynomite 完全能够满足需求。为了降低数据复制的延迟, Dynomite 开发团队将进行代码路径优化和增强复制策略来降低数据复制的延迟。Dynomite 开发团队还进行了线性试验, 结果充分证明了 Dynomite 完全能够满足高效、跨数据中心的数据复制的性能要求。Dynomite 遵循 Apache License V2.0 开源协议发布,其代码托管在 GitHub 上,更多关于 Dynomite 的信息请查看 NetFlix 技术博客对 Dynomite 的介绍

Dynomite 是 Dynamo 的一个用于 K/V 数据库的实现,Dynamo 是亚马逊的一个分布式 K/V 存储系统,它具备去中心化、高可用性、高扩展性的特点。非常著名的 NoSql 数据库 Cassandra 就是按照 Dynamo 的 P2P 架构,同时融合了 BigTable 的数据模型及存储算法实现的。另外,还有一个数据库也叫做 Dynomite ,它由于受到 Dynamo 设计思想的启发,并采用 ErLang 语言开发的分布式 K/V 数据库,请读者不要将二者混淆.


感谢崔康对本文的审校。

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

2014-11-11 00:535496
用户头像

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

关注

评论

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

做SAST工具的我们,出路在哪里?

maijun

SAST工具 SAST工作方向 SAST技术方向

英特尔和新思科技深化合作,提供基于英特尔先进制程节点的领先IP

E科讯

买堡垒机成本有哪些?可以产生哪些收益?

行云管家

网络安全 信息安全 堡垒机 堡垒

怎样快速选择正确的可视化图表?

树上有只程序猿

数据可视化

阿里云 MSE 助力开迈斯实现业务高增长背后带来的服务挑战

阿里巴巴云原生

阿里云 微服务 云原生

链游开发成本是多少

西安链酷科技

区块链游戏 链游 NFT链游

NFTScan 正式上线 Base NFTScan 浏览器和 NFT API 数据服务

NFT Research

NFT\

突破连接壁垒,火山引擎边缘云网络的先行之路

火山引擎边缘云

云服务边缘架构 边缘云 边缘云原生

新媒必看!如何利用文件传输软件拿到一手资料!

镭速

文件传输 大数据文件传输

大数据平台和数据中台的定义、区别以及联系

行云管家

大数据 数据中台 数据仓库 大数据平台

小灯塔系列-中小企业数字化转型系列研究——企业邮箱测评报告

向量智库

泰山众筹拼团互助模式系统DAPP定制开发

V\TG【ch3nguang】

众筹 拼团

软件测试/测试开发丨Selenium Web自动化测试基本操作

测试人

Python 软件测试 自动化测试 测试开发 selenium

生产制造关键业务模型拆解与平台化演进

华为云开发者联盟

后端 物联网 华为云 华为云开发者联盟 企业号 8 月 PK 榜

Alfred 5 for Mac(Mac应用快速启动器) v5.1.2(2145)中文激活版

mac

Alfred 苹果mac Windows软件 快速启动工具

iOS IPA包的制作和上传步骤详解​

证书 开发 上架 Windows ios

斩获“年度突破成果”奖!天翼云构建强大AI算力基础,制胜人工智能新时代

天翼云开发者社区

云计算 云服务 云平台

Docker容器中的Postgresql备份脚本异常解决办法

这我可不懂

Docker k8s postgres

MatrixOne内核1.0.0-RC1版本正式发布啦!

MatrixOrigin

数据库 云原生 MatrixOrigin MatrixOne 矩阵起源

Node与Express后端架构:高性能的Web应用服务

互联网工科生

Web Node Express

共创共赢,天翼云携手用友打造商业创新一体化解决方案!

天翼云开发者社区

云计算 AI 数据治理

iOS IPA包的制作和上传步骤详解​

雪奈椰子

ios打包 上架 Windows ios

AI量化交易机器人系统搭建,搬砖套利软件程序开发设计

V\TG【ch3nguang】

量化交易机器人开发 套利

数据科学教学必看!如何最大化利用和鲸的资源与平台赋能教学工作

ModelWhale

人工智能 大数据 数据科学 高等教育 数据资源

互助系统源码|USDT众筹理财系统模型搭建开发

V\TG【ch3nguang】

USDT承兑支付系统开发 理财系统

IPQ6010 with QCN9074 Solution|5G and Wi-Fi 6: A Dynamic Duo for the Connected Future

wallyslilly

IPQ6010 QCN9074

Dynomite: NetFlix对dynamo的开源通用实现_语言 & 开发_李士窑_InfoQ精选文章