10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

专访 FoundationDB 联合创始人 Nick Lavezzo

  • 2013-01-20
  • 本文字数:1759 字

    阅读完需:约 6 分钟

FoundationDB 是一个数据库,它保证了 ACID,同时还具有通常只有 NoSQL 数据库才有的高性能和可用性。InfoQ 对该项目的创始人之一 Nick Lavezzo 做了独家专访,从他那里我们获得了更多与该项目相关的内容。

InfoQ: 我们了解到为了避开 CAP 定理宣称的限制,实现 ACID 和可扩展性,FoundationDB 使用了两种不同类型的节点进行读写操作,事实是这样吗?你可以详细地解释一下这个架构吗?

Nick: FoundationDB 并没有避开 CAP 定理;它只不过是采用了非传统的方式(对 NoSQL 而言)在网络分区间维护一致性。但是构建一个分布式的、完全一致的数据库很难;因此,为了让事情更简单,我们使用不同的服务器担当不同的角色。其中,最重要的两个角色是事务服务器和存储服务器。事务服务器负责检查发生的冲突,以保证 ACID。存储服务器负责存储大量的有序键 - 值对,同时为事务服务器批准的读写请求提供服务。当然,在一个单独的物理机器上或者一个较小的集群中,这些角色可能重叠,一台电脑可以同时做多个任务。想要获取更多的信息可以在我们的网站上查看更加详细的解释

InfoQ:你提到 FoundationDB 和一个“分层的”生态系统将会有开源和商业两个版本——对于爱好者而言,现在能够获取它们的源码吗?

Nick:我们一直在致力于构建核心数据库,但是我们对内部层的清理和文档化工作做的还不够,因此还不能公开对外发布(不过在我们的 alpha 测试者的要求下,现在这一层已经可以访问)。在往 beta 版进发的过程中,我们计划为层创建公共仓库。这些层一方面是揭示高层次数据模型的优秀工具,另一方面也展示了基于 FoundationDB 的有序键 - 值对 API 构建强大的应用是多么地容易。现在对层 / 应用程序代码示例有兴趣的人,可以在这里查看一些示例

InfoQ:你提到一个构建在 C++ 之上的新语言 Flow,同时还提供了工具——可以分享一些相关的细节么?

Nick:我们已经在网站上发布了一段新内容,解释了 Flow 以及构建它的目的。

InfoQ: 现在有人开始使用 FoundationDB 构建应用程序了么?

Nick:我们的测试员已经在构建基于 FoundationDB 的应用程序了,但我并不认为这是你期望的答案。你的意思应该是指生产环境中的应用程序,例如在它上面运行业务。FoundationDB 现在正在 Alpha 阶段。在我们推出快照备份功能之前,也就是几周之前,我们不推荐任何人在生产环境中使用它。无论一个系统如何容灾,如果有人意外地(或者故意地)删除数据库中的数据,你都需要一个外部备份来恢复生产环境的应用程序。现在我们有了这个功能,所以我们正在和一些 alpha 测试者们一起将它应用于一些生产环境中的项目上。

InfoQ:FoundationDB 现在或者将来能够支持全球分布式的数据库节点么,就像 Google Spanner 那样?如果是,它将如何实现?

Nick:是的。FoundationDB 就是为了在本地和跨数据中心的集群中使用而设计的。在多数据中心配置环境中运行时,FoundationDB 能够感知网络拓扑并做出智能的决定,例如在不同的数据中心存储数据副本。和 Google Spanner 一样,FoundationDB 并不会使用全球各地所有的数据中心创建一个单一的、全局的数据库;相反,它会创建一个能够在几个临近的数据中心上高效运行的数据库。(通过在全球各地自动移动数据可以加快数据读取速度,但是,数据写入则是一个更加困难且特定于应用程序的工作。Spanner 和 FoundationDB 都没有彻底解决这个问题。)

