apple / foundationdb

FoundationDB - the open source, distributed, transactional key-value store
https://apple.github.io/foundationdb/
Apache License 2.0
14.51k stars 1.31k forks source link

Multi-version client is not aware of coordinator changes #498

Closed ajbeamon closed 1 year ago

ajbeamon commented 6 years ago

When using the multi-version client, those client versions that aren't compatible to the cluster are not made aware of changes to the coordinators. This can cause a problem if, for example, the entire cluster is migrated to new hosts and then the cluster is upgraded. Any clients that had setup the multi-version client prior to the migrate would cease to work at the time of the upgrade.

This behavior can currently be avoided (or remedied) by bouncing any clients using multiple versions via the multi-version client API anytime after the coordinators are changed.

hgray1 commented 5 years ago

Might be related to the live TLS migrations work #1050

sfc-gh-abeamon commented 2 years ago

This might be resolved by the MVC 1.5 changes (https://github.com/apple/foundationdb/pull/4667). Instead of monitoring each version for a connection, MVC 1.5 will use the currently connected client (or the primary, if none is connected) to determine the protocol version of the cluster and connect. It will then open a database connection at that time, and assuming the previously connected client updated the cluster file it should work as expected.

That this is fixed should probably be validated. The fixed behavior will only apply if the cluster version and the primary client version are at least 7.0.

sfc-gh-abeamon commented 1 year ago

@sfc-gh-vgasiunas is this resolved now?

sfc-gh-vgasiunas commented 1 year ago

I think so. This have been addressed by the new method of determining primary client. Also we added a possibility to update coordinators from the cluster file in https://github.com/apple/foundationdb/pull/7382.