FoundationDB NoSQL 数据库的新记录层支持关系数据库语义、模式管理、主索引和辅助索引以及查询功能。FoundationDB 团队上个月宣布了记录层的开源版本。
FoundationDB 是一个开源的“多模型”NoSQL 数据库,由苹果公司开发,但自从 FoundationDB 开源以来,很多公司都为它的开发做出了贡献。FoundationDB 数据库采用了云友好的“无共享架构”。FoundationDB 是围绕“核心”键值数据库设计的,在“层”中提供了额外的功能,通过添加功能和数据模型来扩展功能,从而允许新的数据访问模式。记录层构建在 FoundationDB 之上,支持使用字段和类型、不断发展的模式、主索引和辅助索引以及声明式查询执行的记录。这个层是可组合的,可以通过其他系统进行扩展,从而在 FoundationDB 上创建新的层和应用程序类。
记录层还包括有在关系数据库中不常见的特性,例如嵌套的数据类型、记录提交时间上的索引以及跨不同类型记录的索引和查询。
记录层将 FoundationDB 的事务语义应用于辅助索引,这意味着索引总是与数据的最新更改保持同步。由于记录层是无状态的,它可以通过简单地启动更多的数据库实例来扩展。记录层支持多租户,并隔离租户的所有数据。
记录层的其他功能包括:
记录表示为协议缓冲区消息,提供行业标准的序列化和模式演化。基于协议缓冲区数据模型的事务辅助索引功能。
支持高级索引类型,如分组计数、全文索引、序号索引和可扩展函数索引。
查询规划器,用于将这些查询转换为具体的数据库操作。
扩展点,用户可以构建自定义索引维护器和查询规划功能来集成新的索引类型。
支持客户端定义的加密和压缩算法的序列化 API。
记录层和 FoundationDB 在苹果的生产中用于支持应用程序和服务,比如苹果的CloudKit。
类似于记录层,FoundationDB 的文档层是一个无状态的微服务器,它公开了一个与MongoDB API 兼容的面向文档的数据库。
FoundationDB 安装包支持 macOS、Ubuntu、RHEL/CentOS EL6 和 EL7 以及 Windows 操作系统。它还支持用于 C、Python、Ruby、Java 8+和 Go 1.1+编程语言的 API 语言绑定。该团队写了一篇文章描述 CloudKit 如何使用记录层。
如果您有兴趣了解关于 FoundationDB 数据库记录层特性的更多信息,请查阅以下参考资料:
查看英文原文:FoundationDB’s Record Layer Supports Relational Database Semantics, Schema Management and Indexing
评论