

FoundationDB's Record Layer Supports Relational Database Semantics, Sche...
source link: https://www.tuicool.com/articles/hit/raqeeyU
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

The FoundationDB NoSQL database's new Record Layer supports relational database semantics, schema management, primary and secondary indexes, and query capabilities. The FoundationDB team announced last month the open source release of the Record Layer.
FoundationDB is an open-source "multi-model" NoSQL database originally developed by Apple, but since its open sourcing many different companies have contributed to its development. The database is designed with a cloud-friendly " shared nothing architecture ". FoundationDB was designed around a "core" key-value database, with additional features supplied in a "layers", which extend the functionality by adding features and data models to allow new data access patterns. Built on top of FoundationDB, the Record Layer supports managing records with fields and types, an evolving schema , primary and secondary indexes , and declarative query execution . This Layer is intended to be composable and can be extended via other systems, enabling a new class of layers and applications on top of FoundationDB.
The Record Layer also includes features that are not typically found in relational databases, such as nested data types , indexes on the commit-time of records, and indexes and queries that span different types of records.
The Record Layer applies FoundationDB's transactional semantics to secondary indexes, which means the indexes are always up-to-date with the latest changes to the data. Since it's stateless, Record Layer can scale up by simply launching more instances of the database. It supports multi-tenancy and isolates all the data belonging to a tenant.
Other features in the Record Layer include:
- Records being represented as Protocol Buffer messages, providing industry-standard serialization and schema evolution. Transactional secondary indexing feature is based on the Protocol Buffer data model.
- Support for advanced index types such as grouped counts, full text indexes, ordinal rank indexes, and extensible functional indexes.
- Query planner for turning those queries into concrete database operations.
- Extension points: Users can build custom index maintainers and query planning features to integrate new index types.
- Serialization API that supports client-defined encryption and compression algorithms.
The Record Layer and FoundationDB are used in production at Apple to support applications and services like Apple's CloudKit .
Similar to Record Layer, FoundationDB's Document Layer is a stateless microserver that exposes a document-oriented database compatible with the MongoDB API.
The FoundationDB installation package supports macOS, Ubuntu, RHEL/CentOS EL6 & EL7, and Windows operating systems. It also supports the API language bindings for C, Python, Ruby, Java 8+, and Go 1.1+ programming languages. The team wrote a paper describing how CloudKit uses the Record Layer.
If you are interested in learning more about the Record Layer feature in FoundationDB database, checkout the following resources:
- Getting Started Guide which includes how to run FoundationDB (FDB) in your local environment
- Documentation
- Download link
- Github project
Recommend
-
153
README.md ...
-
117
A minimalistic relational database library for Go. Table of Contents Install $ go get github.com/azer/crud/v2 Initialize import ( "github.com/azer/crud/v2" _ "...
-
79
README.md
-
107
Reactive Relational Database Connectivity. R2DBC – Reactive Relational Database Connectivity has 5 repositories available. Follow their code on GitHub.
-
221
README.md Reactive Relational Database Connectivity Client (R2DBC) This project is an exploration of what a Java API for relational database access wit...
-
63
README.md FoundationDB Record Layer The Record Layer is a Java API providing a record-oriented store on top of FoundationDB, (very) roughly equivalent...
-
45
(Last Updated On: April 2, 2019)
-
61
What is EdgeDB? EdgeDB is an open-source object-relational database built on top of PostgreSQL. The goal of EdgeDB is to empower its users to build safe and efficient software with l...
-
5
Time Series and FoundationDB: Millions of writes/s and 10x compression in under 2,000 lines of Go Disclaimer I want to preface everything you’re about to read with the disclaimer that I built DiamondDB purely as a PoC to measure...
-
5
Relational database records often require transitions between various statuses; for example active, pending, deleted etc. Various database structures may be used to store this status. A...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK