The FoundationDB SQL Layer is a scalable, fault tolerant, OLTP SQL database. It inherits FoundationDB performance, multi-node scalability, high availability, fault tolerance, and ACID transactions, and adds a sophisticated SQL environment with hierarchical modeling of tables, and a RESTful object access API.
At a high-level the architecture looks as follows:
The SQL Layer is an operational rather than an analytical database system, best suited for applications with high concurrency and short transactional workloads. It is able to ingest high volumes of data in real time and respond to large numbers of short queries from many clients.
The SQL Layer trades-off latency for concurrency. A single request will take longer than a local database would, but many more requests can be executed in parallel. For example, loading one million rows serially will be slower than in a traditional database but will be much faster and more scalable when done in parallel. You should take this into account when building your application.
If you’re new to the SQL Layer, it is important to understand the fundamental ways in which it differs from traditional relational databases. Start by reading about features and anti-features, and carefully review the known limitations.
Next, we recommend reading about Table-Groups. Table-Groups are a fundamental concept in the SQL Layer that introduces hierarchies of tables in the schema, and stores rows of the tables interleaved in a way that reflects the same hierarchy. The Table-Group unified storage structure enables both object and table views of the same data.
To start using the system follow one of the Getting Started guides. The guides begin with installation on different platforms, and then provide a brief introduction to using the SQL engine through ORMs, SQL, and the REST API. Several Hands-on Tutorials offer in-depth examples of common usage scenarios.
Once you’re ready to really dig in, you’ll want to get into the details of physical architecture and follow the installation guide most suitable for your environment. Then review the operational configuration, administration, security and back-up and restoration options. To migrate data from another database, check out the migration guide.
We encourage you to participate on our community site. We keep tabs on discussion there and can usually reply to questions or comments quickly. The SQL Layer is open source, and we invite you to follow and participate in its development on github.