Is there a command to find the installed server, client lib and server lib versions? Like I want to find this multi-thread-client: Add test for Java bindings by vishesh · Pull Request #4339 · apple/foundationdb · GitHub
You can determine the versions of the executables (e.g.
fdbcli) with the
$ fdbcli -v FoundationDB CLI 6.2 (v6.2.27) source version 87cdf2b331bfe91d0a4d0e0ac09f1adbe1f2e012 protocol fdb00b062010001
It should be noted that if you have any process that connects to the cluster and interacts with it (e.g.
fdbcli), then you can know the major/minor release version and the protocol version because of the fact that different versions are incompatible with each other. So for example, if I use the above
fdbcli to read a key from the database successfully, then I know that the cluster is version 6.2.x and has protocol version
If you are connected to the cluster, then you can also use that to determine the specific patch version of all server processes that are connected to the cluster by reading the
status json output in
fdbcli. This data is reported at
cluster.processes[$ID].version. Client versions are also reported in status, though this data is aggregated and it’s not always possible to tell the version of a specific client this way. You can see this data in
cluster.clients.supported_versions, which is a list of objects with various data in it. See the full schema here.
Finally, you can determine the version of client library using a tool that is available in the GitHub repository: foundationdb/fdb_c_version.py at master · apple/foundationdb · GitHub. If you run this script and pass in the path to your library, it will print out version information about it. For example:
$ contrib/monitoring/fdb_c_version.py /usr/local/lib/libfdb_c.dylib FoundationDB Client 6.2 (v6.2.27) source version 87cdf2b331bfe91d0a4d0e0ac09f1adbe1f2e012 protocol fdb00b062010001