mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-10 09:32:06 +00:00
performance comparison
This commit is contained in:
parent
57eb912fa6
commit
89b712a180
@ -222,17 +222,22 @@ for query_index, q in enumerate(test_queries):
|
||||
query_error_on_connection[conn_index] = traceback.format_exc();
|
||||
continue
|
||||
|
||||
# If prewarm fails for the query on both servers -- report the error, skip
|
||||
# the query and continue testing the next query.
|
||||
if query_error_on_connection.count(None) == 0:
|
||||
print(query_error_on_connection[0], file = sys.stderr)
|
||||
continue
|
||||
|
||||
# Report all errors that ocurred during prewarm and decide what to do next.
|
||||
# If prewarm fails for the query on all servers -- skip the query and
|
||||
# continue testing the next query.
|
||||
# If prewarm fails on one of the servers, run the query on the rest of them.
|
||||
# Useful for queries that use new functions added in the new server version.
|
||||
if query_error_on_connection.count(None) < len(query_error_on_connection):
|
||||
no_error = [i for i, e in enumerate(query_error_on_connection) if not e]
|
||||
print(f'partial\t{query_index}\t{no_error}')
|
||||
no_errors = []
|
||||
for i, e in enumerate(query_error_on_connection):
|
||||
if e:
|
||||
print(e, file = sys.stderr)
|
||||
else:
|
||||
no_errors.append(i)
|
||||
|
||||
if len(no_errors) == 0:
|
||||
continue
|
||||
elif len(no_errors) < len(connections):
|
||||
print(f'partial\t{query_index}\t{no_errors}')
|
||||
|
||||
# Now, perform measured runs.
|
||||
# Track the time spent by the client to process this query, so that we can
|
||||
@ -245,7 +250,15 @@ for query_index, q in enumerate(test_queries):
|
||||
for conn_index, c in enumerate(connections):
|
||||
if query_error_on_connection[conn_index]:
|
||||
continue
|
||||
res = c.execute(q, query_id = run_id)
|
||||
|
||||
try:
|
||||
res = c.execute(q, query_id = run_id)
|
||||
except Exception as e:
|
||||
# Add query id to the exception to make debugging easier.
|
||||
e.args = (run_id, *e.args)
|
||||
e.message = run_id + ': ' + e.message
|
||||
raise
|
||||
|
||||
print(f'query\t{query_index}\t{run_id}\t{conn_index}\t{c.last_query.elapsed}')
|
||||
server_seconds += c.last_query.elapsed
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user