ClickHouse/programs
Robert Schulze e0d5020a92
Add simple versioning to the *-bridge-to-server protocol
- In general, it is expected that clickhouse-*-bridges and
  clickhouse-server were build from the same source version (e.g. are
  upgraded "atomically"). If that is not the case, we should at least
  be able to detect the mismatch and abort.

- This commit adds a URL parameter "version", defined in a header shared
  by the server and bridges. The bridge returns an error in case of
  mismatch.

- The version is *not* send and checked for "ping" requests (used for
  handshake), only for regular requests send after handshake. This is
  because the internally thrown server-side exception due to HTTP
  failure does not propagate the exact HTTP error (it only stores the
  error as text), and as a result, the server-side handshake code
  simply retries in case of error with exponential backoff and finally
  fails with a "timeout error". This is reasonable as pings typically
  fail due to time out. However, without a rework of HTTP exceptions,
  version mismatch during ping would also appear as "timeout" which is
  too misleading. The behavior may be changed later if needed.

- Note that introducing a version parameter does not represent a
  protocol upgrade itself. Bridges older than the server will simply
  ignore the field. Only servers older than the bridges receive an error
  but such a situation should never occur in practice.
2022-08-08 19:40:37 +00:00
..
bash-completion Add ability to pass QueryKind via clickhouse-client/local (useful for debugging) 2022-05-19 07:19:27 +03:00
benchmark Enable clang-tidy modernize-deprecated-headers & hicpp-deprecated-headers 2022-05-09 08:23:33 +02:00
client Fix code style. 2022-07-21 10:48:53 +02:00
compressor fixed cosmetic issues 2022-07-15 17:23:37 -04:00
copier Fix build 2022-07-14 14:36:31 +00:00
diagnostics Escape credentials for diagnostics tool 2022-07-29 12:25:03 +01:00
disks Fixing build. 2022-07-20 20:30:16 +00:00
extract-from-config Allow globs in keys for clickhouse-extract-from-config tool (#38966) 2022-07-08 16:13:32 +02:00
format Activate clang-tidy warning "readability-container-contains" 2022-04-18 23:53:11 +02:00
git-import Activate clang-tidy warning "readability-container-contains" 2022-04-18 23:53:11 +02:00
install Fix 2022-06-16 19:50:09 +02:00
keeper Prefix overridden add_executable() command with "clickhouse_" 2022-07-11 19:36:18 +02:00
keeper-converter Address PR comments 2022-07-27 07:51:30 +00:00
library-bridge Add simple versioning to the *-bridge-to-server protocol 2022-08-08 19:40:37 +00:00
local Merge branch 'master' into Issue_39395 2022-08-01 12:22:16 -04:00
obfuscator Use std::popcount, ::countl_zero, ::countr_zero functions 2022-07-31 15:16:51 +00:00
odbc-bridge Add simple versioning to the *-bridge-to-server protocol 2022-08-08 19:40:37 +00:00
self-extracting add native build for cross-compilation 2022-07-20 23:09:05 -04:00
server Play UI: row numbers; cell selection; hysteresis 2022-08-08 04:25:03 +02:00
static-files-disk-uploader Fix error in static-files-disk-uploader 2022-05-24 01:38:17 +02:00
su Fix clickhouse-su building in splitted build 2022-07-29 11:36:51 +03:00
clickhouse-split-helper Move all folders inside /dbms one level up (#9974) 2020-04-02 02:51:21 +03:00
CMakeLists.txt Merge pull request #39904 from ClickHouse/library-bridge-refactoring 2022-08-08 12:15:01 +02:00
config_tools.h.in Add basic commands for disk tool (list-disks, list, move, remove, link, copy, read, write) + tests 2022-06-06 16:52:58 +03:00
embed_binary.S.in Adds a better way to include binary resources 2021-06-09 14:03:30 -07:00
main.cpp Disable harmful env var check to workaround failure to start the server 2022-07-31 08:55:07 +00:00