Apple's FoundationDB takes new Record Layer open source, confirms tech underpins CloudKit
Apple database arm FoundationDB on Monday announced the open source release of FoundationDB Record Layer, a relational database management technology that powers CloudKit.
Explained in a post to the official FoundationDB blog, FoundationDB Record Layer provides schema management, indexing facilities and query capabilities to the eponymous distributed datastore.
Beyond features commonly found in a relational database, Record Layer offers support for complex nested data types, indexes on the commit-time of records and indexes and queries that span different types of records, FoudationDB says. As a layer built on FoundationDB, the open source release incorporates ACID semantics and transactional semantics, the latter of which allows for a massive distributed datastore.
Record Layers is stateless, which allows for highly scalable implementations and speedy functionality. According to FoundationDB, database instantiation and subsequent operation can be performed in "milliseconds."
Apple acquired FoundationDB in 2015, taking the scalable NoSQL, ACID-compliant architecture in-house for previously undisclosed purposes. Reports at the time suggested the database software would be used as a basis for Apple's various cloud services, including iCloud and iTunes content management.
Today's announcement confirms FoundationDB and Record Layer act as a foundation for CloudKit. An accompanying white paper details Apple's integration, as well as additional nuances of Record Layer's underlying technology.
The open sourcing of Record Layer represents the second such release from Apple's distributed database subsidiary. In 2018, Apple released FoundationDB as an open source project, hoping to build a community around the scalable system.
Explained in a post to the official FoundationDB blog, FoundationDB Record Layer provides schema management, indexing facilities and query capabilities to the eponymous distributed datastore.
Beyond features commonly found in a relational database, Record Layer offers support for complex nested data types, indexes on the commit-time of records and indexes and queries that span different types of records, FoudationDB says. As a layer built on FoundationDB, the open source release incorporates ACID semantics and transactional semantics, the latter of which allows for a massive distributed datastore.
Record Layers is stateless, which allows for highly scalable implementations and speedy functionality. According to FoundationDB, database instantiation and subsequent operation can be performed in "milliseconds."
Apple acquired FoundationDB in 2015, taking the scalable NoSQL, ACID-compliant architecture in-house for previously undisclosed purposes. Reports at the time suggested the database software would be used as a basis for Apple's various cloud services, including iCloud and iTunes content management.
Today's announcement confirms FoundationDB and Record Layer act as a foundation for CloudKit. An accompanying white paper details Apple's integration, as well as additional nuances of Record Layer's underlying technology.
The open sourcing of Record Layer represents the second such release from Apple's distributed database subsidiary. In 2018, Apple released FoundationDB as an open source project, hoping to build a community around the scalable system.
Comments
The C APIs for FDB were very low level, this layer should provide higher level APIs and hopefully seamless CoreData integration.
Keep the layers coming. SQL?
This DB has the potential to put some established DBs to shame in terms of scalability, performance, redundancy and ease of use.
Go Apple!
From the Wait Paper:
"Represents records as Protocol Buffer messages"
This should go very nicely with CoreData and may actually enhance CoreData.
Google's Proto compilers will generate getter and setters for various languages to facilitate CRUD.
This is a game changer. Googlers will be all over this DB.
Interesting to note that Apple is building rich layers for abstraction. Got me thinking about a relational system for AI, AR and Siri.
Never mind, I know what they’re doing with it now.
Looking forward to a Swift protobuf compiler for Ubuntu Linux.
XCode already has a super elegant GUI for this in Mac OS X
Swift also offers a significant advantage over C++ by using Extensions to add intelligence to protobuf classes instead of wrappers.
Swift + Foundation DB could become Linux favorites for DB development.
Oh, Yeah...
I've been fiddle-farting around trying to install the FoundationDB example with the CLI -- I am not very good at the CLI, but every 2-3 years I need to do something which results in a few days or weeks of intense CLI activity... then my mind numbs 'til the next fit attacks
I would really like to play with FDB in Swift Playgrounds on the Mac or iPad.
mdriftmeyer said: netmage said: Instead of SQL how about a LINQ driver? How about not. Stick to SQL.
Yeah, it appears that the FDB Record Layer can evolve to be an efficient superset of an SQL relational DB. It appears that FDB is much more granular (can be very useful) but that granualarity can be hidden with higher-level functions (as in Swift).
From what I'm reading, the Record Layer syntax can closely parallel SQL and then some -- and has the advantage of being designed for today's OSes, Hardware and programming languages.