“AI 技术+人才”如何成为企业增长新引擎?戳此了解>>> 了解详情
写点什么

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:535483
用户头像

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

关注

评论

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

TDengine在中节能风力发电运维系统中的落地实践

TDengine

数据库 大数据 tdengine 物联网

便捷、高效、智能—从运维视角看星环科技大数据基础平台TDH

星环科技

大数据

【量化投资入门】带你通过恒有数数据接口来实战量化指标

恒生LIGHT云社区

量化策略 量化投资 量化交易 量化

Sql server之sql注入篇

喀拉峻

网络安全 信息安全 SQL注入

反直觉投资--《香帅中国财富报告》摘录(4/100)

hackstoic

投资

x86架构应用如何向Arm架构低成本迁移

北京好雨科技有限公司

Golang:定时器的终止与重置

CRMEB

MongoDB find getmore操作慢问题排查

MongoDB中文社区

mongodb

12 Prometheus之监控Kubernetes

穿过生命散发芬芳

Prometheus 1月月更

如何保证redis与数据库一致性

zdd

redis

Hoo虎符研究院 | 币海寻珠——波卡平行链Moonbeam生态一览

区块链前沿News

虎符交易所 波卡

政法委社会治安防控平台建设,重点人员联防联控系统开发

a13823115807

聊聊Netty那些事儿之从内核角度看IO模型

bin的技术小屋

Netty nio Linux Kenel Linux网络编程 #java

sql审核-避免离线sql导致的db集群故障

名白

sql db sql检测 SQL审核 SQL审批

Avaya大中华区CTO李农:阿里云计算巢加快Avaya应用云部署

阿里云弹性计算

弹性计算 年度峰会 计算巢

白话大数据 | 元宇宙来了,但是你了解元数据吗?

星环科技

元数据

【量化】量化交易入门系列5:量化交易学习书籍推荐(一)

恒生LIGHT云社区

金融科技 量化策略 量化投资 量化交易 量化

CODING 携手 Thoughtworks 助力老百姓大药房打造“自治、自决、自动”的敏捷文化

CODING DevOps

敏捷 thoughtworks CODING 项目协同 老百姓大药房

Go 分布式令牌桶限流 + 兜底策略

万俊峰Kevin

Go 微服务 限流 Go 语言 令牌桶

激发数字化时代权益运营新动能

鲸品堂

运营 数字化 通信运营商

文末有惊喜| 青藤ATT&CK论文入选国家级期刊

青藤云安全

基于javaweb,springboot银行管理系统

叫练

银行 毕业设计 计算机毕业设计

Sophon联邦学习,让数据发挥真正的价值

星环科技

联邦学习

Form 表单在数栈的应用(上): 校验篇

袋鼠云数栈

大数据 前端

AI+CFD:面向空天动力的科学机器学习新方法与新范式

百度开发者中心

飞桨

netty系列之:让TCP连接快一点,再快一点

程序那些事

Java Netty 程序那些事 1月月更

如何帮助金融客户“用好云”?

金融 混合云 数智化

热门链游GameFi项目Radio Caca 联手Hoo虎符撒空投

区块链前沿News

Hoo 虎符交易所 链游 RACA

Web or Native 谁才是元宇宙的未来(上)?

Orillusion

开源 WebGL 元宇宙 Metaverse webgpu

一篇域名从购买到备案到解析的详细教程

冴羽

前端 vuepress 域名解析 域名 域名备案

multi-key索引和wildCard索引场景比较

MongoDB中文社区

mongodb

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