BT

InfoQ Homepage News FoundationDB SQL Layer: Storing SQL Data in a NoSQL Database

FoundationDB SQL Layer: Storing SQL Data in a NoSQL Database

Bookmarks

FoundationDB has announced the general availability of SQL Layer, and ANSI SQL engine that runs on top of their key-value store. The result is a relational database backed up by a scalable, fault-tolerant, shared-nothing, distributed NoSQL store with support for multi-key ACID transactions.

FoundationDB’s approach was to separate the data model from its storage. For example, the data store does not have indexing built in. The respective functionality is provided by an upper layer which implements indexing by creating and storing a pair of key-values, one for the data and one for the index.

Providing simple storage access through an API and delegating some of the functionality to an upper layer enables developers to create various layers on top of FoundationDB. One layer is the SQL Layer. The community has created a number of other layers, such as Protocol Buffers for Ruby, Fowl – a query layer for Node.js, and others.

SQL data normally organized in tables is stored in FoundationDB as tuples. The data is accessed through ordered keys which are also tuples. Besides the data index, such a tuple contains information about the table a data belongs to and relations with other tables. Through the use of tuples it is possible to retrieve/store ranges of data in one operation.

SQL Layer is written in Java and uses FoundationDB SQL Parser which is derived from Apache Derby, and it is compatible with several ORMs – Hibernate, Entity Framework, ActiveRecord, Django, SQLAlchemy, Doctrine. The layer is available on GitHub under a GNU GPL license.

FoundationDB supports a number of languages for development – Java, .NET, C, Ruby, Node.js, Go, PHP, Python –, and can be deployed on Linux, Mac OS X or Windows, on a single machine, on a cluster of them, on premises or in the cloud. Besides the paid Silver, Gold and Platinum editions, FoundationDB offers a free edition that is limited in production to 6 processes.

Rate this Article

Adoption
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • SQL is a language...

    by Mark N /

    Your message is awaiting moderation. Thank you for participating in the discussion.

    There is no such thing as SQL data. You use SQL to "query" some data repository. You can use SQL with Excel. You can use SQL with HBase and HDFS.

  • Re: SQL is a language...

    by Abel Avram /

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Yes, perhaps not the most inspired expression. Something like "SQL-accessed data" would have been probably better. But the reader gets the idea...

  • SPAM

    by Cameron Purdy /

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Isn't this just an advertisement? If the license is GPL, it's not safe to use as part of a commercial product, and thus you need to purchase some sort of commercial license. Oh, lucky us, "FoundationDB offers a free edition that is limited in production".

    Peace,

    Cameron Purdy | Oracle

    For the sake of full disclosure, I work at Oracle. The opinions and views expressed in this post are my own, and do not necessarily reflect the opinions or views of my employer.

  • Re: SPAM

    by Charles Humble /

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Hi Cameron,

    Isn't this just an advertisement? If the license is GPL, it's not safe to use as part of a commercial product, and thus you need to purchase some sort of commercial license.


    I'm puzzled by your comment. It seems to me we were quite careful to not simply say their SQL Layer is open-source, but rather explicitly call out the fact that it is GPL-licensed, and that FoundationDB itself is a commercial product.

    I personally think the growing push towards transaction support/ACID compliance amongst the various NoSQL vendors, and the corresponding convergence between NoSQL and relational persistence mechanisms is a significant trend and one we absolutely should be covering.

    Charles Humble
    Head of Editorial, InfoQ

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

BT

Is your profile up-to-date? Please take a moment to review and update.

Note: If updating/changing your email, a validation request will be sent

Company name:
Company role:
Company size:
Country/Zone:
State/Province/Region:
You will be sent an email to validate the new email address. This pop-up will close itself in a few moments.