我们如何实现它呢?我认为解释它最简单的方式就是,所有像 FoundationDB 或者 Spanner 这样的系统都会有一个复杂的保障层,该层和其他层一起保持系统正确。Spanner 的实现方式是构建一个独立的“全局变量”:时间。集群中的任何一个节点都能够对它进行强引用。例如,如果计算机 A 更新数据,计算机 B 读取数据,Spanner 的 TrueTime 能够保证:如果 B 的读取操作发生在 A 的写入操作之后,那么 B 看到的一定是修改后的值。FoundationDB 使用一种不同的策略:它使用一个名为 Paxos 的算法(我们的“全局变量”)存储少量的信息,并从中构建其它的保证和引用,而不是依靠时钟。

英文原文地址 Interview With Nick Lavezzo, Co-Founder of FoundationDB


感谢杨赛对本文的审校。

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

2013-01-20 07:471869
用户头像

发布了 321 篇内容, 共 130.3 次阅读, 收获喜欢 19 次。

关注

评论

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

Spring Boot Admin 集成诊断利器 Arthas 实践

阿里巴巴云原生

Java Docker 容器 云原生 Arthas

《iOS面试简历技巧解析》

ios 面试

速看!教育上云 让学习战“疫”两不误

教育云

一个合格的初级前端工程师需要掌握的模块笔记

我是哪吒

程序员 面试 Vue 大前端 2月春节不断更

GrowingIO SaaS 产品 CI/CD 实践 (一)

GrowingIO技术专栏

ci SaaS CD

口碑销量双爆的数据分析丛书再添新成员!

博文视点Broadview

区块链终将彻底改变医疗行业,但哪些因素制约当前的采用?

CECBC

区块链

区块链+电力,又擦出什么新火花?

CECBC

区块链

一周信创舆情观察(1.25~1.31)

统小信uos

探索语言交互技术在政务数字化的应用

华为云开发者联盟

语音 政务 语言交互 VUI G2c

为您收录的操作系统系列 - 进程管理(中篇)

鲁米

操作系统 进程 同步

2021年 区块链最火的app爱打卡

v16629866266

淘宝的商品中心和类目体系是怎么设计的

邴越

架构 阿里 模型 电商 业务

程序员成长第三篇:好的代码和好的工程师

石云升

28天写作 2月春节不断更 工程师等级

Elasticsearch+Fluentd+Kafka搭建日志系统

远鹏

kafka ELK EFK Fluentd 日志系统

Elasticsearch Bulk API 奇特的 JSON 格式

escray

七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

短信验证码被刷怎么办?java 短信验证码防刷策略分析

香芋味的猫丶

黑客 短信防刷 短信验证码 短信防轰炸 短信防火墙

“新内容 新交互” 阿里云全球视频云创新挑战赛正式开启!

阿里云CloudImagine

阿里云 音视频 应用

Kubernetes安装篇(下):基于Kubeadm方式的集群部署

xcbeyond

Kubernetes kubeadm 部署 28天写作 Kubernetes从入门到精通

Spark Shuffle 内部机制(一)

hanke

大数据 spark 开源

民进昆明市委:建议利用区块链技术优势在昆明打造金融应用平台

CECBC

金融 金融区块链

互助系统软件开发,互助app开发

luluhulian

以终为始:28天打卡输出复盘

熊斌

个人成长 写作平台 28天写作

RocketMQ-Spring 毕业两周年,为什么能成为 Spring 生态中最受欢迎的 messaging 实现?

阿里巴巴云原生

Docker 容器 微服务 云原生 API

如何快速上手 angular.js

华为云开发者联盟

html Vue 数据 angular js

面试加分项!我在美团Android研发岗工作的那5年,系列篇

欢喜学安卓

android 程序员 面试 移动开发

面试官:请讲一下Redis主从复制的功能及实现原理

华为云开发者联盟

redis 数据 节点 redis哨兵 主从复制

Kafka架构介绍

架构精进之路

kafka 七日更 28天写作 2月春节不断更

5步教你将MRS数据导入DWS

华为云开发者联盟

数据 MRS GaussDB 集群 DWS

统一数据管理工具——CloudQuery v1.3.3 上线!

BinTools图尔兹

数据库 运维 开发工具 dba 数据库管理工具

您的《操作系统线程模型总结》请查收。

后台技术汇

28天写作 2月春节不断更

专访FoundationDB联合创始人Nick Lavezzo_大数据_Roopesh Shenoy_InfoQ精选文章