mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 08:40:50 +00:00
Moved process_list_element into if. Made more code cleanup.
This commit is contained in:
parent
7cc63f3eed
commit
4a6f398fed
@ -314,8 +314,8 @@ protected:
|
||||
Container processes;
|
||||
size_t max_size = 0; /// 0 means no limit. Otherwise, when limit exceeded, an exception is thrown.
|
||||
|
||||
/// The total maximum number of threads for all requests.
|
||||
size_t total_max_threads = 0; /// 0 means no limit.
|
||||
/// The total maximum number of threads for all queries.
|
||||
size_t total_max_threads = 0; /// 0 means no limit. Otherwise, concurrency of query is determinated based on this parameter.
|
||||
|
||||
/// Stores per-user info: queries, statistics and limits
|
||||
UserToQueries user_to_queries;
|
||||
|
@ -16,6 +16,7 @@
|
||||
#include <Interpreters/Context.h>
|
||||
#include <Interpreters/ExpressionActions.h>
|
||||
#include <Interpreters/IJoin.h>
|
||||
#include <Interpreters/ProcessList.h>
|
||||
#include <Common/typeid_cast.h>
|
||||
#include <Common/CurrentThread.h>
|
||||
#include <Processors/DelayedPortsProcessor.h>
|
||||
@ -505,13 +506,15 @@ size_t QueryPipelineBuilder::getNumThreads() const
|
||||
if (max_threads) //-V1051
|
||||
num_threads = std::min(num_threads, max_threads);
|
||||
|
||||
auto total_max_threads = process_list_element->getContext()->getProcessList().getTotalMaxThreads();
|
||||
if (total_max_threads && process_list_element) {
|
||||
size_t current_total_num_threads = process_list_element->getContext()->getProcessList().getTotalNumThreads();
|
||||
size_t total_available_threads = 0;
|
||||
if (total_max_threads > current_total_num_threads)
|
||||
total_available_threads = total_max_threads - current_total_num_threads;
|
||||
num_threads = std::min(num_threads, total_available_threads);
|
||||
if (process_list_element) {
|
||||
auto total_max_threads = process_list_element->getContext()->getProcessList().getTotalMaxThreads();
|
||||
if (total_max_threads) {
|
||||
size_t current_total_num_threads = process_list_element->getContext()->getProcessList().getTotalNumThreads();
|
||||
size_t total_available_threads = 0;
|
||||
if (total_max_threads > current_total_num_threads)
|
||||
total_available_threads = total_max_threads - current_total_num_threads;
|
||||
num_threads = std::min(num_threads, total_available_threads);
|
||||
}
|
||||
}
|
||||
|
||||
num_threads = std::max<size_t>(1, num_threads);
|
||||
|
@ -6,7 +6,6 @@
|
||||
#include <Storages/IStorage_fwd.h>
|
||||
#include <Storages/TableLockHolder.h>
|
||||
#include <Interpreters/Context_fwd.h>
|
||||
#include <Interpreters/ProcessList.h>
|
||||
|
||||
|
||||
namespace DB
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0"?>
|
||||
<clickhouse>
|
||||
<query_log>
|
||||
<database>system</database>
|
||||
<table>query_log</table>
|
||||
</query_log>
|
||||
<query_log>
|
||||
<database>system</database>
|
||||
<table>query_log</table>
|
||||
</query_log>
|
||||
</clickhouse>
|
||||
|
@ -1,8 +1,8 @@
|
||||
<?xml version="1.0"?>
|
||||
<clickhouse>
|
||||
<total_max_threads>50</total_max_threads>
|
||||
<query_log>
|
||||
<database>system</database>
|
||||
<table>query_log</table>
|
||||
</query_log>
|
||||
<query_log>
|
||||
<database>system</database>
|
||||
<table>query_log</table>
|
||||
</query_log>
|
||||
</clickhouse>
|
||||
|
Loading…
Reference in New Issue
Block a user