Use CH Buffer for HTTP out stream, add metrics for interfaces#56064
Use CH Buffer for HTTP out stream, add metrics for interfaces#56064yakov-olkhovskiy merged 45 commits intomasterfrom
Conversation
|
This is an automated comment for commit db97764 with description of existing statuses. It's updated for the latest CI running ❌ Click here to open a full report in a separate page Successful checks
|
… Content-Encoding if no data
|
Some perf tests are failed. Interesting what is the reason. |
|
I guess because we had some problems with CI yesterday |
…e-server-iface-metrics
| throw Exception(ErrorCodes::NOT_IMPLEMENTED, "Unsupported compression method"); | ||
|
|
||
| std::unique_ptr<WriteBuffer> wrapWriteBufferWithCompressionMethod( | ||
| WriteBuffer * nested, |
There was a problem hiding this comment.
this is to support not owning version of WriteBufferDecorator where nested is decorated but not owned by decorator
| template<typename WriteBufferT> | ||
| LZMADeflatingWriteBuffer( | ||
| std::unique_ptr<WriteBuffer> out_, | ||
| WriteBufferT && out_, |
There was a problem hiding this comment.
LZMADeflatingWriteBuffer is inherited from WriteBufferWithOwnMemoryDecorator which is a specialization of WriteBufferDecorator and should now accommodate both owning and non-owning construction
|
|
||
| echo 'SELECT 1 FROM numbers(100)' | | ||
| ${CLICKHOUSE_CURL_COMMAND} -v "${CLICKHOUSE_URL}&wait_end_of_query=1&send_progress_in_http_headers=0" --data-binary @- 2>&1 | | ||
| ${CLICKHOUSE_CURL_COMMAND} -vs "${CLICKHOUSE_URL}&wait_end_of_query=1&send_progress_in_http_headers=0" --data-binary @- 2>&1 | |
There was a problem hiding this comment.
When you pass -s (--silent) option to curl, you should always also specify -S (not ignore errors).
|
|
||
| CURL_OUTPUT=$(echo 'SELECT 1 + sleepEachRow(0.00002) FROM numbers(100000)' | \ | ||
| ${CLICKHOUSE_CURL_COMMAND} -v "${CLICKHOUSE_URL}&wait_end_of_query=1&send_progress_in_http_headers=0&max_execution_time=1" --data-binary @- 2>&1) | ||
| ${CLICKHOUSE_CURL_COMMAND} -vs "${CLICKHOUSE_URL}&wait_end_of_query=1&send_progress_in_http_headers=0&max_execution_time=1" --data-binary @- 2>&1) |
| */ | ||
| TCPHandler(IServer & server_, TCPServer & tcp_server_, const Poco::Net::StreamSocket & socket_, bool parse_proxy_protocol_, std::string server_display_name_); | ||
| TCPHandler(IServer & server_, TCPServer & tcp_server_, const Poco::Net::StreamSocket & socket_, TCPProtocolStackData & stack_data, std::string server_display_name_); | ||
| TCPHandler(IServer & server_, TCPServer & tcp_server_, const Poco::Net::StreamSocket & socket_, bool parse_proxy_protocol_, std::string server_display_name_, const ProfileEvents::Event & read_event_ = ProfileEvents::end(), const ProfileEvents::Event & write_event_ = ProfileEvents::end()); |
There was a problem hiding this comment.
Event can be passed by value, and also we can use std::optional.
There was a problem hiding this comment.
const & accommodates by value and I made defaults rather than optional to make changes less intrusive...
| Int32 connection_id_, | ||
| std::vector<std::shared_ptr<PostgreSQLProtocol::PGAuthentication::AuthenticationMethod>> & auth_methods_); | ||
| std::vector<std::shared_ptr<PostgreSQLProtocol::PGAuthentication::AuthenticationMethod>> & auth_methods_, | ||
| const ProfileEvents::Event & read_event_ = ProfileEvents::end(), |
src/Server/NotFoundHandler.cpp
Outdated
| << " clickhouse-client --query='SELECT 1' > result\n" | ||
| << " clickhouse-client < query > result\n"; | ||
| auto out = response.send(); | ||
| out->write("There is no handle "); |
There was a problem hiding this comment.
There is also a nice thing - IO/Operators.h
(optional)
|
Wow, that's a huge improvement! This is really amazing! 23.11: This PR: |
* [GLUTEN-1632][CH]Daily Update Clickhouse Version (20240103) * [CH] Fix build due to ClickHouse/ClickHouse#56064 --------- Co-authored-by: kyligence-git <[email protected]>
Changelog category (leave one):
Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):
Replace HTTP outgoing buffering based on std ostream with CH Buffer.
Add bytes counting metrics for interfaces.
closes #55576