Preprocessed traces: https://pastila.nl/?0006a09d/f3f1725be8a2ec8787b2d5c8b1eb6532
Report: https://s3.amazonaws.com/clickhouse-test-reports/40506/f2be18b3a644debbb882b8a9e8396b0375461b36/stress_test__undefined_.html
Container processes;
    size_t max_size = 0;        
    
    UserToQueries user_to_queries;
    
    QueryPriorities priorities;
    
    ThrottlerPtr total_network_throttler;
    
    QueryStatus * tryGetProcessListElement(const String & current_query_id, const String & current_user);
    
    size_t max_insert_queries_amount = 0;
    
    size_t max_select_queries_amount = 0;
    
    QueryKindAmounts query_kind_amounts;
    void increaseQueryKindAmount(const IAST::QueryKind & query_kind);
    void decreaseQueryKindAmount(const IAST::QueryKind & query_kind);
    QueryAmount getQueryKindAmount(const IAST::QueryKind & query_kind) const;
public:
    using EntryPtr = std::shared_ptr<ProcessListEntry>;
    /** Register running query. Returns refcounted object, that will remove element from list in destructor.
      * If too many running queries - wait for not more than specified (see settings) amount of time.
      * If timeout is passed - throw an exception.
      * Don't count KILL QUERY queries.
      */
    EntryPtr insert(const String & query_, const IAST * ast, ContextPtr query_context);
    
    size_t size() const { return processes.size(); }