Commit Graph

1379 Commits

Author SHA1 Message Date
Azat Khuzhin
e4350e078c Add ability to distinguish remote exceptions from local 2021-01-20 01:10:17 +03:00
Pavel Kruglov
97b5179e55 Implement HedgedRequests 2021-01-19 22:41:05 +03:00
Azat Khuzhin
cf085b0687 Split RemoteQueryExecutorReadContext into module part 2021-01-16 01:57:36 +03:00
Nikolai Kochetov
af7f5c9518
Merge pull request #17868 from ClickHouse/async-read-from-socket
Async read from socket
2020-12-23 12:20:42 +03:00
Nikolai Kochetov
01c8d5dccc Use replace fiber to callback in ReadBufferFromPocoSocket 2020-12-18 17:24:44 +03:00
nikitamikhaylov
18d52dbc63 better 2020-12-16 14:55:33 +03:00
nikitamikhaylov
4ccdb3ca20 done 2020-12-16 14:55:33 +03:00
Nikolai Kochetov
4c290996dc Fixing tests. 2020-12-15 21:22:20 +03:00
Nikolai Kochetov
3d6ace5890 Fixing tests. 2020-12-15 21:20:14 +03:00
Nikolai Kochetov
00de8abb0a Fixing tests. 2020-12-15 00:07:10 +03:00
Nikolai Kochetov
8de5cd5bc7 Merge branch 'master' into async-read-from-socket 2020-12-14 17:45:38 +03:00
Nikolai Kochetov
75ac87c241 Fixing build. 2020-12-14 17:42:12 +03:00
Nikolai Kochetov
e295dfe6e3 Use ucontext for asan 2020-12-14 17:42:08 +03:00
Azat Khuzhin
5b3ab48861 More forward declaration for generic headers
The following headers are pretty generic, so use forward declaration as
much as possible:
- Context.h
- Settings.h
- ConnectionTimeouts.h
(Also this shows that some missing some includes -- this has been fixed)

And split ConnectionTimeouts.h into ConnectionTimeoutsContext.h (since
module part cannot be added for it, due to recursive build dependencies
that will be introduced)

Also remove Settings from the RemoteBlockInputStream/RemoteQueryExecutor
and just pass the context, since settings was passed only in speicifc
places, that can allow making a copy of Context (i.e. Copier).

Approx results (How much units will be recompiled after changing file X?):

- ConnectionTimeouts.h
  - mainline: 100

- Context.h:
  - mainline: ~800
  - patched:  415

- Settings.h:
  - mainline: 900-1K
  - patched:  440 (most of them because of the Context.h)
2020-12-12 17:43:10 +03:00
Nikolai Kochetov
156f44808f Fixing crash. 2020-12-09 17:11:45 +03:00
Nikolai Kochetov
082a496364 Add async read to RemoteQueryExecutor 2020-12-03 15:21:10 +03:00
Nikolai Kochetov
e3946bc2b5 Add async read to RemoteQueryExecutor. 2020-12-02 20:02:14 +03:00
Pavel Kruglov
5b94dd2f74 Add eof check in receiveHello 2020-11-24 18:15:13 +03:00
Alexey Milovidov
24f4fa6edf Follow Arcadia ya.make rules 2020-11-17 00:16:50 +03:00
Alexey Milovidov
3df04ce0c2 Follow Arcadia ya.make rules 2020-11-16 21:24:58 +03:00
filimonov
7f7f66a1f1
add comment & restart CI... 2020-11-13 17:45:58 +01:00
filimonov
be16b4ef77
Update Connection.cpp 2020-11-13 12:04:56 +01:00
filimonov
178d8e9b75
Update Connection.cpp 2020-11-12 22:07:19 +01:00
filimonov
8eff47420b
Update Connection.cpp 2020-11-12 18:18:34 +01:00
Alexander Tokmakov
a06be511df pcg serialization 2020-11-09 16:07:38 +03:00
Alexey Milovidov
fd84d16387 Fix "server failed to start" error 2020-11-07 03:14:53 +03:00
Maxim Akhmedov
3627fabfb9 Remove -g0 form Arcadia build settings. 2020-10-29 17:37:23 +03:00
Amos Bird
d2dcfc3f0d
Refactor processors. 2020-10-12 17:30:05 +08:00
Alexander Kuzmenkov
dde4cf70e1 Merge remote-tracking branch 'origin/master' into HEAD 2020-09-22 14:03:59 +03:00
alexey-milovidov
9b6c62e82b
Merge pull request #14867 from amosbird/lbo
Explicit define what first replica is.
2020-09-17 19:37:15 +03:00
Alexander Kuzmenkov
fb64cf210a straighten the protocol version 2020-09-17 17:37:29 +03:00
Amos Bird
38d53c38f6
Explicit define what first replica is. 2020-09-16 17:54:41 +08:00
Azat Khuzhin
785d1b2a75 OpenSSLHelpers cleanup
Add few more specializations for encodeSHA256():
- std::string encodeSHA256(const std::string_view &);
- std::string encodeSHA256(const void *, size_t);
- void encodeSHA256(const void *, size_t, unsigned char *);
2020-09-15 01:36:28 +03:00
Azat Khuzhin
0159c74f21 Secure inter-cluster query execution (with initial_user as current query user) [v3]
Add inter-server cluster secret, it is used for Distributed queries
inside cluster, you can configure in the configuration file:

  <remote_servers>
      <logs>
          <shard>
              <secret>foobar</secret> <!-- empty -- works as before -->
              ...
          </shard>
      </logs>
  </remote_servers>

