The FoundationDB Record Layer is an open source library that provides a record-oriented data store with semantics similar to a relational database implemented on top of FoundationDB, an ordered, transactional key-value store. The Record Layer provides a lightweight, highly extensible way to store structured data. It offers schema management and a rich set of query and indexing facilities, some of which are not usually found in traditional relational databases, such as nested record types, indexes on commit versions, and indexes that span multiple record types. The Record Layer is stateless and built for massive multi-tenancy, encapsulating and isolating all of a tenant's state, including indexes, into a separate logical database. We demonstrate how the Record Layer is used by CloudKit, Apple's cloud backend service, to provide powerful abstractions to applications serving hundreds of millions of users. CloudKit uses the Record Layer to host billions of independent databases, many with a common schema. Features provided by the Record Layer enable CloudKit to provide richer APIs and stronger semantics with reduced maintenance overhead and improved scalability.
翻译:基础数据库记录层是一个开放源库,它提供了一个记录导向的数据存储库,其语义类似于在基础数据库顶部执行的关联数据库,一个有定序交易关键值存储库。记录层提供了储存结构化数据的轻量、高度可扩展的方式。它提供了结构化数据的系统管理以及丰富的查询和索引设施,其中一些通常没有在传统的关系数据库中找到,如嵌套记录类型、承诺版本索引和跨越多个记录类型的索引。记录层是无国籍的,是为大规模多重租赁而建的,包括索引在内的所有租户状态都封装和隔离成一个单独的逻辑数据库。我们展示了苹果云端服务CloudKit如何使用记录层,为数千万用户提供强大的应用摘要。CloudKit使用记录层托管数十亿个独立数据库,其中许多数据库是通用的系统。记录层提供的特征使CloudKit能够提供更丰富、更坚固的维护性高、更精确性、更精确的维护管理管理管理管理器。