昨日,FoundationDB 数据库宣布开源 FoundationDB Record Layer。既然提到了“层(layer)”这个概念,我们不妨在这里简单说一下 FoundationDB 和层之间的渊源 。“层(layer)”源于 FoundationDB 创立之初的理念 —— FoundationDB 的愿景是从一个简单且强大的核内核开始,然后逐渐通过添加“层(layer)”以进行扩展。“层”通过为其模型的特定数据类型添加功能来扩展内核,并支持新的存储访问模式。
而最新开源的 FoundationDB Record Layer 在 FoundationDB 之上提供了关系数据库语义,具有模式管理、索引功能和丰富的查询功能。
开源公告中还提到,FoundationDB Record Layer 已应用在 Apple 的生产环境中,以支持具有数亿用户的应用程序和服务。
和关系数据库一样,Record Layer 可以存储结构化数据, 由 Record Layer 管理的数据库支持包含字段和类型、模式、复杂的主索引和辅助索引以及声明性查询执行的记录。 Record Layer 还包括传统关系数据库中不常见的功能,例如支持复杂的嵌套数据类型、记录提交时的索引以及跨不同类型记录的索引和查询。
基于 FoundationDB 而构建的 Record Layer,不仅在分布式环境中继承了 FoundationDB 的 ACID、可靠性和性能,而且还使用了 FoundationDB 的事务语义以提供类似于传统关系数据库的功能。例如, Record Layer 的二级索引是以事务方式维护的,因此它们始终与最新的数据更改保持同步,减少了应用程序代码中的错误数量,并大大简化了应用程序开发。
Record Layer 天生就适用于大规模数据库实例,支持在单个 FoundationDB 集群中管理数百万个离散数据库实例。它的设计和核心功能集可以扩展到数百万并发用户和各种客户端应用程序生态系统,每个客户端应用程序都具备自有的数据模型和查询访问模式。
而为了简化操作,Record Layer 是无状态的,所以扩展就像启动实例一样简单。面对各种各样的工作负载和活动,Record Layer 通过可预测的方式严格限制和平衡用户之间的资源消耗。
据官方透露,Record Layer 和 FoundationDB 共同构成了 Apple CloudKit 的核心支撑。
FoundationDB Record Layer 的一些特性:
领取专属 10元无门槛券
私享最新 技术干货