when running FoundationDB?

Reply to this note

Please Login to reply.

Discussion

when I learn how. I love tigerbeetle's static binary. so easy to get up and running on all my servers

1. download the suitable release from https://github.com/apple/foundationdb/releases/tag/7.3.63 (you need both -clients and -server for servers)

2. install with your package manager

3. edit /etc/foundationdb/foundationdb.conf

- set public-address = :$ID

- set machine-id to hostname

4. systemctl start foundationdb

ensure the FDB ports are firewalled

edit /etc/foundationdb/fdb.cluster on the first node, replace 127.0.0.1 with node IP

fire up fdbcli and run `configure ssd-redwood-1`

repeat on all nodes the installation, edit foundationdb.conf, BUT copy /etc/foundationdb/fdb.cluster from the main node

after you added all nodes run `coordinators auto`

if you want access control with mTLS instead that requires some additional setup

are there docs for recommended cluster sizes?

not really docs but it is scattered around on the forums mostly

3 servers minimum, you can scale from there easily (just copy files as usual)

so, first, you'll want to set process classes (class = under [fdbserver.PORT] block)

there are only 3 that matter at small scales: storage, transaction, and stateless

storage handles data storage and you should give each storage server 8GB (if using ssd-redwood-1) or 4GB (ssd-2), and for best performance put 2 storage processes per disk

transaction handles transaction logs, you would ideally want dedicated disks for this but it can be shared with storage at small scale, but you should put only 1 transaction process per disk. you can use tiny disks and/or dedicated hosts for this

you can have as many stateless processes as you want per host but you would want at least 2 per server, and all that these need is good network/CPU

a very small cluster can have 3 hosts, with the following configuration:

- 1 stateless process

- 1 transaction process

- 2 storage processes

on a 24GB RAM host (16GB if you use ssd-2, but at the cost of some performance)

if you want more performance you could spin up some small cloud server, and have the transaction processes on those

you do not need RAM on the host for the page cache, FDB does its own caching

it is somewhat tedious to set up, but it pays off a lot, it is basically impossible to break the DB

I will manage to break it somehow