I have a clear idea about working of fdb server and fdbcli, but in the case of fdb monitor, it’s not like that. I want to know the purpose of fdb monitor.
AFAIK, Fdbmonitor reads/watches the conf file and ensures that the fdbserver processes are spawned and running with settings specified in the conf file. If fdbserver gets killed, then fdbmonitor brings it back up.
Yep, that’s right.
In principle, I think one could run an FDB cluster without fdbmonitor if one had something else to go around and restart stopped processes (etc), but I also think that fdbmonitor makes it easier in many cases.
For deploying fdb on orchestration platforms like kubernetes, should we utilize fdbmonitor somewhere or should we let orchestrator solely manage fdbservers? Any recommendations?
I noticed that fdbmonitor is also acted as fdbbackup (as it represents in the foundationdb.conf), it will back up the data folder periodically .
I think fdbmonitor will spawn fdbbackup process; but actual backups will be triggered by fdbbackup process itself (and not by fdbmonitor)
To minimize downtime during upgrades of FoundationDB, you’d want to be able to kill all of your processes and restart them into the new version in as small of a time window as possible. Sometimes, orchestration platforms aren’t good about doing this coordinated kill and replace, and thus running fdbmonitor thus makes the upgrade easier to do and administer.