Cannot share links to test cases.
The hashbang length makes it challenging to share a benchmark results on https://benchmark.clickhouse.com/#.........
Maybe if the assumption was that a metric is not selected (false) by default, the base64 encoded JSON could be reduced from this:
{
"system": {
"AlloyDB": false,
"Athena (partitioned)": false,
"Athena (single)": false,
"Aurora for MySQL": false,
"Aurora for PostgreSQL": false,
"ByConity": false,
"ByteHouse": false,
"chDB (Parquet, partitioned)": false,
"chDB": false,
"Citus": false,
"ClickHouse Cloud (aws)": false,
"ClickHouse Cloud (aws) Parallel Replicas ON": false,
"ClickHouse Cloud (Azure)": false,
"ClickHouse Cloud (Azure) Parallel Replica ON": false,
"ClickHouse Cloud (Azure) Parallel Replicas ON": false,
"ClickHouse Cloud (gcp)": false,
"ClickHouse Cloud (gcp) Parallel Replicas ON": false,
"ClickHouse (data lake, partitioned)": false,
"ClickHouse (data lake, single)": false,
"ClickHouse (Parquet, partitioned)": false,
"ClickHouse (Parquet, single)": false,
"ClickHouse (web)": true,
"ClickHouse": false,
"ClickHouse (tuned)": false,
"ClickHouse (tuned, memory)": false,
"Cloudberry": false,
"CrateDB": false,
"Crunchy Bridge for Analytics (Parquet)": false,
"Databend": false,
"DataFusion (Parquet, partitioned)": false,
"DataFusion (Parquet, single)": false,
"Apache Doris": false,
"Druid": false,
"DuckDB (Parquet, partitioned)": false,
"DuckDB": false,
"Elasticsearch": false,
"Elasticsearch (tuned)": false,
"GlareDB": false,
"Greenplum": false,
"HeavyAI": false,
"Hydra": false,
"Infobright": false,
"Kinetica": false,
"MariaDB ColumnStore": false,
"MariaDB": false,
"MonetDB": false,
"MongoDB": false,
"Motherduck": false,
"MySQL (MyISAM)": false,
"MySQL": false,
"Oxla": false,
"ParadeDB (Parquet, partitioned)": false,
"ParadeDB (Parquet, single)": false,
"Pinot": false,
"PostgreSQL (tuned)": false,
"PostgreSQL": true,
"QuestDB (partitioned)": false,
"QuestDB": false,
"Redshift": false,
"SelectDB": false,
"SingleStore": false,
"Snowflake": false,
"SQLite": false,
"StarRocks": false,
"Tablespace": false,
"Tembo OLAP (columnar)": false,
"TimescaleDB (compression)": false,
"TimescaleDB": false,
"Umbra": false
},
"type": {
"C": false,
"column-oriented": true,
"PostgreSQL compatible": true,
"managed": false,
"gcp": false,
"stateless": false,
"Java": false,
"C++": false,
"MySQL compatible": false,
"row-oriented": false,
"ClickHouse derivative": false,
"embedded": false,
"serverless": false,
"aws": false,
"parallel replicas": false,
"Azure": false,
"analytical": false,
"Rust": false,
"search": false,
"document": false,
"somewhat PostgreSQL compatible": false,
"time-series": false
},
"machine": {
"16 vCPU 128GB": false,
"8 vCPU 64GB": false,
"serverless": false,
"16acu": false,
"c6a.4xlarge, 500gb gp2": true,
"L": false,
"M": false,
"S": false,
"XS": false,
"c6a.metal, 500gb gp2": true,
"192GB": false,
"24GB": false,
"360GB": false,
"48GB": false,
"720GB": false,
"96GB": false,
"1430GB": false,
"dev": false,
"708GB": false,
"c5n.4xlarge, 500gb gp2": false,
"Analytics-256GB (64 vCores, 256 GB)": false,
"c5.4xlarge, 500gb gp2": false,
"c6a.4xlarge, 1500gb gp2": false,
"cloud": false,
"dc2.8xlarge": false,
"ra3.16xlarge": false,
"ra3.4xlarge": false,
"ra3.xlplus": false,
"S2": false,
"S24": false,
"2XL": false,
"3XL": false,
"4XL": false,
"XL": false,
"L1 - 16CPU 32GB": false,
"c6a.4xlarge, 500gb gp3": false
},
"cluster_size": {
"1": true,
"2": false,
"4": false,
"8": false,
"16": false,
"32": false,
"64": false,
"128": false,
"serverless": false,
"dedicated": false
},
"metric": "hot",
"queries": [true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]
}
base64 encoded is 4328 characters, over twice that of most url shorteners like bit.ly. Also too long for facebook or telegram to handle in a single message.
to this (all the false values removed)
{
"system": {
"ClickHouse(web)": true,
"PostgreSQL": true,
},
"type": {
"column-oriented": true,
"PostgreSQLcompatible": true,
},
"machine": {
"c6a.4xlarge,500gbgp2": true,
"c6a.metal,500gbgp2": true,
},
"cluster_size": {
"1": true,
},
"metric": "hot",
"queries": [true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]
}
just 602 character base64 encoded and well within the 2048 character rule of thumb most url shorteners etc
eyJzeXN0ZW0iOnsiQ2xpY2tIb3VzZSh3ZWIpIjp0cnVlLCJQb3N0Z3JlU1FMIjp0cnVlLH0sInR5cGUiOnsiY29sdW1uLW9yaWVudGVkIjp0cnVlLCJQb3N0Z3JlU1FMY29tcGF0aWJsZSI6dHJ1ZSx9LCJtYWNoaW5lIjp7ImM2YS40eGxhcmdlLDUwMGdiZ3AyIjp0cnVlLCJjNmEubWV0YWwsNTAwZ2JncDIiOnRydWUsfSwiY2x1c3Rlcl9zaXplIjp7IjEiOnRydWUsfSwibWV0cmljIjoiaG90IiwicXVlcmllcyI6W3RydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1ZSx0cnVlLHRydWVdfQ
Thank you! I've also considered that.
By the way, you can use https://pastila.nl/ as a link shortener, as follows:
- Open https://pastila.nl/
- Disable "end-to-end encryption" with the checkbox at the top.
- Paste the URL.
- Copy the URL from the page address, and add
.linkat the end. It will be the shortened URL.
👋
It seems like the query string gets truncated on Safari and copying it into another tab loses the filters.
Here I selected "DuckDB" and "DuckDB (Parquet, partitioned)" which gets decoded to incomplete JSON
JSON
{"system":{"AlloyDB":false,"AlloyDB (tuned)":false,"Athena (partitioned)":false,"Athena (single)":false,"Aurora for MySQL":false,"Aurora for PostgreSQL":false,"ByConity":false,"ByteHouse":false,"chDB (DataFrame)":false,"chDB (Parquet, partitioned)":false,"chDB":false,"Citus":false,"ClickHouse Cloud (aws)":false,"ClickHouse Cloud (azure)":false,"ClickHouse Cloud (gcp)":false,"ClickHouse (data lake, partitioned)":false,"ClickHouse (data lake, single)":false,"ClickHouse (Parquet, partitioned)":false,"ClickHouse (Parquet, single)":false,"ClickHouse (web)":false,"ClickHouse":false,"ClickHouse (tuned)":false,"ClickHouse (tuned, memory)":false,"Cloudberry":false,"CrateDB":false,"Crunchy Bridge for Analytics (Parquet)":false,"Databend":false,"DataFusion (Parquet, partitioned)":false,"DataFusion (Parquet, single)":false,"Apache Doris":false,"Druid":false,"DuckDB (DataFrame)":false,"DuckDB (Parquet, partitioned)":true,"DuckDB":true,"Elasticsearch":false,"Elasticsearch (tuned)":false,"GlareDB":false,"Greenplum":false,"HeavyAI":false,"Hydra":false,"Infobright":false,"Kinetica":false,"MariaDB ColumnStore":false,"MariaDB":false,"MonetDB":false,"MongoDB":false,"Motherduck":false,"MySQL (MyISAM)":false,"MySQL":false,"Oxla":false,"Pandas (DataFrame)":false,"ParadeDB (Parquet, partitioned)":false,"ParadeDB (Parquet, single)":false,"Pinot":false,"Polars (DataFrame)":false,"PostgreSQL (tuned)":false,"PostgreSQL":false,"QuestDB (partitioned)":false,"QuestDB":false,"Redshift":false,"SingleStore":false,"Snowflake":false,"SQLite":false,"StarRocks":false,"Tablespace":false,"Tembo OLAP (columnar)":false,"TimescaleDB (compression)":false,"TimescaleDB":false,"Umbra":false},"type":{"C":false,"column-oriented":false,"PostgreSQL compatible":false,"managed":false,"gcp":false,"stateless":false,"Java":false,"C++":false,"MySQL compatible":false,"row-oriented":false,"ClickHouse derivative":false,"embedded":true,"serverless":false,"dataframe":false,"aws":false,"azure":false,"analytical":false,"Rust":false,"search":false,"document":false,"somewhat PostgreSQL compatible":false,"time-series":false},"machine":{"16 vCPU 128GB":false,"8 vCPU 64GB":false,"serverless":false,"16acu":false,"c6a.4xlarge, 500gb gp2":true,"L":false,"M":false,"S":false,"XS":false,"c6a.metal, 500gb gp2":false,"192GB":false,"24GB":false,"360GB":false,"48GB":false,"720GB":false,"96GB":false,"dev":false,"708GB":false,"c5n.4xlarge, 500gb gp2":false,"Analytics-256GB (64 vCores, 256 GB)":false,"c5.4xlarge, 500gb gp2":false,"c6a.4xlarge, 1500gb gp2":false,"cloud":false,"dc2.8xlarge":false,"ra3.16xlarge":false,"ra3.4xlarge":false,"ra3.xlplus":false,"S2":false,"S24":false,"2XL":false,"3XL":false,"4XL":false,"XL":false,"L1 - 16CPU 32GB":false,"c6a.4xlarge, 500gb gp3":false},"cluster_size":{"1":true,"2":true,"4":true,"8":true,"16":true,"32":true,"64":true,"128":true,"serverless":true},"metric":"hot","queries":[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,tr
Note how it ends with ",true,tr"
Since Base64 is not really human readable, could the filters be represented as a byte arrays of bitmaps?
Like
system=[1, 2, 3, 4]
would mean a bitmap like
00000001 00000010 00000011 00000100
which enables
system=[7, 14, 22, 23, 29]
or if these idx mean position in a sorted list
system=["ByConity", "ClickHouse (data lake, single)", "CrateDB", "Crunchy Bridge for Analytics (Parquet)", "DuckDB (DataFrame)"]
Ah, no. The filters would break if the list gets extended ...
I've implemented an algorithm for compressed links.
implemented an algorithm for compressed links
Nicely done