And this will allow clickhouse to make sure that the query was not
faked, and was issued from the node that knows the secret. And since
trust appeared it can use initial_user for query execution, this will
apply correct *_for_user (since with inter-server secret enabled, the
query will be executed from the same user on the shards as on initator,
unlike "default" user w/o it).

v2: Change user to the initial_user for Distributed queries if secret match
v3: Add Protocol::Cluster package
v4: Drop Protocol::Cluster and use plain Protocol::Hello + user marker
v5: Do not use user from Hello for cluster-secure (superfluous)
2020-09-15 01:36:28 +03:00
Alexey Milovidov
e3924b8057 Fix "Arcadia" 2020-09-08 01:14:13 +03:00
alesapin
10c7a6c45e
Add ability to specify Default codec for columns (#14049)
* Add ability to specify DefaultCompression codec which correspond to settings specified in config.xml

* Fix style

* Rename DefaultCompression to simple Default

* Fix compression codec

* Better codec description representation

* Less strange code and one method

* Fix delta
2020-08-28 20:40:45 +03:00
Vasily Nemkov
f94f786cc3 First attempt to fix data race in ConnectionPoolWithFailover::getStatus() 2020-08-20 23:25:38 +03:00
Nikolai Kochetov
9b67cd9faf Merge branch 'master' into refactor-pipes-3 2020-08-10 10:50:17 +03:00
Alexey Milovidov
edd89a8610 Fix half of typos 2020-08-08 03:47:03 +03:00
Nikolai Kochetov
20e63d2271 Refactor Pipe [part 6] 2020-08-06 15:24:05 +03:00
Alexey Milovidov
6f690b7c0d Normalize ya.make files, fix "Arcadia" build 2020-08-02 16:57:38 +03:00
Vitaly Baranov
56665a15f7 Rework and rename the template class SettingsCollection => BaseSettings. 2020-07-31 20:54:18 +03:00
Nikita Mikhaylov
4d49d2c671 another removes 2020-07-30 13:31:14 +03:00
Alexander Kuzmenkov
ac436c79eb Merge remote-tracking branch 'origin/master' into HEAD 2020-07-07 15:42:11 +03:00
Alexander Kuzmenkov
5c417f45b8 streaming wip 2020-06-30 12:25:23 +03:00
Azat Khuzhin
ebff4eae7d Add replica priority for load_balancing
Make default 1, to match with <weight>
2020-06-29 23:03:28 +03:00
Azat Khuzhin
b8ee2ea7d9 Pass max_ignored_errors/fallback_to_stale_replicas to PoolWithFailoverBase::get() too 2020-06-20 11:46:13 +03:00
Azat Khuzhin
dd054380bf Drop default values for some arguments of PoolWithFailoverBase::getMany 2020-06-20 11:21:18 +03:00
Azat Khuzhin
caa195c034 Add number of errors to ignore while choosing replicas (distributed_replica_max_ignored_errors)
This will allow avoid switching to another replica in case of error
(since error can be temporary).
2020-06-20 11:20:16 +03:00
Nikita Mikhaylov
ff0262626a
Merge pull request #11645 from azat/load-balancing-round-robin
Add round_robin load_balancing
2020-06-17 14:34:59 +04:00
Nikita Mikhaylov
9b88065e77
add small comment 2020-06-17 13:33:35 +03:00
Alexey Milovidov
217d05443a Remove old non-automated test 2020-06-14 20:42:11 +03:00
Azat Khuzhin
0e378590fe Add load_balancing=round_robin 2020-06-14 01:09:21 +03:00
Alexey Milovidov
25f941020b Remove namespace pollution 2020-05-31 00:57:37 +03:00
Alexey Milovidov
5aff138956 Preparation for structured logging 2020-05-31 00:35:52 +03:00
Alexey Milovidov
9082a70ee6 Fix clang-tidy 2020-05-24 21:25:58 +03:00
Alexey Milovidov
7e1813825b Return old names of macros 2020-05-24 01:24:01 +03:00
Alexey Milovidov
bab24879e9 Progress on task 2020-05-24 00:16:05 +03:00
Alexey Milovidov
7c0c328a35 Progress on task 2020-05-24 00:05:47 +03:00
Alexey Milovidov
d2621fee30 Progress on task 2020-05-23 23:57:48 +03:00
Alexey Milovidov
f75587e562 Progress on task 2020-05-23 23:13:34 +03:00
Alexey Milovidov
cd6d3c7509 Progress on task 2020-05-23 22:55:06 +03:00
Alexey Milovidov
eacff92d0e Progress on task 2020-05-23 22:35:08 +03:00
Alexey Milovidov
86b4d5a86f Remove duplicate whitespaces (preparation) 2020-05-23 22:09:06 +03:00
Alexey Milovidov
ab0562a574 Make all LOG in single line (preparation) 2020-05-23 22:05:41 +03:00
Alexey Milovidov
45b6abdfee Progress on task 2020-05-23 21:22:40 +03:00
Alexey Milovidov
9d24908e53 Progress on task 2020-05-23 20:52:11 +03:00
Alexey Milovidov
8d2e80a5e2 find {base,src,programs} -name '*.h' -or -name '*.cpp' | xargs grep -l -P 'LOG_\w+\([^,]+, "[^"]+"\)' | xargs sed -i -r -e 's/(LOG_\w+)\(([^,]+, "[^"]+")\)/\1_FORMATTED(\2)/' 2020-05-23 19:42:39 +03:00
Alexey Milovidov
e884800662 Remove commented code 2020-05-23 19:38:59 +03:00
Azat Khuzhin
d93b9a57f6 Forward declaration for Context as much as possible.
Now after changing Context.h 488 modules will be recompiled instead of 582.
2020-05-21 01:53:18 +03:00
Alexey Milovidov
397859ccb8 Fix error 2020-05-17 08:45:20 +03:00
Alexey Milovidov
f4ac1eec04 Merge branch 'master' into quota-key-in-client 2020-05-17 08:15:13 +03:00
Ivan
85d783c247
Poco contrib refactoring (#10396)
* Remove config_common.h
* Refactor libcpuid contrib
* Remove support for libcpuinfo
* Define USE_CPUID in Arcadia
* Refactor Poco libraries
2020-05-08 17:11:19 +03:00
Alexey Milovidov
99c18c5a09 Check for suspicious codecs #4966 2020-05-04 03:11:49 +03:00
Alexey Milovidov
1d885b3ff9 Merge branch 'master' into quota-key-in-client 2020-04-20 02:15:37 +03:00
Ivan Lezhankin
e230632645 Changes required for auto-sync with Arcadia 2020-04-16 15:31:57 +03:00
Alexey Milovidov
fe59524481 Implemented in a different way 2020-04-15 04:59:14 +03:00
Alexey Milovidov
c22f91db01 Allow to pass quota_key in clickhouse-client 2020-04-15 04:15:05 +03:00
Ivan Lezhankin
06446b4f08 dbms/ → src/ 2020-04-03 18:14:31 +03:00