2019 年 1 月 14 日,FoundationDB Record Layer 开源版本正式发布!
诞生之初,FoundationDB 就被设计为具有简单 API 的高度可扩展的键值存储,而 Layer 则是通过添加功能和数据模型来扩展数据库的功能,并支持新的存储访问模式。刚刚开源的 FoundationDB Record Layer 在 FoundationDB 之上提供了关系数据库语义,具有模式管理、索引功能和丰富的查询功能。
据悉, Record Layer 已经应用在 Apple 的生产系统中,支持数亿用户的应用程序和服务。
基于 FoundationDB 的面向记录的数据库
Record Layer 可以像关系数据库一样存储结构化数据, Record Layer 管理的数据库支持具有字段和类型、模式、复杂的主索引和辅助索引以及声明性查询执行的记录。 Record Layer 还包括了传统关系数据库中不常见的功能,例如支持复杂的嵌套数据类型、记录提交时的索引以及跨不同类型记录的索引和查询。
基于 FoundationDB 的 Record Layer 不仅继承了 FoundationDB 的 ACID、可靠性和性能,而且使用 FoundationDB 的事务语义提供了类似于传统关系数据库的功能。例如, Record Layer 的二级索引是以事务方式维护的,因此它们始终与最新的数据更改保持同步,减少了应用程序代码中的错误数量,大大简化了应用程序开发。
可应用于大规模数据库实例
Record Layer 可应用于大规模数据库实例,支持在单个 FoundationDB 集群中管理数百万个离散数据库实例。它的设计和核心功能集可以扩展到数百万并发用户和各种客户端应用程序生态系统中,每个客户端应用程序可具备自己的数据模型和查询访问模式。
为了简化操作, Record Layer 是无状态的,扩展就像启动实例一样简单。在面对各种各样的工作负载时, Record Layer 会以可预测的方式来平衡用户之间的资源消耗,并且 Record Layer 也可根据用户需求的增长来弹性扩展。
Record Layer 新特性:
将记录表示为协议缓冲区消息,提供行业标准序列化和模式演化,支持嵌套和重复字段等功能;
支持利用协议缓冲区数据模型的事务性二级索引以及各种高级索引类型,包括聚合索引,如分组计数、全文索引、序数排名索引和可扩展功能索引。在可能的情况下,还可利用高级 FoundationDB 特性,例如原子突变。
包含用于检索数据的声明性查询 API 和用于将这些查询转换为具体数据库操作的查询计划器。
以完全无状态的方式操作。可在毫秒内实例化逻辑数据库并执行操作;资源约束,允许限制任何给定的操作或查询;允许将控制权交还给客户端,并与其它客户端共同迭代;
提供大量深层扩展点。例如,用户可以构建自定义索引维护器和查询计划功能; Layer 的序列化 API 支持客户端定义的加密和压缩算法。
参考链接:https://www.foundationdb.org/blog/announcing-record-layer/
评论