The FoundationDB team announced the open-source release of FoundationDB Record Layer, a relational database technology used by CloudKit, yesterday. FoundationDB Record Layer is capable of storing the structured data in a similar fashion as a relational database. It comes with features such as schema management, indexing facilities, along with a rich set of query capabilities.
The Record Layer is being used by Apple and offers support for the apps and services. Since the Record layer is built on top of FoundationDB, it is capable of inheriting FoundationDB’s strong ACID semantics, and performance in a distributed setting. Apart from using its ACID (atomicity, consistency, isolation, durability) semantics, the Record Layer also uses FoundationDB’s transactional semantics. This helps it provide features similar to the ones found in the traditional relational database but in a distributed setting.
The design and a core feature of the Record layer were built in a way that allows it to scale to millions of concurrent users, diverse ecosystem of client applications, and query access patterns. Apart from that, the Record Layer comes with an ability to balance out the resource consumption across users in a predictable way. A combination of the Record layer and FoundationDB forms the backbone of CloudKit, a framework by Apple that provides an interface to move your data between apps and iCloud containers.
Other highlights of the Record Layer include:
- support for transactional secondary indexing that takes full advantage of the Protocol Buffer data model.
- a declarative query API that is useful for retrieving data along with a query planner that turns those queries into concrete database operations.
- a large number of deep extension points that can help users build custom index maintainers and query planning features, allowing them to seamlessly “plug-in” new index types.
For more information, check out the official FoundationDB announcement.