ClickHouse/website/benchmark/dbms/index.html
2022-07-12 23:51:12 +02:00

956 lines
82 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ClickBench — a Benchmark For Analytical DBMS</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="icon" href="data:image/gif;base64,R0lGODlhIAAgAOMPAHMUEmkyHOcbF8UvJts/E3BeOih1YziiQmebLt2AFjeyQKqZKNWPjLybfPfcDP///yH5BAEKAA8ALAAAAAAgACAAAATg8MlJ6ws26z0EGcQmZgAhnN6oPg0wDA0zrGMTAADDxEJCZ4Gba8c4hX4Uw+XWeYGOyMdhgkuYrAToqIBQHBCIKQ6wcJhPyINarUBcyuYE+ndQeOsKuNlxmv3CdnZfew5yAlEPC12BhFhZiBJ2CI1GkBMHeoV9PpYPhIUDBqIFnZ8EBaKplqYMqaqIewl8A6iupFF7C1YCoaJqq4UOWQIBBmtTuIQmWWxekJQeYWuWcFYPfl+dLAELOxML2hIYDeEWt7flEufknTZB7+8NBeyINxjqDwU4QYg26BTu6KVTEQEAOw==">
<link href="https://fonts.googleapis.com/css2?family=Inter&display=swap" rel="stylesheet">
<style>
:root {
--color: black;
--title-color: black;
--background-color: white;
--link-color: #08F;
--link-hover-color: #F40;
--selector-text-color: black;
--selector-active-text-color: black;
--selector-background-color: #EEE;
--selector-active-background-color: #FFCB80;
--selector-hover-text-color: black;
--selector-hover-background-color: #FDB;
--summary-every-other-row-color: #F8F8F8;
--highlight-color: #EEE;
--bar-color: #FFCB80;
--tooltip-text-color: white;
--tooltip-background-color: black;
--nothing-selected-color: #CCC;
--shadow-color: grey;
}
[data-theme="dark"] {
--color: #CCC;
--title-color: white;
--background-color: #04293A;
--link-color: #8CF;
--link-hover-color: #FFF;
--selector-text-color: white;
--selector-background-color: #444;
--selector-active-text-color: white;
--selector-active-background-color: #088;
--selector-hover-text-color: black;
--selector-hover-background-color: white;
--summary-every-other-row-color: #042e41;
--highlight-color: #064663;
--bar-color: #088;
--tooltip-text-color: white;
--tooltip-background-color: #444;
--nothing-selected-color: #666;
--shadow-color: black;
}
html, body {
color: var(--color);
background-color: var(--background-color);
width: 100%;
height: 100%;
margin: 0;
overflow: auto;
box-sizing: border-box;
}
body {
font-family: 'Inter', sans-serif;
padding: 1% 3% 0 3%;
}
h1 {
color: var(--title-color);
}
table {
border-spacing: 1px;
}
.stick-left {
position: sticky;
left: 0px;
}
.selectors-container {
padding: 2rem 0 2rem 0;
user-select: none;
}
.selectors-container th {
text-align: left;
vertical-align: top;
white-space: nowrap;
padding-top: 0.5rem;
padding-right: 1rem;
}
.selector {
display: inline-block;
margin-left: 0.1rem;
padding: 0.2rem 0.5rem 0.2rem 0.5rem;
background: var(--selector-background-color);
color: var(--selector-text-color);
border: 0.2rem solid var(--background-color);
border-radius: 0.5rem;
}
.selector-active {
color: var(--selector-active-text-color);
background: var(--selector-active-background-color);
}
a, a:visited {
text-decoration: none;
color: var(--link-color);
cursor: pointer;
}
a:hover {
color: var(--link-hover-color);
}
.selector:hover {
color: var(--selector-hover-text-color) !important;
background: var(--selector-background-color);
}
.selector-active:hover {
background: var(--selector-hover-background-color);
}
#summary tr:nth-child(odd) {
background: var(--summary-every-other-row-color);
}
.summary-name {
white-space: nowrap;
text-align: right;
padding-right: 1rem;
}
.summary-bar-cell {
width: 100%;
}
.summary-bar {
height: 1rem;
background: var(--bar-color);
border-radius: 0 0.2rem 0.2rem 0;
}
.summary-number {
font-family: monospace;
text-align: right;
padding-left: 1rem;
white-space: nowrap;
}
th {
padding-bottom: 0.5rem;
}
.th-entry-hilite {
background: var(--highlight-color);
font-weight: bold;
}
.summary-row:hover, .summary-row-hilite {
background: var(--highlight-color) !important;
font-weight: bold;
}
#details {
padding-bottom: 1rem;
}
#details th {
vertical-align: bottom;
white-space: pre;
}
#details td {
white-space: pre;
font-family: monospace;
text-align: right;
padding: 0.1rem 0.5rem 0.1rem 0.5rem;
}
.shadow:hover {
box-shadow: 0 0 1rem var(--shadow-color);
position: relative;
}
#nothing-selected {
display: none;
font-size: 32pt;
font-weight: bold;
color: var(--nothing-selected-color);
}
.note {
position: relative;
display: inline-block;
}
.tooltip {
position: absolute;
bottom: calc(100% + 0.5rem);
visibility: hidden;
background-color: var(--tooltip-background-color);
color: var(--tooltip-text-color);
box-shadow: 0 0 1rem var(--shadow-color);
padding: 0.5rem 0.75rem;
border-radius: 0.5rem;
z-index: 1;
text-align: left;
white-space: normal;
}
.tooltip-result {
left: calc(50% - 0.25rem);
width: 20rem;
margin-left: -10rem;
}
.tooltip-query {
left: 0;
width: 40rem;
margin-left: -3rem;
}
.note:hover .tooltip {
visibility: visible;
}
.tooltip::after {
content: " ";
position: absolute;
top: 100%;
border-width: 0.5rem;
border-style: solid;
border-color: var(--tooltip-background-color) transparent transparent transparent;
}
.tooltip-result::after {
left: 50%;
margin-left: -1rem;
}
.tooltip-query::after {
left: 3rem;
margin-left: 0.5rem;
}
.nowrap {
text-wrap: none;
}
.themes {
float: right;
font-size: 200%;
cursor: pointer;
}
#toggle-dark, #toggle-light {
padding-right: 0.5rem;
cursor: pointer;
}
#toggle-dark:hover, #toggle-light:hover {
display: inline-block;
transform: translate(1px, 1px);
filter: brightness(125%);
}
</style>
<script type="text/javascript">
const queries = [
"SELECT COUNT(*) FROM hits;",
"SELECT COUNT(*) FROM hits WHERE AdvEngineID <> 0;",
"SELECT SUM(AdvEngineID), COUNT(*), AVG(ResolutionWidth) FROM hits;",
"SELECT AVG(UserID) FROM hits;",
"SELECT COUNT(DISTINCT UserID) FROM hits;",
"SELECT COUNT(DISTINCT SearchPhrase) FROM hits;",
"SELECT MIN(EventDate), MAX(EventDate) FROM hits;",
"SELECT AdvEngineID, COUNT(*) FROM hits WHERE AdvEngineID <> 0 GROUP BY AdvEngineID ORDER BY COUNT(*) DESC;",
"SELECT RegionID, COUNT(DISTINCT UserID) AS u FROM hits GROUP BY RegionID ORDER BY u DESC LIMIT 10;",
"SELECT RegionID, SUM(AdvEngineID), COUNT(*) AS c, AVG(ResolutionWidth), COUNT(DISTINCT UserID) FROM hits GROUP BY RegionID ORDER BY c DESC LIMIT 10;",
"SELECT MobilePhoneModel, COUNT(DISTINCT UserID) AS u FROM hits WHERE MobilePhoneModel <> '' GROUP BY MobilePhoneModel ORDER BY u DESC LIMIT 10;",
"SELECT MobilePhone, MobilePhoneModel, COUNT(DISTINCT UserID) AS u FROM hits WHERE MobilePhoneModel <> '' GROUP BY MobilePhone, MobilePhoneModel ORDER BY u DESC LIMIT 10;",
"SELECT SearchPhrase, COUNT(*) AS c FROM hits WHERE SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10;",
"SELECT SearchPhrase, COUNT(DISTINCT UserID) AS u FROM hits WHERE SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY u DESC LIMIT 10;",
"SELECT SearchEngineID, SearchPhrase, COUNT(*) AS c FROM hits WHERE SearchPhrase <> '' GROUP BY SearchEngineID, SearchPhrase ORDER BY c DESC LIMIT 10;",
"SELECT UserID, COUNT(*) FROM hits GROUP BY UserID ORDER BY COUNT(*) DESC LIMIT 10;",
"SELECT UserID, SearchPhrase, COUNT(*) FROM hits GROUP BY UserID, SearchPhrase ORDER BY COUNT(*) DESC LIMIT 10;",
"SELECT UserID, SearchPhrase, COUNT(*) FROM hits GROUP BY UserID, SearchPhrase LIMIT 10;",
"SELECT UserID, extract(minute FROM EventTime) AS m, SearchPhrase, COUNT(*) FROM hits GROUP BY UserID, m, SearchPhrase ORDER BY COUNT(*) DESC LIMIT 10;",
"SELECT UserID FROM hits WHERE UserID = 435090932899640449;",
"SELECT COUNT(*) FROM hits WHERE URL LIKE '%google%';",
"SELECT SearchPhrase, MIN(URL), COUNT(*) AS c FROM hits WHERE URL LIKE '%google%' AND SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10;",
"SELECT SearchPhrase, MIN(URL), MIN(Title), COUNT(*) AS c, COUNT(DISTINCT UserID) FROM hits WHERE Title LIKE '%Google%' AND URL NOT LIKE '%.google.%' AND SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10;",
"SELECT * FROM hits WHERE URL LIKE '%google%' ORDER BY EventTime LIMIT 10;",
"SELECT SearchPhrase FROM hits WHERE SearchPhrase <> '' ORDER BY EventTime LIMIT 10;",
"SELECT SearchPhrase FROM hits WHERE SearchPhrase <> '' ORDER BY SearchPhrase LIMIT 10;",
"SELECT SearchPhrase FROM hits WHERE SearchPhrase <> '' ORDER BY EventTime, SearchPhrase LIMIT 10;",
"SELECT CounterID, AVG(length(URL)) AS l, COUNT(*) AS c FROM hits WHERE URL <> '' GROUP BY CounterID HAVING COUNT(*) > 100000 ORDER BY l DESC LIMIT 25;",
"SELECT REGEXP_REPLACE(Referer, '^https?://(?:www\\.)?([^/]+)/.*$', '\\1') AS k, AVG(length(Referer)) AS l, COUNT(*) AS c, MIN(Referer) FROM hits WHERE Referer <> '' GROUP BY k HAVING COUNT(*) > 100000 ORDER BY l DESC LIMIT 25;",
"SELECT SUM(ResolutionWidth), SUM(ResolutionWidth + 1), SUM(ResolutionWidth + 2), SUM(ResolutionWidth + 3), ..., SUM(ResolutionWidth + 89) FROM hits;",
"SELECT SearchEngineID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) FROM hits WHERE SearchPhrase <> '' GROUP BY SearchEngineID, ClientIP ORDER BY c DESC LIMIT 10;",
"SELECT WatchID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) FROM hits WHERE SearchPhrase <> '' GROUP BY WatchID, ClientIP ORDER BY c DESC LIMIT 10;",
"SELECT WatchID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) FROM hits GROUP BY WatchID, ClientIP ORDER BY c DESC LIMIT 10;",
"SELECT URL, COUNT(*) AS c FROM hits GROUP BY URL ORDER BY c DESC LIMIT 10;",
"SELECT 1, URL, COUNT(*) AS c FROM hits GROUP BY 1, URL ORDER BY c DESC LIMIT 10;",
"SELECT ClientIP, ClientIP - 1, ClientIP - 2, ClientIP - 3, COUNT(*) AS c FROM hits GROUP BY ClientIP, ClientIP - 1, ClientIP - 2, ClientIP - 3 ORDER BY c DESC LIMIT 10;",
"SELECT URL, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND DontCountHits = 0 AND IsRefresh = 0 AND URL <> '' GROUP BY URL ORDER BY PageViews DESC LIMIT 10;",
"SELECT Title, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND DontCountHits = 0 AND IsRefresh = 0 AND Title <> '' GROUP BY Title ORDER BY PageViews DESC LIMIT 10;",
"SELECT URL, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND IsRefresh = 0 AND IsLink <> 0 AND IsDownload = 0 GROUP BY URL ORDER BY PageViews DESC LIMIT 10 OFFSET 1000;",
"SELECT TraficSourceID, SearchEngineID, AdvEngineID, CASE WHEN (SearchEngineID = 0 AND AdvEngineID = 0) THEN Referer ELSE '' END AS Src, URL AS Dst, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND IsRefresh = 0 GROUP BY TraficSourceID, SearchEngineID, AdvEngineID, Src, Dst ORDER BY PageViews DESC LIMIT 10 OFFSET 1000;",
"SELECT URLHash, EventDate, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND IsRefresh = 0 AND TraficSourceID IN (-1, 6) AND RefererHash = 3594120000172545465 GROUP BY URLHash, EventDate ORDER BY PageViews DESC LIMIT 10 OFFSET 100;",
"SELECT WindowClientWidth, WindowClientHeight, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND IsRefresh = 0 AND DontCountHits = 0 AND URLHash = 2868770270353813622 GROUP BY WindowClientWidth, WindowClientHeight ORDER BY PageViews DESC LIMIT 10 OFFSET 10000;",
"SELECT DATE_TRUNC('minute', EventTime) AS M, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-14' AND EventDate <= '2013-07-15' AND IsRefresh = 0 AND DontCountHits = 0 GROUP BY DATE_TRUNC('minute', EventTime) ORDER BY DATE_TRUNC('minute', EventTime) LIMIT 10 OFFSET 1000;",
];
const data = [
{"system":"Athena (partitioned)","date":"2022-07-01","machine":"serverless","cluster_size":"serverless","comment":"","tags":["stateless","managed","Java","column-oriented"],"load_time":0,"data_size":13800000000,"result":[[2.777,3.275,2.925],[1.503,3.136,4.003],[4.544,3.833,3.64],[3.9,2.514,3.522],[3.46,2.186,3.244],[3.624,2.742,3.185],[2.21,1.984,3.123],[3.207,2.403,2.685],[2.936,2.014,3.869],[8.333,7.102,4.434],[7.401,4.697,3.155],[4.214,3.065,4.748],[6.207,4.213,2.576],[3.428,3.085,3.401],[2.92,3.3,3.278],[2.205,2.558,2.419],[4.641,3.888,2.155],[3.219,2.822,3.292],[3.23,3.579,4.31],[2.288,3.543,3.95],[3.032,2.859,2.807],[3.926,3.247,2.928],[4.477,4.048,4.392],[7.407,6.375,6.123],[2.611,2.872,2.827],[2.566,2.567,3.6],[3.673,3.733,2.925],[2.426,3.218,2.78],[5.125,3.778,4.25],[4.565,4.03,4.066],[3.628,3.219,2.953],[6.207,5.973,3.158],[4.339,5.601,4.234],[2.618,3.107,3.433],[4.661,2.79,2.846],[2.373,1.629,2.734],[2.721,2.15,1.962],[3.207,2.154,2.186],[2.453,2.477,3.217],[2.691,4.732,3.584],[2.589,2.613,3.231],[1.926,3.617,1.82],[1.506,2.404,2.343]],"source":"athena/results/partitioned.json"}
,{"system":"Athena (single)","date":"2022-07-01","machine":"serverless","cluster_size":"serverless","comment":"","tags":["stateless","managed","Java","column-oriented"],"load_time":0,"data_size":13800000000,"result":[[2.268,1.327,2.137],[3.427,2.248,3.605],[3.254,2.548,2.316],[3.025,2.314,3.003],[2.264,2.876,4.213],[3.044,2.745,2.698],[2.732,2.199,2.659],[2.022,3.692,3.072],[2.746,2.477,2.785],[3.53,2.782,4.031],[2.709,2.047,2.853],[2.318,1.969,3.4],[2.635,1.935,2.707],[3.049,3.38,3.071],[3.661,2.387,2.476],[2.479,2.591,2.21],[3.093,3.698,4.351],[3.479,3.236,2.274],[4.36,2.97,3.457],[2.525,2.384,3.328],[3.34,3.174,3.409],[3.163,2.971,3.034],[2.999,3.539,2.906],[6.454,7.597,7.858],[2.754,1.951,2.645],[2.852,3.018,2.718],[2.513,2.678,2.417],[3.293,2.521,2.771],[4.392,3.863,3.981],[3.658,4.246,4.027],[3.028,3.87,2.337],[2.923,3.635,3.591],[3.142,4.105,3.15],[3.66,3.187,4.745],[2.652,2.695,2.742],[2.262,2.776,1.815],[1.881,2.212,2.053],[1.934,2.551,1.524],[2.069,2.26,1.805],[2.626,2.902,2.793],[1.791,2.082,2.481],[3.757,2.6,1.946],[2.608,1.994,3.967]],"source":"athena/results/single.json"}
,{"system":"Aurora for MySQL","date":"2022-07-01","machine":"16acu","cluster_size":1,"comment":"Some queries cannot run due to ERROR 1114 (HY000) at line 1: The table '/rdsdbdata/tmp/#sqlaff_e5_0' is full","tags":["managed","C++","MySQL compatible","row-oriented"],"load_time":7687.318,"data_size":89614492631,"result":[[740.42,739.91,746.65],[828.2,835.67,832.87],[830.08,830.98,832.38],[829.88,832.83,830.87],[845.99,842.4,843.21],[869.51,870.69,869.75],[823.77,829.08,825.54],[827.74,832.87,829.25],[916.26,909.46,929.17],[946.49,939.27,932.32],[852.37,857.69,854.74],[857.99,864.05,825.14],[null,null,null],[863.37,860.2,865.62],[null,null,null],[891.84,895.28,893.68],[null,null,null],[null,null,null],[1420.12,1419.34,1445.08],[28.94,0.21,0.21],[917.64,917.56,916.92],[923.47,921.7,923.82],[919.95,918.37,920.17],[1002.19,1002.07,1001.2],[902.23,902.65,901.8],[901.17,900.02,898.3],[900.04,898.89,903.35],[901.78,902.71,901.28],[null,null,null],[1153.29,1154,1156.46],[862.57,863.35,859.69],[923.14,921.1,923.92],[1370.78,1401.72,1401.44],[1454.67,1455.55,1458.79],[1463.31,1466.75,1461.83],[941.03,944.07,937.23],[7.42,2.8,2.77],[2.57,2.52,2.59],[1.5,1.52,1.59],[3.62,3.57,3.61],[0.95,0.94,0.94],[0.9,0.92,0.91],[1.69,1.72,1.69]],"source":"aurora-mysql/results/16acu.json"}
,{"system":"Aurora for PostgreSQL","date":"2022-07-01","machine":"16acu","cluster_size":1,"comment":"","tags":["managed","C","PostgreSQL compatible","row-oriented"],"load_time":2127,"data_size":52183852646,"result":[[12.8361,5.71812,5.8241],[61.2565,62.1402,63.7173],[68.0578,68.1218,67.609],[7.83207,5.90193,6.0461],[48.7194,48.0233,48.2198],[289.492,304.639,282.436],[6.30572,6.31857,6.21598],[53.644,53.8931,53.5307],[131.526,131.45,131.102],[137.724,136.921,137.758],[57.2079,56.2775,56.2152],[56.5349,56.2048,55.9569],[82.3897,82.8866,83.534],[97.0569,97.1392,96.4731],[85.6557,86.7783,86.2804],[49.4325,42.4309,42.5743],[111.537,114.59,111.807],[88.4322,89.3756,87.7899],[160.781,163.866,161.394],[1025.04,2.10165,2.10065],[106.741,56.2731,56.1535],[59.2681,59.5272,59.536],[58.6083,57.6054,57.3935],[54.8271,55.1397,56.3487],[54.718,52.469,53.271],[53.5387,53.1926,52.4008],[52.0042,51.9581,52.2453],[60.1317,59.9695,59.2187],[244.608,242.954,243.815],[91.8674,92.4165,91.5884],[63.7122,64.277,64.2783],[69.2596,68.9535,69.4508],[234.222,241.138,240.316],[488.169,462.257,460.466],[472.929,471.809,476.635],[103.664,116.131,103.467],[16.8124,3.34058,3.37782],[0.852414,0.832073,0.859857],[0.305464,0.31166,0.306694],[4.55625,4.54098,4.58501],[0.299746,0.297532,0.30334],[0.275732,0.279817,0.27766],[0.332107,0.324387,0.320099]],"source":"aurora-postgresql/results/16acu.json"}
,{"system":"Citus","date":"2022-07-01","machine":"c6a.4xlarge, 500gb gp2","cluster_size":1,"comment":"","tags":["C","PostgreSQL compatible","column-oriented"],"load_time":1579,"data_size":18980918899,"result":[[7.58503,6.70447,6.52499],[6.33941,5.06063,5.00238],[11.7488,9.86417,9.93223],[12.6306,9.36305,9.17061],[40.6101,39.0803,38.1187],[117.654,113.912,113.441],[10.3404,8.08936,7.70732],[6.31542,4.72821,4.72989],[82.5425,77.2124,76.9219],[91.1776,83.4492,82.4727],[14.5474,10.0815,10.3873],[15.4899,11.2922,11.1877],[19.9794,15.5002,17.4492],[76.9216,72.5172,72.7915],[21.5446,17.5691,18.561],[56.9438,54.6387,53.5745],[75.0977,69.7842,70.0259],[31.3299,27.0267,26.3216],[129.417,122.956,121.182],[3.73386,2.14148,2.12737],[34.6021,27.9727,28.6878],[37.152,29.6193,29.2966],[52.2157,37.8589,37.6994],[181.955,149.08,148.471],[15.4687,11.3138,10.3856],[10.2779,8.46868,8.8324],[14.4687,10.4076,11.4263],[47.009,40.2969,39.6888],[749.946,742.979,744.461],[69.4383,67.5636,67.2128],[27.0317,21.4008,20.9524],[36.6675,25.6347,26.4408],[140.424,130.546,129.738],[106.959,92.033,90.1609],[110.98,94.4787,96.2656],[64.4474,60.1853,60.6816],[6.17549,6.25376,5.87004],[1.99153,1.81776,1.80596],[1.00141,0.800271,0.801975],[7.91778,7.70928,8.33299],[0.929845,0.642076,0.638478],[0.866536,0.683567,0.680218],[0.937823,0.784747,0.765929]],"source":"citus/results/c6a.4xlarge.json"}
,{"system":"clickhouse-local (partitioned)","date":"2022-07-01","machine":"c6a.4xlarge, 500gb gp2","cluster_size":1,"comment":"","tags":["C++","column-oriented","embedded","stateless","ClickHouse derivative"],"load_time":0,"data_size":14737666736,"result":[[0.85,0.102,0.114],[1.342,0.09,0.099],[2.547,0.179,0.189],[1.681,0.245,0.252],[2.704,1.68,1.648],[2.194,1.46,1.489],[0.832,0.113,0.102],[1.371,0.106,0.101],[2.24,0.79,0.825],[4.548,1.021,1.026],[3.094,0.552,0.552],[3.088,0.623,0.63],[2.017,1.17,1.165],[4.319,1.677,1.708],[2.157,1.496,1.5],[1.629,1.138,1.139],[5.026,3.267,3.241],[4.142,2.303,2.319],[8.295,5.569,5.629],[1.331,0.255,0.252],[10.712,3.668,3.786],[13.053,4.185,4.202],[24.17,7.935,8.008],[55.965,23.933,23.071],[4.417,0.947,0.974],[1.793,0.698,0.69],[4.376,0.955,0.956],[11.731,4.385,4.321],[11.403,8.549,8.288],[2.764,2.754,2.735],[5.096,1.262,1.273],[9.515,1.682,1.688],[10.325,6.745,6.608],[11.686,6.261,6.242],[11.769,6.301,6.364],[1.675,1.49,1.495],[14.937,3.631,3.604],[14.187,3.609,3.631],[14.842,3.769,3.741],[22.222,6.355,6.263],[7.212,0.836,0.838],[7.863,0.716,0.718],[5.12,0.587,0.574]],"source":"clickhouse-local/results/c6a.4xlarge.partitioned.json"}
,{"system":"clickhouse-local (single)","date":"2022-07-01","machine":"c6a.4xlarge, 500gb gp2","cluster_size":1,"comment":"","tags":["C++","column-oriented","embedded","stateless","ClickHouse derivative"],"load_time":0,"data_size":14779976446,"result":[[1.176,0.251,0.249],[1.037,0.134,0.111],[1.609,0.403,0.369],[1.616,0.372,0.37],[3.008,2.338,2.266],[9.061,7.537,7.535],[1.206,0.191,0.187],[0.882,0.144,0.135],[4.61,3.406,3.256],[6.712,4.479,4.469],[4.081,2.413,2.394],[3.894,2.719,2.691],[7.651,6.436,6.243],[10.765,8.043,7.894],[9.86,8.945,8.235],[7.159,5.815,5.814],[20.916,18.159,18.013],[20.952,17.862,17.85],[37.585,32.649,32.487],[1.767,0.401,0.393],[23.713,15.687,15.755],[28.7,19.241,19.198],[50.74,33.161,33.011],[152.485,117.417,118.178],[7.606,4.491,5.326],[4.331,4.214,3.587],[6.743,4.486,5.357],[22.91,15.043,15.183],[43.342,37.167,36.842],[11.807,4.49,4.546],[9.557,6.349,6.263],[13.964,8.493,8.464],[38.11,33.642,33.996],[41.266,35.08,27.073],[34.056,26.814,26.902],[8.855,7.548,7.475],[22.596,12.615,12.669],[23.217,13.956,13.831],[22.528,21.601,13.207],[37.89,23.115,22.955],[6.49,1.548,1.522],[6.413,1.474,1.416],[3.796,1.339,1.316]],"source":"clickhouse-local/results/c6a.4xlarge.single.json"}
,{"system":"ClickHouse","date":"2022-07-01","machine":"c6a.4xlarge, 500gb gp2","cluster_size":1,"comment":"","tags":["C++","column-oriented","ClickHouse derivative"],"load_time":475.529,"data_size":14345515782,"result":[[0.027,0.001,0.001],[0.035,0.015,0.021],[0.083,0.034,0.033],[0.171,0.044,0.045],[1.552,1.495,1.574],[1.27,1.075,1.063],[0.045,0.026,0.025],[0.032,0.016,0.015],[0.717,0.615,0.607],[0.843,0.821,0.747],[0.293,0.219,0.216],[0.312,0.226,0.235],[0.804,0.694,0.702],[1.476,1.047,1.029],[1.013,0.898,0.911],[1.043,0.964,1.453],[3.632,2.715,2.711],[1.867,1.75,1.714],[5.187,4.797,4.953],[0.112,0.068,0.041],[8.637,1.761,1.212],[9.902,0.902,0.869],[18.831,2.067,1.829],[41.903,4.476,3.486],[1.801,0.254,0.238],[0.627,0.214,0.207],[2.181,0.241,0.246],[8.868,0.748,0.733],[9.674,6.891,5.77],[2.62,2.355,2.368],[1.395,0.533,0.525],[4.454,0.73,0.712],[5.453,4.99,5.922],[9.955,3.968,4.096],[9.987,4.035,4.476],[1.695,1.236,1.241],[0.142,0.079,0.103],[0.066,0.033,0.04],[0.065,0.03,0.033],[0.246,0.207,0.192],[0.044,0.019,0.02],[0.03,0.023,0.012],[0.03,0.018,0.013]],"source":"clickhouse/results/c6a.4xlarge.json"}
,{"system":"ClickHouse (zstd)","date":"2022-07-01","machine":"c6a.4xlarge, 500gb gp2","cluster_size":1,"comment":"","tags":["C++","column-oriented","ClickHouse derivative"],"load_time":417.533,"data_size":9997826232,"result":[[0.004,0.002,0.001],[0.069,0.017,0.016],[0.073,0.051,0.048],[0.158,0.067,0.066],[1.603,1.545,1.709],[1.225,1.105,1.1],[0.033,0.026,0.024],[0.023,0.021,0.02],[0.71,0.621,0.614],[0.813,0.715,0.713],[0.292,0.231,0.245],[0.35,0.269,0.271],[0.785,0.692,0.704],[1.209,1.044,1.066],[1.034,0.908,0.897],[0.993,0.94,0.909],[2.818,2.595,2.611],[1.804,1.717,1.711],[4.846,4.692,4.714],[0.081,0.025,0.02],[5.511,1.388,1.385],[6.304,1.306,1.293],[11.938,2.406,2.4],[30.031,4.268,4.242],[0.964,0.337,0.335],[0.326,0.264,0.26],[0.997,0.338,0.338],[5.523,1.148,1.14],[7.319,5.744,5.796],[2.235,2.236,2.199],[0.86,0.66,0.664],[3.695,0.772,0.764],[5.044,4.82,4.821],[6.786,4.133,4.093],[6.769,4.11,4.17],[1.289,1.188,1.221],[0.093,0.069,0.075],[0.037,0.033,0.029],[0.047,0.033,0.03],[0.185,0.151,0.155],[0.027,0.021,0.017],[0.02,0.012,0.015],[0.017,0.013,0.013]],"source":"clickhouse/results/c6a.4xlarge.zstd.json"}
,{"system":"ClickHouse","date":"2022-07-01","machine":"c6a.metal, 500gb gp2","cluster_size":1,"comment":"","tags":["C++","column-oriented","ClickHouse derivative"],"load_time":136.869,"data_size":14571706777,"result":[[0.011,0.001,0.001],[0.04,0.015,0.013],[0.045,0.021,0.023],[0.09,0.023,0.023],[1.922,1.565,1.576],[0.961,0.737,0.739],[0.04,0.023,0.018],[0.032,0.028,0.028],[0.321,0.287,0.275],[0.632,0.284,0.287],[0.166,0.124,0.118],[0.235,0.1,0.102],[1.006,0.182,0.159],[1.637,0.216,0.213],[0.871,0.174,0.177],[0.258,0.148,0.148],[1.804,0.37,0.358],[1.235,0.275,0.278],[3.143,0.854,0.815],[0.071,0.024,0.016],[8.816,0.215,0.155],[10.239,0.203,0.173],[19.179,0.388,0.357],[43.152,0.824,0.823],[1.821,0.059,0.052],[0.992,0.045,0.051],[2.539,0.063,0.058],[9.258,0.3,0.278],[7.923,0.961,0.936],[0.445,0.431,0.428],[1.367,0.131,0.113],[4.819,0.205,0.175],[3.808,0.739,0.726],[8.935,0.607,0.6],[8.988,0.634,0.615],[0.242,0.22,0.226],[0.075,0.058,0.056],[0.038,0.028,0.026],[0.043,0.028,0.021],[0.172,0.127,0.119],[0.028,0.018,0.017],[0.027,0.019,0.014],[0.018,0.026,0.015]],"source":"clickhouse/results/c6a.metal.json"}
,{"system":"CrateDB","date":"2022-07-01","machine":"c6a.4xlarge, 500gb gp2","cluster_size":1,"comment":"For some queries it gives \"Data too large\".","tags":["Java","column-oriented"],"load_time":10687,"data_size":109636633416,"result":[[0.008162,0.005118,0.002553],[0.350014,0.39977,0.133775],[2.58426,2.47192,2.59779],[2.12939,0.532981,0.507246],[null,null,null],[null,null,null],[1.18488,1.06603,1.07219],[0.209264,0.073284,0.067912],[null,null,null],[null,null,null],[1.68892,1.2866,1.47428],[1.62976,1.43073,1.26904],[12.7517,13.0334,13.2685],[18.8587,null,18.6951],[11.2982,11.2108,11.577],[20.2964,20.4035,19.1076],[null,null,null],[null,null,null],[null,null,null],[0.202044,0.010009,0.005566],[9.22964,4.54606,0.774149],[1.41673,1.09885,0.789775],[12.3933,8.06911,1.69671],[1.45018,0.969528,0.979718],[0.357589,0.14887,0.153326],[0.189282,0.133963,0.130279],[0.153222,0.140756,0.139861],[27.5195,19.6862,20.1825],[72.7575,68.2,67.1238],[144.533,146.579,152.144],[8.76866,9.00563,8.46917],[17.6652,16.6755,16.0558],[null,null,null],[null,null,null],[null,null,null],[42.2967,44.9621,44.4386],[0.786911,0.4904,0.508416],[0.602075,0.226261,0.182399],[0.131407,0.058958,0.054518],[0.954736,1.1361,1.14233],[0.23764,0.139109,0.134472],[0.110253,0.057695,0.056073],[0.124285,0.150479,0.066226]],"source":"cratedb/results/c6a.4xlarge.json"}
,{"system":"Databend","date":"2022-07-01","machine":"c6a.4xlarge, 500gb gp2","cluster_size":1,"comment":"Only 90% of data successfully loaded.","tags":["Rust","column-oriented","ClickHouse derivative"],"load_time":484,"data_size":43016643271,"result":[[0.010087,0.002961,0.003271],[0.127964,0.080012,0.075741],[0.162388,0.143967,0.144762],[0.252904,0.217471,0.217369],[34.281026,34.844158,34.526942],[25.290307,25.793068,25.620563],[0.112484,0.093867,0.090891],[0.086604,0.07796,0.076448],[20.723203,20.7483,20.354869],[20.81994,20.72446,20.696573],[1.964378,1.93559,1.893824],[1.846866,1.789111,1.763664],[4.468158,4.407959,4.438036],[19.947276,19.8859,19.853514],[5.478573,5.474461,5.460604],[5.509521,5.513413,5.363123],[15.430359,15.5406,15.461211],[14.905998,15.029721,15.019642],[31.069663,30.811763,30.737336],[0.281067,0.220021,0.217741],[8.89374,4.12692,4.131689],[10.38448,4.603694,4.571757],[19.980572,8.836322,8.892694],[59.786474,52.452881,39.941988],[2.804019,0.994794,0.958224],[0.765299,0.730434,0.723964],[2.784648,0.94665,0.936684],[8.905027,5.418438,5.386109],[12.187652,12.230066,12.164123],[3.35748,3.395991,3.319434],[4.309389,3.854977,3.772506],[9.958201,7.027432,6.888253],[50.200569,50.535126,50.283066],[24.469412,21.222713,21.010188],[26.115852,23.93507,24.835342],[7.511517,7.296179,7.324549],[2.156784,1.298258,1.278441],[2.155447,1.314499,1.331237],[2.007053,1.181676,1.155612],[null,null,null],[0.485363,0.420291,0.416819],[0.372131,0.322068,0.323578],[null,null,null]],"source":"databend/results/c6a.4xlarge.json"}
,{"system":"Druid","date":"2022-07-01","machine":"c6a.4xlarge, 500gb gp2","cluster_size":1,"comment":"Druid is killed and restarted after every query. Otherwise some queries make Druid degraded and results are incorrect. For example after Q13 even SELECT 1 works for 7 seconds","tags":["Java","column-oriented"],"load_time":19620,"data_size":45188608472,"result":[[0.032365,0.016716,0.016921],[0.400766,0.275591,0.271057],[0.38235,0.152084,0.151652],[1.379492,0.137201,0.128902],[3.278731,2.527105,2.515128],[8.576382,6.54654,6.503001],[null,null,null],[0.563852,0.273795,0.275086],[11.509993,10.636571,10.597993],[13.357647,12.42121,12.337247],[1.636875,0.8213,0.900056],[1.692544,0.512066,0.440511],[2.453274,1.769806,1.807207],[8.503408,7.261406,7.334872],[61.056041,59.251083,59.500549],[8.62067,8.236657,8.22538],[164.840762,null,null],[24.165797,22.308466,null],[null,null,null],[null,null,null],[25.973369,25.597864,25.602509],[null,null,null],[null,null,null],[7.805347,6.629776,6.947366],[0.257845,0.020327,0.016976],[null,null,null],[null,null,null],[32.948154,31.04677,29.221959],[null,null,null],[7.230865,7.033713,6.972421],[20.54625,19.237428,19.258469],[54.065945,52.451318,52.466653],[null,null,null],[17.499267,null,null],[null,null,null],[60.478315,60.05494,60.458946],[1.698088,1.490317,1.461969],[1.409572,0.939003,0.907252],[0.866729,0.329539,0.287435],[null,null,null],[0.932473,0.420781,0.359095],[0.723142,0.3253,0.296865],[0.603483,0.150892,0.140716]],"source":"druid/results/c6a.4xlarge.json"}
,{"system":"DuckDB","date":"2022-07-01","machine":"c6a.4xlarge, 500gb gp2","cluster_size":1,"comment":"Many queries triggered OOM","tags":["C","column-oriented","embedded"],"load_time":4217,"data_size":27241492480,"result":[[0.005694353996659629,0.003944558004150167,0.003837226002360694],[0.16991353100456763,0.03919722700084094,0.03835860399703961],[0.44898432699847035,0.04947217500011902,0.04852217998995911],[0.07586832098604646,0.07051395199960098,0.07007493599667214],[9.554053236002801,8.153356187991449,8.73448242500308],[7.66042533799191,6.931124911992811,7.103380946995458],[0.030703739990713075,0.027668555994750932,0.027583695002249442],[0.1778664360026596,0.03942437999648973,0.03882004099432379],[8.53439180701389,8.869582625004114,9.020313234999776],[10.40215514000738,11.125320470004226,8.941559945000336],[1.1747649609897053,1.04221136700653,1.004799570000614],[1.2380354650085792,1.1211603130068397,2.4278587239969056],[3.1751541379926493,0.9360461989999749,0.8868292279948946],[6.855684430003748,7.300301584007684,5.712960822012974],[3.70588762400439,1.0249276379909134,0.9473389159975341],[2.1037107890006155,1.6215517020027619,1.5671920729946578],[null,null,null],[null,null,null],[null,null,null],[0.0002772739971987903,0.00016792300448287278,0.0001574420020915568],[null,null,null],[null,null,null],[null,null,null],[null,null,null],[2.9310110910009826,0.19020285899750888,0.1736805049877148],[2.939304119994631,0.18754731099761557,0.18073286200524308],[2.8706370779982535,0.18822155400994234,0.17905898999015335],[null,null,null],[null,null,null],[0.884408778991201,0.714329167996766,0.7135983259940986],[5.3762675570033025,0.8803737630078103,0.8728962720051641],[7.249190265996731,2.9648747390019707,2.866687831003219],[null,null,null],[null,null,null],[null,null,null],[4.515183198003797,4.030519469000865,4.014251719010645],[0.11604027298744768,0.040539135996368714,0.04280066800129134],[0.0457908230018802,0.021069509006338194,0.019683108999743126],[0.0680370800109813,0.011889394998434,0.01056639499438461],[0.22029169600864407,0.08547276000899728,0.09095505000732373],[0.03759863799496088,0.008373684002435766,0.007633563989656977],[0.025631797994719818,0.008081699008471332,0.007858585988287814],[0.034359957004198804,0.025543516996549442,0.02533275399764534]],"source":"duckdb/results/c6a.4xlarge.json"}
,{"system":"Greenplum","date":"2022-07-01","machine":"c6a.4xlarge, 500gb gp2","cluster_size":1,"comment":"","tags":["C","column-oriented","PostgreSQL compatible"],"load_time":1080,"data_size":42000000000,"result":[[2.20009,1.45883,1.13573],[1.28661,1.07897,1.01856],[2.2582,2.42193,2.59693],[1.89371,1.9246,1.73866],[9.54471,9.71956,10.0357],[4.55957,4.10112,4.70458],[1.65167,1.89767,1.97051],[1.02537,0.999323,1.00524],[7.89792,7.75718,8.01219],[11.3779,11.6003,11.2552],[2.11955,2.05003,1.9553],[2.01997,1.97932,1.98284],[2.88666,2.92828,2.96822],[4.06272,4.01771,4.03011],[3.46303,3.24779,3.06475],[8.43717,8.18641,7.99202],[9.02176,8.91572,8.92748],[8.66982,8.39332,8.62497],[15.1321,14.9502,15.2344],[1.00877,0.934589,0.975342],[11.0582,3.25807,3.17687],[12.2634,3.5188,3.93705],[24.1522,4.86328,4.88764],[67.1517,20.4,20.261],[2.5799,1.66114,1.90432],[1.72831,1.89536,1.2515],[2.44154,1.46595,1.88238],[11.1175,6.09551,6.02292],[83.041,82.9784,82.8678],[82.5441,82.5427,83.9836],[3.0962,3.22225,3.19431],[5.77576,4.05973,4.00366],[43.6826,40.4375,40.1076],[18.0978,13.2741,12.8894],[17.3187,13.5411,13.5927],[9.72405,9.90029,10.0177],[0.294344,0.169606,0.173804],[0.162524,0.117489,0.115532],[0.145205,0.098342,0.097275],[0.334809,0.275365,0.265053],[0.154522,0.107654,0.10529],[0.158957,0.117284,0.119068],[0.193756,0.144787,0.145485]],"source":"greenplum/results/c6a.4xlarge.json"}
,{"system":"HeavyAI","date":"2022-07-01","machine":"c6a.4xlarge, 500gb gp2","cluster_size":1,"comment":"Previous names: OmniSci, mapD. Many queries cannot run due to errors and limitations.","tags":["C++","column-oriented"],"load_time":572.633,"data_size":50887437386,"result":[[6.525,0.022,0.029],[0.301,0.042,0.04],[0.287,0.095,0.093],[2.572,0.039,0.04],[null,null,null],[null,null,null],[7.327,0.093,0.097],[0.244,0.043,0.038],[null,null,null],[null,null,null],[null,null,null],[null,null,null],[2.939,0.295,0.294],[null,null,null],[null,null,null],[null,null,null],[null,null,null],[4.716,3.91,3.955],[null,null,null],[0.154,0.083,0.106],[14.426,0.07,0.071],[null,null,null],[null,null,null],[null,null,null],[2.276,0.258,0.272],[null,null,null],[null,null,null],[null,null,null],[null,null,null],[1.832,1.64,1.602],[null,null,null],[null,null,null],[null,null,null],[14.811,0.494,0.497],[null,null,null],[null,null,null],[1.941,0.255,0.255],[5.457,0.172,0.283],[0.476,0.269,0.256],[14.239,0.179,0.178],[3.992,0.112,0.112],[1.031,0.116,0.116],[1.365,0.089,0.088]],"source":"heavyai/results/c6a.4xlarge.json"}
,{"system":"Infobright","date":"2022-07-01","machine":"c6a.4xlarge, 500gb gp2","cluster_size":1,"comment":"Only 90% of data successfully loaded. Some queries run for days.","tags":["C++","column-oriented","MySQL compatible"],"load_time":2317,"data_size":13760341294,"result":[[0.01,0,0],[2.39,2.4,2.44],[0,0,0],[7.21,6.04,6.91],[16.09,16.86,15.69],[48.8,42.37,48.63],[0,0,0],[3.48,2.42,2.42],[23.56,24.78,22.21],[32.87,31.71,34.48],[14.8,14.83,14.11],[16.7,16.53,17.37],[1752.91,1999.88,1961.4],[1193.43,1167,1220.47],[2184.81,2316.12,2224.14],[32.58,30.69,31.58],[300.17,16221.33,16168.44],[122.4,120.49,124.67],[78927.44,79250.44,78504.89],[3.38,1.22,1.21],[289.73,302.3,285.83],[415.82,389.23,403.28],[573.82,590.81,575.06],[300.13,293.96,285.64],[41.42,37.48,39.64],[75.2,75.37,72.07],[39.22,41.52,40.11],[449.56,445.03,448.68],[null,null,null],[450.87,488.3,453.83],[58.69,59.29,58.07],[84.47,78.92,79.38],[517.97,520.29,504.96],[182468.89,182468.89,182468.89],[182468.89,182468.89,182468.89],[68.43,66.93,67.68],[8.3,3.62,3.61],[1.04,0.62,0.62],[0.22,0.18,0.18],[567.78,566.52,563.02],[0.29,0.14,0.11],[0.17,0.08,0.08],[1.37,1.34,1.32]],"source":"infobright/results/c6a.4xlarge.json"}
,{"system":"MariaDB ColumnStore","date":"2022-07-01","machine":"c6a.4xlarge, 500gb gp2","cluster_size":1,"comment":"Previous name: InfiniDB.","tags":["C++","column-oriented","MySQL compatible"],"load_time":2507.8,"data_size":19712857022,"result":[[0.151,0.158,0.148],[0.1,0.101,0.106],[1.221,1.233,1.226],[0.739,0.736,0.741],[2.025,2.046,2.004],[3.725,4.801,3.755],[0.871,0.749,0.736],[0.118,0.108,0.103],[2.108,2.029,2.029],[4.225,4.271,4.288],[1.711,1.402,1.407],[1.526,1.435,1.42],[5.339,4.172,3.61],[4.692,4.729,4.96],[4.013,3.86,3.918],[3.236,2.68,2.629],[null,null,null],[null,null,null],[null,null,null],[0.137,0.109,0.147],[12.331,6.069,8.619],[2.162,2.178,2.192],[16.849,30.463,26.639],[92,90.208,92.814],[3.042,1.763,1.791],[1.779,1.772,1.749],[1.793,1.821,1.888],[13.036,10.747,9.59],[null,null,null],[78.224,79.141,77.806],[2.837,2.654,2.675],[5.833,4.552,3.678],[null,null,null],[null,null,null],[null,null,null],[3.626,3.546,3.709],[1.719,1.787,1.876],[1.345,0.906,0.91],[0.117,0.091,0.093],[1.217,1.133,1.133],[0.114,0.063,0.062],[0.1,0.062,0.061],[null,null,null]],"source":"mariadb-columnstore/results/c6a.4xlarge.json"}
,{"system":"MonetDB","date":"2022-07-01","machine":"c6a.4xlarge, 500gb gp2","cluster_size":1,"comment":"","tags":["C","column-oriented"],"load_time":939,"data_size":49696606499,"result":[[0.000218,0.000157,0.000155],[0.101903,0.019908,0.018439],[0.282431,0.035987,0.034938],[2.868,0.029387,0.029207],[4.675,4.515,4.511],[6.584,4.269,4.65],[0.528827,0.063135,0.065742],[0.506863,0.020966,0.021687],[8.343,4.457,4.408],[7.224,6.548,7.576],[0.267003,0.233353,0.230444],[0.347206,0.28358,0.266085],[5.389,3.099,3.074],[7.653,7.759,8.596],[3.276,3.326,3.292],[5.31,3.465,3.578],[9.341,9.143,9.536],[9.584,9.604,9.419],[19.539,19.783,19.611],[0.004509,0.000702,0.000643],[20.801,1.57,1.603],[2.752,0.418221,0.395884],[14.717,0.800894,0.395477],[14.429,1.804,1.869],[1.386,0.159602,0.156426],[0.189736,0.167664,0.168781],[0.164681,0.176666,0.17126],[3.005,3.113,3.882],[null,null,null],[2.751,2.846,2.676],[7.937,2.579,2.447],[5.12,3.492,3.467],[22.862,22.567,23.211],[33.437,18.889,19.043],[18.898,19.583,19.047],[14.774,12.984,13.803],[3.865,0.322143,0.323117],[0.192149,0.177791,0.175984],[0.194173,0.159398,0.165201],[0.680778,0.592252,0.560738],[0.106465,0.10638,0.102692],[0.154871,0.153752,0.155782],[0.11459,0.09639,0.095594]],"source":"monetdb/results/c6a.4xlarge.json"}
,{"system":"MySQL (MyISAM)","date":"2022-07-01","machine":"c6a.4xlarge, 500gb gp2","cluster_size":1,"comment":"","tags":["C++","row-oriented","MySQL compatible"],"load_time":2512,"data_size":121588958061,"result":[[0,0,0],[283.32,276.83,274.52],[276.93,278.29,283.27],[28.83,23.63,21.55],[46.41,40.81,40.93],[467.04,467.39,469.08],[31.02,25.89,24.2],[277.89,275.3,277.3],[329.34,325.8,325.35],[342.86,338.43,336.95],[282.03,279.87,281.22],[277.74,282.68,282],[335.66,334.83,336.44],[305.24,310.39,307.3],[337.41,338.52,342.94],[308.66,307.34,306.27],[738.38,748.44,740.75],[738.75,734.01,738.25],[867.01,872.92,868.84],[25.65,20.61,18.46],[312.39,313.67,306.66],[301.66,305.12,308.01],[298.12,298.44,312.4],[311.34,309.9,311.85],[281.87,278.5,275],[277.46,277.46,277.46],[280.75,278.04,281.76],[263.9,417.39,406.88],[707.21,711.96,705],[668.1,668.33,665.96],[330.31,333.36,331.94],[506.57,506.18,500.53],[2604.49,2681.96,2703.12],[830.65,832.88,831.14],[831.98,830.46,833.41],[608.49,608.51,613.68],[4.56,4.13,4.16],[3.8,3.8,3.7],[1.65,1.45,1.46],[6.33,5.14,6.15],[1.6,1.41,1.41],[1.56,1.42,1.39],[7.04,1.17,1.13]],"source":"mysql-myisam/results/c6a.4xlarge.json"}
,{"system":"MySQL","date":"2022-07-01","machine":"c6a.4xlarge, 500gb gp2","cluster_size":1,"comment":"","tags":["C++","row-oriented","MySQL compatible"],"load_time":9472,"data_size":171953585825,"result":[[339.77,339.88,339.77],[364.91,371.86,367.55],[366.2,368.91,389.66],[364.39,377.53,571.45],[377.69,390.02,384.86],[569.48,576.51,574.68],[367.4,368.23,370.41],[371.29,384.02,613.22],[478.85,683.22,495.68],[489.9,635.96,662.43],[386.07,396.49,640.15],[389.13,412.55,444.12],[447.97,455.54,448.06],[423.22,845.44,813.6],[452.48,460.07,453.98],[577.54,623.21,586.49],[852.07,856.36,862.66],[838.09,848.92,851.12],[1006.37,1011.16,1023.17],[369.76,375.61,415.28],[412.45,419.9,456.62],[411.65,432.88,482.2],[412.73,420.73,429.5],[551.16,577.62,545.45],[382.89,394.76,386.37],[380.9,391.4,385.05],[385.3,394.67,460.32],[388.95,394.7,387.21],[800.33,807.9,807.11],[706.03,745.27,718.9],[450.9,489.59,530.97],[625.5,651.93,647.32],[2721.13,2792.12,2819.26],[945.9,954.94,957.54],[945.42,953.78,965.16],[684.36,716.29,708.75],[10.01,3.79,3.77],[7.48,3.32,3.27],[5.09,0.98,0.96],[8.7,4.77,4.68],[4.82,0.76,0.74],[4.46,0.77,0.75],[7.04,1.17,1.13]],"source":"mysql/results/c6a.4xlarge.json"}
,{"system":"Pinot","date":"2022-07-01","machine":"c6a.4xlarge, 500gb gp2","cluster_size":1,"comment":"It successfully loaded only 94465149 out of 99997497 records. Some queries returned NullPointerException. The loading process is painful - splitting to 100 pieces required. It does not correctly report errors on data loading, the results may be incorrect.","tags":["Java","column-oriented"],"load_time":2032,"data_size":null,"result":[[0.002,0.001,0.001],[0.186,0.186,0.185],[0.251,0.276,0.258],[0.475,0.281,0.238],[3.907,3.655,3.633],[30.471,14.687,14.93],[null,null,null],[0.135,0.134,0.148],[3.039,2.902,2.938],[3.159,3.212,3.225],[4.217,4.197,4.384],[4.145,4.124,4.121],[2.989,3.145,3.18],[6.402,6.886,6.374],[3.245,3.35,3.129],[5.112,5.027,5.141],[5.509,5.279,5.257],[0.865,0.856,0.829],[null,null,null],[0.017,0.015,0.015],[54.348,19.562,19.128],[null,null,null],[76.596,74.719,14.228],[7.441,5.77,5.87],[0.376,0.327,0.286],[7.689,0.395,1.281],[3.434,0.499,0.5],[27.679,2.378,2.393],[null,null,null],[2.221,2.227,2.167],[4.941,4.639,4.565],[5.641,5.37,5.007],[5.295,5.006,5.357],[5.28,5.21,5.105],[6.231,6.238,6.385],[5.918,5.933,5.934],[0.26,0.202,0.21],[0.364,0.072,0.069],[0.042,0.034,0.035],[1.483,0.686,0.651],[0.113,0.071,0.079],[0.042,0.051,0.037],[null,null,null]],"source":"pinot/results/c6a.4xlarge.json"}
,{"system":"PostgreSQL","date":"2022-07-01","machine":"c6a.4xlarge, 500gb gp2","cluster_size":1,"comment":"","tags":["C","row-oriented","PostgreSQL compatible"],"load_time":2342,"data_size":77797067741,"result":[[439.753,309.785,282.017],[317.874,254.238,254.941],[262.883,263.072,263.09],[32.421,5.31,5.06],[57.134,42.648,42.334],[358.423,356.315,358.342],[31.524,5.35,4.994],[263.145,263.193,263.165],[323.659,322.858,321.918],[327.395,326.17,326.231],[265.983,265.681,265.912],[269.984,265.336,265.379],[284.096,284.56,282.234],[277.25,279.455,280.035],[285.66,286.2,283.611],[66.605,32.023,38.282],[312.452,304.431,305.391],[289.209,290.449,287.578],[331.706,327.485,334.428],[24.646,2.543,2.263],[267.561,267.496,267.524],[267.729,267.69,268.184],[263.074,263.12,267.04],[267.602,267.488,267.494],[263.141,263.859,263.137],[262.923,263.102,263.113],[262.885,263.088,263.114],[267.864,269.127,268.204],[303.376,306.925,308.664],[263.221,263.119,263.148],[270.814,270.575,270.294],[278.342,275.925,276.224],[584.599,576.932,591.502],[462.576,446.962,439.779],[429.93,417.696,416.704],[296.875,297.283,295.14],[3.461,0.842,0.794],[2.179,0.564,0.558],[2.258,0.566,0.416],[2.805,1.311,1.317],[2.936,0.82,0.615],[2.197,0.736,0.535],[1.983,0.32,0.312]],"source":"postgresql/results/c6a.4xlarge.json"}
,{"system":"QuestDB","date":"2022-07-01","machine":"c6a.4xlarge, 500gb gp2","cluster_size":1,"comment":"Many queries cannot run. It also crashes and hangs.","tags":["Java","time-series"],"load_time":1667.5,"data_size":126680518680,"result":[[0.0155878,0.000283657,0.000328587],[0.586734,0.0486348,0.0485346],[6.41881,5.57954,6.25638],[6.8554,3.11997,3.11813],[47.8723,54.5425,53.1198],[null,null,null],[5.63439,3.70619,3.92043],[0.699764,0.130462,0.126272],[55.7179,62.8433,62.0045],[null,59.6416,64.7753],[63.7134,null,39.8928],[46.759,46.8544,null],[16.7181,10.9064,10.0735],[79.9885,null,52.5617],[16.1015,12.1835,13.1469],[17.0225,11.7342,10.6194],[24.1167,15.6749,16.8193],[23.0848,15.3149,17.375],[42.0965,26.2421,25.7593],[0.0356335,0.027459,0.0289404],[70.7679,71.5825,71.4573],[null,null,null],[null,null,null],[77.0625,13.2257,12.7578],[11.0775,2.90421,2.33398],[3.31611,3.38837,3.35419],[3.13233,5.2785,3.07075],[null,null,null],[null,null,null],[186.032,185.627,180.963],[26.7279,16.4799,18.8758],[63.8785,32.1097,32.1561],[64.4635,31.4538,35.654],[118.897,null,119.015],[null,null,null],[19.6853,17.4427,16.7998],[1.50985,0.877967,0.885536],[0.805639,0.577352,0.534731],[0.509284,0.448942,0.467679],[1.37609,0.966942,0.912858],[0.567887,0.394619,0.438952],[0.508977,0.441015,0.40528],[null,null,null]],"source":"questdb/results/c6a.4xlarge.json"}
,{"system":"Redshift","date":"2022-07-01","machine":"ra3.xplus","cluster_size":4,"comment":"One query did not run due to overflow check and another due to missing regexp function.","tags":["managed","column-oriented"],"load_time":2136,"data_size":30794579968,"result":[[0.081437,0.022376,0.022491],[2.54868,0.024112,0.024072],[2.62053,0.049948,0.049768],[null,null,null],[0.62714,0.447655,0.43262],[1.14153,1.09479,1.09441],[0.153399,0.053941,0.048224],[3.76153,0.032235,0.030949],[4.43439,0.746808,0.723719],[6.13424,2.20458,2.20031],[4.35338,0.220122,0.228684],[5.15139,0.231856,0.230993],[5.00006,1.10841,1.12871],[5.80125,1.86531,1.90209],[5.16246,1.21239,1.14848],[0.579428,0.535859,0.546178],[6.05764,2.17455,2.18286],[5.86612,2.52634,2.48672],[7.80075,3.35512,3.41153],[2.54112,0.036378,0.035944],[6.47189,2.26909,2.2673],[6.95344,2.61929,2.65637],[12.9508,6.85457,6.99],[25.3022,11.8857,11.8493],[4.37592,0.452737,0.452867],[4.17199,0.469457,0.476302],[6.24746,0.470935,0.482502],[6.00065,2.08332,2.08059],[null,null,null],[22.2567,18.5376,18.3441],[5.37492,0.868068,0.849486],[7.29067,1.06155,1.11209],[7.7832,4.07132,4.00384],[8.95385,5.15488,5.21863],[9.2232,5.32052,5.73207],[4.99205,0.664347,0.618918],[6.82279,1.89738,1.89398],[7.09077,2.19008,2.26612],[5.29731,0.19626,0.204603],[6.07138,0.276315,0.267161],[4.03108,0.054134,0.058568],[4.35647,0.061157,0.053367],[5.23605,0.037217,0.036335]],"source":"redshift/results/4x.ra3.xplus.json"}
,{"system":"Redshift","date":"2022-07-01","machine":"serverless","cluster_size":"serverless","comment":"One query did not run due to overflow check and another due to missing regexp function.","tags":["managed","column-oriented"],"load_time":1933,"data_size":30300000000,"result":[[0.436955,0.390225,0.387823],[2.74529,0.280571,0.198074],[7.24569,0.295612,0.386568],[null,null,null],[3.98825,0.488446,0.325645],[4.24601,0.538891,0.690124],[7.25492,0.288505,0.207515],[5.99594,0.212732,0.281278],[6.17534,0.681868,0.586073],[6.37779,1.37865,1.31614],[6.41405,0.549735,0.421345],[6.64688,0.445678,0.477323],[4.2294,0.361772,0.520471],[4.73701,0.788258,0.743465],[4.49038,0.670446,0.52727],[6.19886,0.663381,0.583588],[5.9867,0.679607,0.672772],[2.76661,0.567555,0.51494],[6.20219,0.816422,0.760568],[2.51526,0.053,0.025066],[2.96003,0.282737,0.226979],[6.79648,0.57495,0.400798],[6.37854,0.92746,1.05793],[25.8462,0.902664,0.905365],[5.00521,0.247895,0.308836],[6.38373,0.308781,0.244082],[4.25427,0.229966,0.247201],[5.98382,0.398218,0.455249],[null,null,null],[6.52367,1.35877,1.30562],[7.36935,0.536226,0.582304],[7.05948,0.621982,0.639653],[4.62901,0.954522,0.908651],[4.95273,1.03062,1.10289],[4.71404,1.06378,1.04157],[4.8201,0.499996,0.575546],[5.32757,0.566517,0.562058],[5.37681,0.626458,0.658628],[5.23137,0.470622,0.540079],[6.09326,0.561312,0.574978],[4.86561,0.595546,0.534209],[4.34256,0.433804,0.414541],[4.19814,0.288269,0.415328]],"source":"redshift-serverless/results/serverless.json"}
,{"system":"SingleStore","date":"2022-07-01","machine":"c6a.4xlarge, 500gb gp2","cluster_size":1,"comment":"Previous name: MemSQL. Some queries did not run due to memory limits","tags":["MySQL compatible","column-oriented"],"load_time":690,"data_size":29836263469,"result":[[0.09,0,0],[0.23,0.04,0.01],[0.47,0.15,0.15],[0.63,0.09,0.08],[1.65,1.23,1.2],[7.96,2.79,2.63],[0.1,0,0],[0.17,0.02,0.02],[1.9,1.4,1.39],[4.79,3.52,3.48],[0.94,0.22,0.23],[0.89,0.24,0.23],[5.82,2.26,2.25],[6.97,4.62,4.66],[3.05,2.28,2.31],[3.92,2.7,2.28],[5.83,4.48,4.42],[4.76,4.13,4.12],[14.03,null,null],[0.57,0.05,0.04],[18.18,1.74,1.94],[20.85,2.17,0.98],[31.98,3.12,1.22],[78.96,3.35,108.85],[2.82,0.39,0.32],[1.83,0.44,0.35],[2.81,0.33,0.32],[18.33,2.57,1.15],[null,null,null],[3.56,2.4,2.4],[3.83,1.11,1.11],[7.35,1.73,1.7],[null,null,null],[null,null,null],[null,null,null],[2.53,1.92,1.84],[0.92,0.23,0.19],[0.84,0.15,0.08],[0.7,0.05,0.05],[3.12,0.38,0.36],[0.29,0.03,0.03],[0.22,0.06,0.02],[0.27,0.11,0.12]],"source":"singlestore/results/c6a.4xlarge.json"}
,{"system":"Snowflake","date":"2022-07-01","machine":"2XL","cluster_size":32,"comment":"","tags":["managed","column-oriented"],"load_time":2524,"data_size":12300000000,"result":[[0.177,0.052,0.09],[0.903,0.324,0.782],[0.458,2.909,0.275],[0.881,0.316,0.166],[0.404,0.257,0.256],[0.481,0.325,0.339],[0.056,0.062,0.06],[0.183,0.324,0.28],[0.444,0.314,0.32],[0.408,0.426,0.417],[0.345,0.241,0.253],[0.406,0.245,0.235],[0.521,1.259,0.326],[0.466,0.493,0.526],[0.447,0.349,0.362],[0.327,0.322,0.302],[0.462,0.508,0.461],[0.489,0.481,0.455],[0.731,0.659,0.674],[0.151,0.156,0.16],[0.832,0.339,0.312],[0.289,0.292,0.34],[0.591,0.484,0.419],[2.661,0.716,0.696],[0.19,0.199,0.377],[0.181,0.182,0.194],[0.22,0.209,0.195],[0.368,0.33,0.347],[0.677,0.645,0.646],[0.877,0.886,0.871],[0.415,0.282,0.301],[1.265,0.404,0.55],[0.786,0.75,0.757],[0.905,0.835,0.841],[0.864,0.865,0.823],[0.352,0.36,0.364],[0.201,0.186,0.2],[0.143,0.137,0.276],[0.29,0.132,0.146],[0.31,0.301,0.304],[0.212,0.197,0.17],[0.223,0.174,0.177],[0.172,0.172,0.172]],"source":"snowflake/results/2xl.json"}
,{"system":"Snowflake","date":"2022-07-01","machine":"3XL","cluster_size":64,"comment":"","tags":["managed","column-oriented"],"load_time":2524,"data_size":12300000000,"result":[[0.165,0.061,0.049],[1.356,1.252,1.502],[1.287,0.47,0.325],[0.627,0.331,0.181],[0.265,0.265,0.483],[0.887,0.45,0.298],[0.054,0.066,0.062],[0.182,0.222,0.194],[0.408,0.438,0.319],[0.434,0.462,0.411],[1.357,0.247,0.412],[0.343,0.25,0.517],[0.273,0.289,0.6],[0.404,0.405,0.392],[0.379,0.304,0.455],[0.275,0.271,0.264],[0.418,0.386,0.388],[0.417,0.434,0.567],[0.753,0.759,0.506],[0.291,0.307,0.4],[0.954,0.423,0.28],[0.568,0.562,0.248],[0.568,0.477,0.496],[1.458,0.492,0.514],[0.179,0.3,0.184],[0.165,0.169,0.176],[0.197,0.186,0.19],[0.289,0.547,0.397],[0.513,0.544,0.632],[0.766,0.754,0.775],[0.389,0.374,0.383],[0.484,0.297,0.286],[0.505,0.505,0.734],[0.656,0.598,0.621],[0.634,0.646,0.609],[0.309,0.298,0.37],[0.192,0.219,0.212],[0.84,0.174,0.139],[0.172,0.163,0.151],[0.323,0.296,0.347],[0.2,0.154,0.144],[0.191,0.121,0.125],[0.137,0.233,0.148]],"source":"snowflake/results/3xl.json"}
,{"system":"Snowflake","date":"2022-07-01","machine":"4XL","cluster_size":128,"comment":"","tags":["managed","column-oriented"],"load_time":2524,"data_size":12300000000,"result":[[0.164,0.061,0.078],[2.471,2.436,1.927],[1.656,0.222,0.639],[0.336,1.244,0.206],[0.435,0.414,0.373],[0.52,0.495,0.326],[0.052,0.051,0.057],[0.244,0.515,0.358],[0.473,0.477,0.659],[0.706,0.523,0.499],[0.619,0.361,0.303],[0.463,0.367,0.29],[0.385,0.319,0.376],[0.661,0.436,0.452],[0.446,0.317,0.336],[0.504,0.283,0.395],[0.478,1.395,0.35],[0.555,1.041,0.993],[0.565,0.558,1.473],[0.31,0.684,0.278],[0.637,1.202,0.249],[0.467,0.294,0.436],[0.671,0.478,0.611],[6.262,0.449,0.425],[0.476,0.213,0.184],[0.552,0.241,0.201],[0.458,0.415,0.402],[0.339,0.357,0.322],[0.732,0.549,0.483],[0.914,0.757,0.743],[0.718,0.31,0.606],[0.605,0.363,0.425],[0.468,0.86,0.784],[0.868,1.787,0.713],[0.807,0.691,0.544],[0.485,0.338,0.672],[0.263,0.221,0.23],[0.147,0.145,0.139],[0.135,0.239,0.136],[0.322,0.378,0.348],[0.236,0.138,0.132],[0.193,0.124,0.139],[0.146,0.145,0.139]],"source":"snowflake/results/4xl.json"}
,{"system":"Snowflake","date":"2022-07-01","machine":"L","cluster_size":8,"comment":"","tags":["managed","column-oriented"],"load_time":2524,"data_size":12300000000,"result":[[0.067,0.054,0.051],[1.158,1.409,0.19],[1.47,0.566,0.715],[0.892,0.534,0.264],[0.474,0.499,0.489],[0.95,0.65,0.699],[0.069,0.055,0.11],[0.317,0.307,0.321],[0.949,0.593,0.654],[0.713,1.099,0.86],[0.622,0.37,0.404],[0.457,0.369,0.414],[0.61,0.566,0.653],[0.97,1.006,0.976],[1.517,0.636,0.603],[0.532,0.541,0.533],[1.018,1.001,1.022],[0.942,0.996,0.94],[2.246,1.596,1.56],[0.181,0.184,0.2],[1.135,0.788,0.609],[0.669,0.528,0.524],[1.164,0.827,0.882],[3.545,2.214,2.107],[0.559,0.431,0.426],[0.34,0.296,0.383],[0.695,0.314,0.368],[0.628,0.658,0.637],[1.511,1.385,1,440],[1.39,1.418,1.322],[1.107,0.687,0.537],[1.026,0.737,0.659],[1.712,1.681,1.728],[2.141,2.13,2.225],[2.163,2.157,2.11],[0.65,0.619,0.627],[0.204,0.195,0.225],[0.159,0.152,0.156],[0.146,0.136,0.15],[0.359,0.29,0.364],[0.196,0.129,0.227],[0.201,0.128,0.143],[0.176,0.129,0.146]],"source":"snowflake/results/l.json"}
,{"system":"Snowflake","date":"2022-07-01","machine":"M","cluster_size":4,"comment":"","tags":["managed","column-oriented"],"load_time":2524,"data_size":12300000000,"result":[[0.054,0.062,0.064],[0.698,0.563,0.407],[0.586,0.412,0.266],[1.386,0.363,0.301],[0.814,0.825,0.984],[1.303,1.024,1.048],[0.069,0.066,0.062],[0.334,0.254,0.27],[1.043,0.952,0.993],[1.21,1.209,1.171],[0.667,0.483,0.456],[0.543,0.495,0.5],[1.005,0.889,0.888],[1.644,1.646,1.652],[1.054,1.044,0.966],[0.893,0.874,0.907],[1.737,1.779,1.837],[1.518,1.539,1.526],[3.082,2.818,2.842],[0.309,0.286,0.256],[1.594,1.017,0.993],[0.781,0.853,0.735],[1.461,1.226,1.08],[5.308,2.974,2.642],[0.511,0.625,0.467],[0.405,0.382,0.439],[0.601,0.535,0.471],[0.947,1.624,1.192],[2.631,2.486,2.49],[1.938,1.96,1.954],[1.93,0.83,0.835],[1.359,1.14,1.062],[3.599,3.623,3.621],[3.619,3.741,3.663],[3.725,3.614,3.786],[1.149,1.126,1.055],[0.202,0.207,0.196],[0.152,0.139,0.145],[0.149,0.144,0.148],[0.383,0.287,0.294],[0.203,0.137,0.119],[0.2,0.312,0.137],[0.149,0.13,0.214]],"source":"snowflake/results/m.json"}
,{"system":"Snowflake","date":"2022-07-01","machine":"S","cluster_size":2,"comment":"","tags":["managed","column-oriented"],"load_time":2524,"data_size":12300000000,"result":[[0.186,0.06,0.062],[0.98,0.574,0.311],[0.977,0.554,0.426],[0.686,0.573,0.404],[1.386,1.384,1.349],[1.871,1.697,1.704],[0.052,0.059,0.227],[0.309,0.536,0.508],[1.768,1.631,1.635],[2.039,2.219,1.908],[0.807,0.647,0.587],[0.763,0.69,0.631],[1.403,1.586,1.404],[2.593,2.584,2.554],[1.67,1.538,1.653],[1.659,1.509,1.514],[2.875,2.99,2.998],[2.605,2.549,2.598],[6.12,5.894,5.766],[0.32,0.431,0.416],[2.406,1.703,1.609],[1.189,1.186,1.163],[2.104,1.441,1.37],[7.144,5.174,4.139],[0.839,0.659,0.641],[0.527,0.518,0.509],[0.633,0.621,0.695],[1.491,1.509,1.514],[4.848,4.485,4.571],[3.067,3.106,3.098],[1.521,1.224,1.236],[1.839,1.69,1.497],[5.692,5.751,6.087],[6.733,6.755,6.712],[6.722,6.709,6.676],[1.704,1.686,1.676],[0.203,0.231,0.218],[0.151,0.134,0.214],[0.14,0.156,0.163],[0.317,0.328,0.319],[0.166,0.133,0.141],[0.166,0.12,0.14],[0.12,0.119,0.126]],"source":"snowflake/results/s.json"}
,{"system":"Snowflake","date":"2022-07-01","machine":"XL","cluster_size":16,"comment":"","tags":["managed","column-oriented"],"load_time":2524,"data_size":12300000000,"result":[[0.071,0.053,0.057],[0.998,0.61,0.24],[0.42,1.138,1.051],[0.653,0.264,0.178],[0.352,0.312,0.349],[1.126,0.431,0.42],[0.067,0.057,0.054],[0.225,0.217,0.2],[0.617,0.366,0.371],[1.006,0.541,0.498],[0.463,0.425,0.293],[0.431,0.36,0.339],[0.392,0.371,0.386],[0.588,0.581,0.59],[0.634,0.414,0.4],[0.368,0.41,0.388],[0.594,0.639,0.663],[0.616,0.581,0.569],[1.092,0.933,0.901],[0.493,0.213,0.16],[0.886,0.48,0.442],[0.448,0.337,0.399],[0.84,0.572,0.505],[2.251,1.23,0.959],[0.295,0.253,0.241],[0.214,0.239,0.278],[0.261,0.232,0.314],[0.422,0.429,0.403],[0.892,0.934,0.883],[1.041,1.017,1.009],[0.715,0.442,0.363],[0.845,0.413,0.461],[1.101,1.085,1.102],[1.294,1.272,1.339],[1.839,1.327,1.241],[0.439,0.399,0.393],[0.199,0.211,0.19],[0.157,0.143,0.14],[0.145,0.157,0.141],[0.331,0.291,0.333],[0.173,0.214,0.138],[0.189,0.15,0.159],[0.135,0.149,0.138]],"source":"snowflake/results/xl.json"}
,{"system":"Snowflake","date":"2022-07-01","machine":"XS","cluster_size":1,"comment":"","tags":["managed","column-oriented"],"load_time":2524,"data_size":12300000000,"result":[[0.169,0.055,0.056],[1.184,0.582,0.386],[1.35,0.56,0.568],[1.27,0.554,0.538],[2.516,2.564,2.506],[2.935,2.649,2.67],[0.052,0.05,0.064],[0.383,0.387,0.397],[3.249,2.993,3.014],[3.589,3.627,3.887],[1.243,0.986,0.966],[1.325,1.08,1.073],[2.038,2.046,2.035],[3.738,3.626,3.718],[2.318,2.159,2.176],[2.733,2.637,2.668],[5.607,5.683,5.667],[3.978,3.923,3.879],[10.085,9.871,9.844],[0.45,0.375,0.469],[5.474,3.103,3.06],[2.012,1.982,1.971],[3.365,2.471,2.501],[11.96,10.619,9.518],[1.074,1.059,1.026],[0.856,0.846,0.879],[1.1,1.085,1.083],[3.057,3.228,3.117],[9.406,9.019,9.158],[6.196,6.243,6.911],[2.906,2.343,2.017],[2.954,2.666,2.565],[9.459,9.565,9.557],[9.555,9.529,9.368],[9.409,9.185,9.294],[2.796,2.88,2.685],[0.299,0.249,0.262],[0.156,0.145,0.18],[0.147,0.146,0.16],[0.371,0.357,0.356],[0.166,0.133,0.155],[0.218,0.14,0.135],[0.14,0.152,0.158]],"source":"snowflake/results/xs.json"}
,{"system":"SQLite","date":"2022-07-01","machine":"c6a.4xlarge, 500gb gp2","cluster_size":1,"comment":"","tags":["C","embedded","row-oriented"],"load_time":2608,"data_size":75776589824,"result":[[752.739,2.003,1.2],[304.302,291.521,286.965],[293.964,287.619,287.219],[758.302,5.879,5.65],[836.393,48.593,48.452],[362.605,344.884,356.245],[763.993,11.602,10.795],[296.348,286.879,287.557],[365.816,360.339,354.126],[374.403,365.196,362.261],[302.989,293.888,298.432],[303.64,291.729,295.347],[316.824,298.18,301.006],[320.665,301.15,305.227],[313.593,301.021,301.626],[794.881,47,47.225],[355.346,344.615,342.442],[316.499,305.971,305.007],[398.177,380.383,385.571],[751.82,5.082,4.913],[295.522,286.573,287.368],[298.58,287.182,288.303],[296.474,288.747,288.638],[296.579,287.127,287.361],[304.709,286.865,287.56],[300.391,290.633,288.587],[294.605,286.91,287.799],[305.986,312.111,305.626],[null,null,null],[411.225,397.614,394.253],[307.711,295.181,300.266],[312.472,299.079,298.19],[386.674,378.347,376.963],[409.742,409.554,420.273],[468.73,453.709,458.149],[366.015,347.446,346.728],[2.911,0.781,0.757],[1.599,0.609,0.587],[1.288,0.256,0.238],[2.469,1.582,1.52],[1.274,0.303,0.283],[1.322,0.317,0.314],[1.498,0.602,0.613]],"source":"sqlite/results/c6a.4xlarge.json"}
,{"system":"TimescaleDB (compression)","date":"2022-07-01","machine":"c6a.4xlarge, 500gb gp2","cluster_size":1,"comment":"","tags":["C","PostgreSQL compatible","column-oriented","time-series"],"load_time":4605,"data_size":20333747165,"result":[[2.28686,1.63642,1.64263],[32.6848,1.63476,1.40052],[60.8633,3.70484,3.59342],[36.4029,2.87091,2.80739],[110.391,38.9688,38.0549],[147.379,66.2513,65.6379],[33.0294,2.92031,2.84375],[33.0221,1.2984,1.19227],[115.694,47.4651,47.0125],[156.347,51.577,51.2694],[68.3301,4.75521,4.68007],[77.4356,5.55128,5.56577],[49.7741,11.2911,11.3265],[81.1014,14.9111,14.9541],[82.9569,14.6156,14.6331],[62.0338,26.399,26.3351],[103.259,36.4122,36.6076],[92.8828,26.2395,25.8991],[144.281,63.5102,63.7661],[7.00679,0.573073,0.536283],[75.0203,7.86344,7.90495],[81.2825,9.15868,9.01775],[104.084,13.9528,13.8435],[132.531,81.522,82.1561],[80.6965,3.28231,3.16574],[39.7693,2.51443,2.43849],[80.4245,3.26941,3.13916],[104.015,13.7044,13.5313],[307.26,253.127,252.147],[42.8549,22.4187,22.0325],[137.601,14.9592,14.6804],[136.767,22.8007,22.131],[263.005,168.551,163.355],[156.919,92.6308,91.702],[160.842,96.0512,97.1773],[62.8357,28.0336,28.7397],[1.75869,0.561604,0.541215],[0.46607,0.191863,0.19021],[0.303671,0.137579,0.136615],[2.32031,1.49223,1.52369],[0.563764,0.14192,0.138234],[0.372428,0.122989,0.123709],[0.448574,0.159092,0.154687]],"source":"timescaledb-compressed/results/c6a.4xlarge.json"}
,{"system":"TimescaleDB","date":"2022-07-01","machine":"c6a.4xlarge, 500gb gp2","cluster_size":1,"comment":"","tags":["C","PostgreSQL compatible","row-oriented","time-series"],"load_time":1620,"data_size":72882392030,"result":[[437.7,215.793,176.42],[327.026,259.568,244.578],[262.978,263.09,263.083],[262.807,263.046,266.847],[337.497,334.964,330.852],[355.689,356.801,362.894],[262.762,263.012,262.968],[263.055,263.016,263.028],[319.928,319.388,320.704],[323.584,322.224,322.488],[265.979,265.465,265.375],[266.019,265.543,265.462],[277.018,276.3,276.595],[280.352,279.251,279.572],[279.915,279.896,279.674],[296.377,298.506,297.659],[314.448,314.605,312.57],[302.668,302.672,303.039],[325.81,324.061,324.376],[262.447,262.698,262.704],[267.581,267.467,267.482],[268.085,267.466,267.696],[263.391,263.097,263.126],[38.291,0.435,0.335],[0.127,0.005,0.005],[263.138,263.1,263.092],[0.889,0.341,0.339],[267.586,267.498,267.491],[289.086,290.012,290.093],[263.22,263.071,263.109],[274.78,273.995,273.998],[282.217,281.39,281.47],[429.273,426.588,439.431],[448.808,418.724,418.207],[455.196,422.75,423.142],[299.263,296.937,297.261],[18.693,1.552,1.481],[18.125,0.945,0.937],[18.528,1.062,0.902],[18.268,1.779,1.77],[19.615,1.965,1.966],[18.97,1.435,1.43],[18.33,1.153,0.952]],"source":"timescaledb/results/c6a.4xlarge.json"}
]; // end of data
const additional_data_size_points = [
{"fake": true, "system": "hits.tsv", "data_size": 74807831229},
{"fake": true, "system": "hits.csv", "data_size": 81136059858},
{"fake": true, "system": "hits.json", "data_size": 232733025002},
{"fake": true, "system": "hits.parquet", "data_size": 14779976446},
{"fake": true, "system": "hits.tsv.gz", "data_size": 16298506510},
{"fake": true, "system": "hits.csv.gz", "data_size": 16608960810},
{"fake": true, "system": "hits.json.gz", "data_size": 23728268670}
];
</script>
</head>
<body>
<div class="header stick-left">
<span class="nowrap themes"><span id="toggle-dark">🌚</span><span id="toggle-light">🌞</span></span>
<h1>ClickBench — a Benchmark For Analytical DBMS</h1>
<a href="https://github.com/ClickHouse/ClickBench/">Methodology</a> | <a href="https://github.com/ClickHouse/ClickBench/">Reproduce and Validate the Results</a> | <a href="https://github.com/ClickHouse/ClickBench/">Add a System</a> | <a href="https://github.com/ClickHouse/ClickBench/">Report Mistake</a> | <a href="https://clickhouse.com/benchmark/hardware/">Hardware Benchmark</a>
</div>
<table class="selectors-container stick-left">
<tr>
<th>System: </th>
<td id="selectors_system">
<a id="select-all-systems" class="selector selector-active">All</a>
</td>
</tr>
<tr>
<th>Type: </th>
<td id="selectors_type">
<a id="select-all-types" class="selector selector-active">All</a>
</td>
</tr>
<tr>
<th>Machine: </th>
<td id="selectors_machine">
<a id="select-all-machines" class="selector selector-active">All</a>
</td>
</tr>
<tr>
<th>Cluster size: </th>
<td id="selectors_cluster_size">
<a id="select-all-cluster-sizes" class="selector selector-active">All</a>
</td>
</tr>
<tr>
<th>Metric: </th>
<td id="selectors_run">
<a class="selector" id="selector-metric-cold">Cold Run</a>
<a class="selector" id="selector-metric-hot">Hot Run</a>
<a class="selector" id="selector-metric-load">Load Time</a>
<a class="selector" id="selector-metric-size">Storage Size</a>
</td>
</tr>
</table>
<table class="stick-left comparison">
<thead>
<tr>
<th class="summary-name">
System &amp; Machine
</th>
<th colspan="2">
Relative <span id="time-or-size">time</span> (lower is better)
</th>
</tr>
</thead>
<tbody id="summary">
</tbody>
</table>
<div id="nothing-selected" class="stick-left">Nothing selected</div>
<div class="stick-left comparison">
<h2>Detailed Comparison</h2>
</div>
<table id="details">
<thead>
<tr id="details_head">
</tr>
</thead>
<tbody id="details_body">
</tbody>
</table>
<script type="text/javascript">
const constant_time_add = 0.01;
const missing_result_penalty = 2;
const missing_result_time = 300;
let selectors = {
"system": {},
"type": {},
"machine": {},
"cluster_size": {},
"metric": "hot",
"queries": [],
};
let theme = 'light';
function setTheme(new_theme) {
theme = new_theme;
document.documentElement.setAttribute('data-theme', theme);
window.localStorage.setItem('theme', theme);
render();
}
document.getElementById('toggle-light').addEventListener('click', e => setTheme('light'));
document.getElementById('toggle-dark').addEventListener('click', e => setTheme('dark'));
let new_theme = window.localStorage.getItem('theme');
if (new_theme && new_theme != theme) {
setTheme(new_theme);
}
/// Generate selectors
let systems = document.getElementById('selectors_system');
let types = document.getElementById('selectors_type');
let machines = document.getElementById('selectors_machine');
let cluster_sizes = document.getElementById('selectors_cluster_size');
let unique_systems = [... new Set(data.map(elem => elem.system))];
function toggle(e, elem, selectors_map) {
selectors_map[elem] = !selectors_map[elem];
e.target.className = selectors_map[elem] ? 'selector selector-active' : 'selector';
render();
updateHistory();
}
function toggleAll(e, selectors_map) {
const new_value = Object.keys(selectors_map).filter(k => selectors_map[k]).length * 2 < Object.keys(selectors_map).length;
[...e.target.parentElement.querySelectorAll('a')].map(
elem => { elem.className = new_value ? 'selector selector-active' : 'selector' });
Object.keys(selectors_map).map(k => { selectors_map[k] = new_value });
render();
updateHistory();
}
unique_systems.map(elem => {
let selector = document.createElement('a');
selector.className = 'selector selector-active';
selector.appendChild(document.createTextNode(elem));
systems.appendChild(selector);
if (!(elem in selectors.system)) { selectors.system[elem] = true; }
selector.addEventListener('click', e => toggle(e, elem, selectors.system));
/// Highlighting summary rows and table columns on hovering over the system selector.
selector.addEventListener('mouseover', e => {
[...document.querySelectorAll('.summary-row')].map(row => {
row.className = row.dataset.system == elem ? 'summary-row summary-row-hilite' : 'summary-row' });
[...document.querySelectorAll('.th-entry')].map(th => {
th.className = th.dataset.system == elem ? 'th-entry th-entry-hilite' : 'th-entry' });
});
selector.addEventListener('mouseout', e => {
[...document.querySelectorAll('.summary-row')].map(row => { row.className = 'summary-row' });
[...document.querySelectorAll('.th-entry')].map(row => { row.className = 'th-entry' });
});
});
[... new Set(data.map(elem => elem.tags).flat())].map(elem => {
let selector = document.createElement('a');
selector.className = 'selector selector-active';
selector.appendChild(document.createTextNode(elem));
types.appendChild(selector);
if (!(elem in selectors.type)) { selectors.type[elem] = true; }
selector.addEventListener('click', e => toggle(e, elem, selectors.type));
});
[... new Set(data.map(elem => elem.machine))].map(elem => {
let selector = document.createElement('a');
selector.className = 'selector selector-active';
selector.appendChild(document.createTextNode(elem));
machines.appendChild(selector);
if (!(elem in selectors.machine)) { selectors.machine[elem] = true; }
selector.addEventListener('click', e => toggle(e, elem, selectors.machine));
});
[... new Set(data.map(elem => elem.cluster_size))].sort(
(a, b) => ((typeof(b) === 'number') - (typeof(a) === 'number')) || (a - b)).map(elem => {
let selector = document.createElement('a');
selector.className = 'selector selector-active';
selector.appendChild(document.createTextNode(elem));
cluster_sizes.appendChild(selector);
if (!(elem in selectors.cluster_size)) { selectors.cluster_size[elem] = true; }
selector.addEventListener('click', e => toggle(e, elem, selectors.cluster_size));
});
document.getElementById('select-all-systems').addEventListener('click', e => toggleAll(e, selectors.system));
document.getElementById('select-all-types').addEventListener('click', e => toggleAll(e, selectors.type));
document.getElementById('select-all-machines').addEventListener('click', e => toggleAll(e, selectors.machine));
document.getElementById('select-all-cluster-sizes').addEventListener('click', e => toggleAll(e, selectors.cluster_size));
[...document.getElementById('selectors_run').querySelectorAll('a')].map(elem => elem.addEventListener('click', e => {
[...e.target.parentElement.querySelectorAll('a')].map(elem => { elem.className = elem == e.target ? 'selector selector-active' : 'selector' });
}));
document.getElementById('selector-metric-cold').addEventListener('click', e => { selectors.metric = 'cold'; render(); updateHistory(); });
document.getElementById('selector-metric-hot').addEventListener('click', e => { selectors.metric = 'hot'; render(); updateHistory(); });
document.getElementById('selector-metric-load').addEventListener('click', e => { selectors.metric = 'load'; render(); updateHistory(); });
document.getElementById('selector-metric-size').addEventListener('click', e => { selectors.metric = 'size'; render(); updateHistory(); });
selectors.queries = [...data[0].result.keys()].map(k => true);
function updateSelectors() {
[...systems.childNodes].map(elem => { elem.className = selectors.system[elem.innerText] ? 'selector selector-active' : 'selector' });
[...types.childNodes].map(elem => { elem.className = selectors.type[elem.innerText] ? 'selector selector-active' : 'selector' });
[...machines.childNodes].map(elem => { elem.className = selectors.machine[elem.innerText] ? 'selector selector-active' : 'selector' });
[...cluster_sizes.childNodes].map(elem => { elem.className = selectors.cluster_size[elem.innerText] ? 'selector selector-active' : 'selector' });
[...document.getElementById('selectors_run').querySelectorAll('a')].map(elem => {
elem.className = elem.id == 'selector-metric-' + selectors.metric ? 'selector selector-active' : 'selector' });
[...document.querySelectorAll('.query-checkbox')].map((elem, i) => { elem.checked = selectors.queries[i] });
}
function clearElement(elem)
{
while (elem.firstChild) {
elem.removeChild(elem.lastChild);
}
}
function selectRun(timings) {
return selectors.metric == 'cold' ? timings[0] : (timings[1] !== null && timings[2] !== null ? Math.min(timings[1], timings[2]) : null)
}
function addNote(text) {
let note = document.createElement('sup');
note.className = 'note';
note.appendChild(document.createTextNode('†'));
let tooltip = document.createElement('span');
tooltip.className = 'tooltip tooltip-result';
tooltip.appendChild(document.createTextNode(text));
note.appendChild(tooltip);
return note;
}
function renderSummary(filtered_data) {
let table = document.getElementById('summary');
clearElement(table);
/// Generate summary
/// The algorithm: for each of the queries,
/// - if there is a result - take query duration, add 10 ms, and divide it to the corresponding value from the baseline,
/// - if there is no result - take the worse query duration across all query runs for this system and multiply by 2.
/// Take geometric mean across the queries.
let summary = {};
const num_queries = filtered_data[0].result.length;
const baseline_data = [...filtered_data[0].result.keys()].map(query_num =>
[...Array(3).keys()].map(run_num =>
Math.min(...filtered_data.filter(elem => !elem.fake).map(elem => elem.result[query_num][run_num]).filter(x => x))));
const min_load_time = Math.min(...filtered_data.map(elem => elem.load_time).filter(x => x));
const min_data_size = Math.min(...filtered_data.map(elem => elem.data_size).filter(x => x));
let summaries;
if (selectors.metric == 'load') {
summaries = filtered_data.map(elem => elem.load_time / min_load_time);
document.getElementById('time-or-size').innerText = 'time';
} else if (selectors.metric == 'size') {
summaries = filtered_data.map(elem => elem.data_size / min_data_size);
document.getElementById('time-or-size').innerText = 'size';
} else {
summaries = filtered_data.map(elem => {
const fallback_timing = missing_result_penalty * Math.max(missing_result_time, ...elem.result.map(timings => selectRun(timings)));
let accumulator = 0;
let used_queries = 0;
const no_queries_selected = selectors.queries.filter(x => x).length == 0;
for (let i = 0; i < num_queries; ++i) {
if (no_queries_selected || selectors.queries[i]) {
const curr_timing = selectRun(elem.result[i]) ?? fallback_timing;
const baseline_timing = selectRun(baseline_data[i]);
const ratio = (constant_time_add + curr_timing) / (constant_time_add + baseline_timing);
accumulator += Math.log(ratio);
++used_queries;
}
}
return Math.exp(accumulator / used_queries);
});
document.getElementById('time-or-size').innerText = 'time';
}
const sorted_indices = [...summaries.keys()].sort((a, b) => summaries[a] - summaries[b]);
const max_ratio = summaries[sorted_indices[sorted_indices.length - 1]];
sorted_indices.map(idx => {
const elem = filtered_data[idx];
if (selectors.metric == 'size' && elem.data_size === null) { return; }
let tr = document.createElement('tr');
tr.className = 'summary-row';
tr.dataset.system = elem.system;
let td_name = document.createElement('td');
td_name.className = 'summary-name';
if (!elem.fake) {
let link = document.createElement('a');
link.appendChild(document.createTextNode(`${elem.system} (${elem.machine})`));
link.href = "https://github.com/ClickHouse/ClickBench/blob/main/" + elem.source;
td_name.appendChild(link);
} else {
td_name.appendChild(document.createTextNode(elem.system));
}
if (elem.comment) { td_name.appendChild(addNote(elem.comment)); }
td_name.appendChild(document.createTextNode(': '));
const ratio = summaries[idx];
const percentage = summaries[idx] / max_ratio * 100;
let td_number = document.createElement('td');
td_number.className = 'summary-number';
const text = selectors.metric == 'load' ? (elem.load_time ? `${Math.round(elem.load_time)}s (×${ratio.toFixed(2)})` : 'stateless')
: selectors.metric == 'size' ? `${(elem.data_size / 1024 / 1024 / 1024).toFixed(2)} GiB (×${ratio.toFixed(2)})`
: `×${ratio.toFixed(2)}`;
td_number.appendChild(document.createTextNode(text));
let td_bar = document.createElement('td');
td_bar.className = 'summary-bar-cell';
let bar = document.createElement('div');
bar.className = `summary-bar`;
bar.style.width = `${percentage}%`;
td_bar.appendChild(bar);
tr.appendChild(td_name);
tr.appendChild(td_bar);
tr.appendChild(td_number);
table.appendChild(tr);
});
return [sorted_indices, baseline_data];
}
function colorize(elem, ratio) {
let [r, g, b] = [0, 0, 0];
/// ratio less than 1 - green
/// ratio from 1 to 2 - green to yellow
/// ratio from 2 to 10 - yellow to red
/// ratio from 10 to 1000 to infinity - red to brown to black
/// Note: we are using RGB space without proper gamma correction. Read more: https://www.handprint.com/HP/WCL/color1.html
if (ratio !== null) {
if (ratio < 1) {
r = 232;
g = 255;
b = 232;
} else if (ratio <= 1) {
g = 255;
} else if (ratio <= 2) {
g = 255;
r = (ratio - 1) * 255;
} else if (ratio <= 10) {
g = (10 - ratio) / 8 * 255;
r = 255;
} else {
r = (1 - ((ratio - 10) / ((ratio - 10) + 1000))) * 255;
}
}
if (document.documentElement.getAttribute('data-theme') == 'dark') {
r /= 1.5;
g /= 1.5;
b /= 1.5;
}
elem.style.backgroundColor = `rgb(${r}, ${g}, ${b})`;
if (ratio === null || ratio > 10) {
/// This will look better on dark backgrounds
elem.style.color = 'white';
} else {
elem.style.color = 'black';
}
/// The best result is highlighted
if (ratio == 1) {
elem.style.fontWeight = 'bold';
}
}
function render() {
let details_head = document.getElementById('details_head');
let details_body = document.getElementById('details_body');
clearElement(details_head);
clearElement(details_body);
let filtered_data = data.filter(elem =>
selectors.system[elem.system] &&
selectors.machine[elem.machine] &&
selectors.cluster_size[elem.cluster_size] &&
elem.tags.filter(type => selectors.type[type]).length > 0);
let nothing_selected_elem = document.getElementById('nothing-selected');
if (filtered_data.length == 0) {
nothing_selected_elem.style.display = 'block';
[...document.querySelectorAll('.comparison')].map(e => e.style.display = 'none');
return;
}
nothing_selected_elem.style.display = 'none';
[...document.querySelectorAll('.comparison')].map(e => e.style.display = 'block');
if (selectors.metric == 'size') {
filtered_data = [...filtered_data, ...additional_data_size_points];
}
let [sorted_indices, baseline_data] = renderSummary(filtered_data);
sorted_indices = sorted_indices.filter(idx => !filtered_data[idx].fake);
/// Generate details
/// Global checkbox
{
let th_checkbox = document.createElement('th');
let checkbox = document.createElement('input');
checkbox.type = 'checkbox';
checkbox.checked = true;
checkbox.addEventListener('change', e => {
[...document.querySelectorAll('.query-checkbox')].map(elem => { elem.checked = e.target.checked });
selectors.queries.map((_, i) => { selectors.queries[i] = e.target.checked });
renderSummary(filtered_data);
updateHistory();
});
th_checkbox.appendChild(checkbox);
details_head.appendChild(th_checkbox);
details_head.appendChild(document.createElement('th'));
}
/// Table header
sorted_indices.map(idx => {
const elem = filtered_data[idx];
let th = document.createElement('th');
th.appendChild(document.createTextNode(`${elem.system}\n(${elem.machine})`));
th.className = 'th-entry';
th.dataset.system = elem.system;
details_head.appendChild(th);
});
/// Load times
{
let tr = document.createElement('tr');
tr.className = 'shadow';
let td_title = document.createElement('td');
td_title.colSpan = 2;
td_title.appendChild(document.createTextNode('Load time: '));
tr.appendChild(td_title);
sorted_indices.map(idx => {
const curr_timing = filtered_data[idx].load_time;
const baseline_timing = Math.min(...filtered_data.map(elem => elem.load_time).filter(x => x));
const ratio = curr_timing / baseline_timing;
let td = document.createElement('td');
td.appendChild(document.createTextNode(curr_timing ? `${Math.round(curr_timing)}s (×${ratio.toFixed(2)})` : '0'));
colorize(td, ratio);
tr.appendChild(td);
});
details_body.appendChild(tr);
}
/// Data sizes
{
let tr = document.createElement('tr');
tr.className = 'shadow';
let td_title = document.createElement('td');
td_title.colSpan = 2;
td_title.appendChild(document.createTextNode('Data size: '));
tr.appendChild(td_title);
sorted_indices.map(idx => {
const curr_size = filtered_data[idx].data_size;
const baseline_size = Math.min(...filtered_data.map(elem => elem.data_size).filter(x => x));
const ratio = curr_size !== null ? curr_size / baseline_size : null;
let td = document.createElement('td');
td.appendChild(document.createTextNode(curr_size !== null ? `${(curr_size / 1024 / 1024 / 1024).toFixed(2)} GiB (×${ratio.toFixed(2)})` : '☠'));
colorize(td, ratio);
tr.appendChild(td);
});
details_body.appendChild(tr);
}
/// Query runtimes
const num_queries = filtered_data[0].result.length;
for (let query_num = 0; query_num < num_queries; ++query_num) {
let tr = document.createElement('tr');
tr.className = 'shadow';
let td_checkbox = document.createElement('td');
let checkbox = document.createElement('input');
checkbox.type = 'checkbox';
checkbox.className = 'query-checkbox';
checkbox.checked = selectors.queries[query_num];
checkbox.addEventListener('change', e => {
selectors.queries[query_num] = e.target.checked;
renderSummary(filtered_data);
updateHistory();
});
td_checkbox.appendChild(checkbox);
tr.appendChild(td_checkbox);
let td_query_num = document.createElement('td');
td_query_num.className = 'note';
td_query_num.appendChild(document.createTextNode(`Q${query_num}. `));
let tooltip = document.createElement('span');
tooltip.className = 'tooltip tooltip-query';
tooltip.appendChild(document.createTextNode(`Query ${query_num}: ${queries[query_num]}`));
td_query_num.appendChild(tooltip);
tr.appendChild(td_query_num);
sorted_indices.map(idx => {
const curr_timing = selectRun(filtered_data[idx].result[query_num]);
const baseline_timing = selectRun(baseline_data[query_num]);
const ratio = curr_timing !== null ? (constant_time_add + curr_timing) / (constant_time_add + baseline_timing) : null;
let td = document.createElement('td');
td.appendChild(document.createTextNode(curr_timing !== null ? `${curr_timing.toFixed(2)}s (×${ratio.toFixed(2)})` : '☠'));
colorize(td, ratio);
tr.appendChild(td);
});
details_body.appendChild(tr);
}
}
function updateHistory() {
history.pushState(selectors, '',
window.location.pathname + (window.location.search || '') + '#' + btoa(JSON.stringify(selectors)));
}
window.onpopstate = function(event) {
if (!event.state) { return; }
selectors = event.state;
render();
updateSelectors();
};
if (window.location.hash) {
try {
selectors = JSON.parse(atob(window.location.hash.substring(1)));
} catch {}
}
render();
updateSelectors();
</script>
</body>
</html>