7月QCon广州站2022,关注Web 3.0、数据架构选型、数字化转型等热门话题,点击了解 了解详情
写点什么

FaunaDB:一款由前 Twitter 技术负责人创建的新的分布式数据库

  • 2017 年 4 月 18 日
  • 本文字数:1181 字

    阅读完需:约 4 分钟

前 Twitter 技术负责人和 Couchbase 一起创建了一款新的通用时态数据库 FaunaDB。

前 Twitter 基础设施架构师兼负责人 Evan Weaver、前 Twitter 数据库团队技术负责人 Matt Freels 及 Couchbase 联合创始人 Chris Anderson 合力创建了新的“自适应操作型数据库”,当他们还在 Twitter 工作的时候就希望有这样的数据库。其结果就是 FaunaDB ,这是一个承诺可以线性扩展的、面向对象的关系型分布式数据库。

FaunaDB 是一个 CP 系统,旨在提供一致性和分区容错性。它可以跨多个数据中心运行,即使其中有少数出现故障,服务也不会中断。它可以横向和纵向扩展,它可以运行在单台笔记本 、单台服务器、本地或云上的多台务器上,包括虚拟化或容器化场景。

Datomic 类似,FaunaDB 保留数据的所有实例,当执行写入时,不会覆写,而是创建新实例。这在审计数据及核实数据随时间的变化时尤其有用。

从数据建模角度来看,FaunaDB 试图给每个人他们想要的一切:关系型——非 SQL,但支持连接、外键、索引、文档、图形、面向对象。为了进一步了解这个新数据库,我们向 Weaver 提出了几个问题。

InfoQ:你们是如何界定 FaunaDB 的?

Evan Weaver:FaunaDB 是一个事务型的、时态型的、地理分布的、强一致性的、安全的、多租户的、QoS 托管的操作型数据库。为了可移植,它基于 JVM 实现,它是关系型的,但非 SQL。作为替代,它通过类型安全的嵌入式 DSL(如 LINQ)进行查询。FaunaDB 回归了通用数据库模型,但是面向云的,而不是 80 年代的大型机。

InfoQ:FaunaDB 与其他的数据库服务,如 Amazon DynamoDB 或 Google Firebase,有什么不同?

Weaver:DynamoDB 和 Firebase 都不是通用数据库。DynamoDB 是一个键 / 值数据库,带一些扩展,而 Firebase 是一个层次数据库——一个我自 MUMPS 以来就没见过的模型。它们都不是地域重复的,它们都会永远地将你绑定到单个云提供商,没有提供本地或多云选项。

InfoQ:据我了解,FaunaDB 可以跨数据中心复制。这是一个实时备份过程,还是说,用户可以同时访问托管在不同数据中心里的实例,然后为了减少延迟而选择一个离他们更近的?

Weaver:是后者。用户会被自动地路由到最近的数据中心,但他们的数据在任何地方都是实时可用的。目前,我们的云涵盖了 AWS 和谷歌云平台。到今年年底,出于数据主权的考虑,你将可以选择数据实际存储的区域。

FaunaDB 既可以在本地运行,也可以在云上运行。它还作为一个无需运维的服务提供,目前运行在 AWS 和 GCP 上,很快就有望在 Azure 上提供。

FaunaDB 使用 Scala 和 Java 编写,可以在多种操作系统上的 JVM 上运行,包括 Linux、Windows 和 OS X。该数据库为若干语言提供了驱动程序,包括 Scala、Java、Java/Android、JavaScript、C#、Python、Ruby、Go 和 Swift,不过,也可以直接使用 HTTP API 访问它。

查看英文原文 FaunaDB: A New Distributed Database from the Team That Scaled Twitter

2017 年 4 月 18 日 19:007076
用户头像

发布了 1008 篇内容, 共 338.3 次阅读, 收获喜欢 320 次。

关注

评论

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

元模型驱动(三):构建我们自己的元模型-KAYA

KaYa

DDD Kaya MDA MDD 元建模

嵌入式面试之《Linux系统编程100问》

哒宰的自我修养

Linux 线程 网络编程 进程

架构师训练营第二周

M.

CICD实战——服务自动测试

TARS基金会

微服务 单元测试 CI/CD

架构师训练营第二周作业

lakers

极客大学架构师训练营

「架构师训练营第 1 期」第六周作业

张国荣

当AI入职FBI,克格勃直呼内行

脑极体

Java9新特性-上篇

hepingfly

Java Java新特性

【面经】面试官:讲讲类的加载、链接和初始化?

冰河

架构 JVM 类加载 优化 性能调试

央行数字货币亮相 吹皱一池春水

CECBC

数字货币 银行

积极参与数字货币等国际规则制定,塑造新的竞争优势

CECBC

疫情 经济

架构师训练营第二周总结

lakers

极客大学架构师训练营

有状态软件如何在k8s上快速扩容甚至自动扩容

东风微鸣

Kubernetes DevOps openshift

Scrapy 源码剖析(二)Scrapy是如何运行起来的?

Kaito

Python 爬虫 Scrapy 源码剖析

Scrapy 源码剖析(三)Scrapy有哪些核心组件?

Kaito

Python 爬虫 Scrapy 源码剖析

甲方日常42

句子

工作 随笔杂谈 日常

架构师训练营第 1 期 -- 第六周学习总结

发酵的死神

极客大学架构师训练营

Scrapy源码剖析(一)架构概览

Kaito

Python 爬虫 Scrapy 源码剖析

TarsCpp 组件之 MySQL 操作

TARS基金会

c++ MySQL 数据库 微服务 TARS

架构师训练营第 1 期 -- 第六周作业

发酵的死神

极客大学架构师训练营

SpringCloud 和 SpringBoot 版本选型

hepingfly

微服务 springboot SpringCloud 选型

如何搭建一个爬虫代理服务?

Kaito

爬虫 代理

TarsCpp 组件 之 智能指针详解

TARS基金会

c++ 微服务 智能指针 TARS

目标检测学习-比赛路线

Dreamer

科大讯飞翻译系统变身“随身翻译官” 助力粤港澳大湾区一体化建设

Talk A.I.

2020年9月公有云性能评测:UCloud、腾讯云屈居二三名,冠军竟然是它?

博睿数据

云计算 公有云 评测 排行榜

美国半导体十年计划中的NO.1,模拟硬件究竟有什么价值?

脑极体

架构师训练营第六周总结

邓昀垚

极客大学架构师训练营

2020年区块链行业十大趋势

CECBC

区块链 技术人才

架构师训练营第 1 期 第 6 周作业

李循律

极客大学架构师训练营

如何构建一个通用的垂直爬虫平台?

Kaito

Python 爬虫 代理

FaunaDB:一款由前Twitter技术负责人创建的新的分布式数据库_数据库_Abel Avram_InfoQ精选文章