Installing FoundationDB
The official documentation has plenty of docs on how to install FoundationDB:
Client or server?
In the Downloads page, you will find reference to two archives:
- clients
- server
Clients
The clients package is required by all bindings(i.e. programming libraries). These are needed files for all bindings:
/usr/lib/libfdb_c.so
/usr/include/foundationdb/fdb_c.h
/usr/include/foundationdb/fdb_c_options.g.h
You will also find different binaries:
- dr_agent
- fdbbackup
- fdbcli
- fdbdr
- fdbrestore
Server
The server package is holding FDB's binaries:
- fdbmonitor
- fdbserver
And a default configuration file for fdbmonitor
located at /etc/foundationdb/foundationdb.conf
. fdbserver
is the main binary, and fdbmonitor
is simply a wrapper on top of fdbserver
.
The cluster file
Both packages will install a default cluster file:
FoundationDB servers and clients use a cluster file (usually named
fdb.cluster
) to connect to a cluster. The contents of the cluster file are the same for all processes that connect to the cluster. Anfdb.cluster
file is created automatically when you install a FoundationDB server and updated automatically when you change coordination servers. To connect to a cluster from a client machine, you will need access to a copy of the cluster file used by the servers in the cluster.
⚠️ Wire protocol
FoundationDB's wire protocol is not compatible between minors releases, i.e. client version 6.2 will not be able to communicate with 6.3.X, 6.1.X, and all versions different from 6.3.X.
On the bindings-side, the client will be stalling. On the server's logs, you would see events like ConnectionRejected
with a reason IncompatibleProtocolVersion
.