FoundationDB SQL Layer
Overview
The FoundationDB SQL layer is a full SQL implementation that builds on FoundationDB’s core features. It gets the same high performance, multi-node scalability, fault-tolerance, and true multi-key ACID transactions while also providing new capabilities, including a sophisticated SQL environment and direct object access.
It was written from the ground up in Java and utilizes the FoundationDB SQL Parser.
Check out https://foundationdb.com/layers/sql for the full documentation.
Prerequisites
The FoundationDB SQL Layer requires Java 7 Runtime Environment and FoundationDB.
JRE
The FoundationDB SQL Layer requires the Java 7 Runtime Environment (JRE). Both OpenJDK JRE and the official Oracle JRE are supported.
See the Oracle Java SE Downloads page for installation details.
FoundationDB
To install FoundationDB, follow the official Getting Started guides, being sure to check that the cluster is up and running (covered in Testing your FoundationDB installation).
Installing the SQL Layer
The SQL Layer can be installed from system packages (appropriate for most people) or directly from source (intended for developers).
a. Packages
Official packages for Windows, OS X, Ubuntu and CentOS/RedHat are available. See the installation section for more details.
A single instance of the SQL Layer is installed by default and is appropriate for local development. Consult the documentation for recommended multi-node configurations.
b. Source
Note: This section is intended only for developers.
To build the SQL Layer from source code several steps need to be taken in advance.
- Have the FoundationDB key-value store installed and running.
- Install Java Development Kit (JDK) version 7, either OpenJDK or Oracle JDK.
- Set the environment variable JAVA_HOME to the directory in which the JDK is installed.
- Install Maven version 3 to build the package.
- Install Protobuf version 2.5.0. Installation instructions are in their README.txt, it may require installation of gpp. The Maven POM.xml file for building the SQL Layer assumes this directory is present in the parent directory of the SQL Layer.
- Clone and build the FoundationDB SQL Parser
- Clone and build the FoundationDB JDBC Driver
Not a prerequisite but recommended, you can install the SQL Layer Client Tools to interact with the SQL layer when it runs.
After installing the listed prerequisites, you can clone the project using git, and build the SQL Layer.
Move into the directory:
$ cd sql-layer
Use Maven to build the project:
$ mvn install
All unit and integration tests will be run by default, which could be lengthy.
Test execution can be avoided with the skipTests
option:
$ mvn install -DskipTests=true
An executable jar, and required dependencies, will be the target/
directory
once packaging is complete.
The server can then be started with the fdbsqllayer
script. The -f
flag
will run it in the foreground:
$ ./bin/fdbsqllayer -f
Or for Windows users:
$ ./bin/fdbsqllayer.cmd -f
A handful of informational messages will print and then the server will state it is ready:
2013-03-22 15:36:29,561 [main] INFO ServiceManager - FoundationDB SQL Layer ready.
When installing from source, you'll also want the SQL Layer Client Tools.
5. Testing Your SQL Layer Installation
The SQL Layer can then be accessed using the SQL client on port 15432
:
$ fdbsqlcli -c 'SELECT VERSION();'
_SQL_COL_1
--------------------------
FoundationDB x.y.z +hash
(1 row)
And using a RESTful API on port 8091
:
$ curl http://localhost:8091/v1/version
[
{"server_name":"FoundationDB SQL Layer","server_version":"x.y.z+hash"}
]
Contact
- GitHub: http://github.com/FoundationDB/sql-layer
- Community: https://foundationdb.com/community
- IRC: #FoundationDB on irc.freenode.net