@lsmn
2017-04-18T17:12:27.000000Z
字数 1469
阅读 2353
Twitter
数据库
FaunaDB
SQL
前Twitter技术负责人和Couchbase一起创建了一款新的通用时态数据库FaunaDB。
前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