The FoundationDB Record Layer is an open source library that provides a record-oriented datastore 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能够提供更丰富的API和更强的语义,同时降低了维护的上层和广度。