We need to determine which versions of JDBC/ODBC drivers can be used with which versions of Drill server. Due to recent improvements in security, a newer client had problems working with an older server. The current solution is to require drill clients and drill servers to be the same version. In some cases, different versions of drill clients can work with different versions of drill servers, but this compatibility is being determined on a version-by-version, feature-by-feature basis.
We need an architecture that enables this to work automatically. In particular, if a new drill client requests a feature that the older drill server does not support, this should be handled gracefully without returning an error.
This also has an impact on QA resources. We recently had a customer issue that needed to be fixed on three different Drill server releases, so three new drivers had to be created and tested.
Note that drill clients and drill servers can be on different versions for various reasons:
1) A user may need to access different drill servers. They can only have one version of the drill client installed on their machine.
2) Many users may need to access the same drill server. Some users may have one version of the drill client installed while other users may have a different version of the drill client installed. In a large customer installation, it is difficult to get all users to upgrade their drill client at the same time.