Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot share links to test cases. #215

Open
andyg2 opened this issue Aug 23, 2024 · 2 comments
Open

Cannot share links to test cases. #215

andyg2 opened this issue Aug 23, 2024 · 2 comments

Comments

@andyg2
Copy link

andyg2 commented Aug 23, 2024

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

@alexey-milovidov
Copy link
Member

Thank you! I've also considered that.

By the way, you can use https://pastila.nl/ as a link shortener, as follows:

  1. Open https://pastila.nl/
  2. Disable "end-to-end encryption" with the checkbox at the top.
  3. Paste the URL.
  4. Copy the URL from the page address, and add .link at the end. It will be the shortened URL.

@ruslandoga
Copy link

ruslandoga commented Oct 23, 2024

👋

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 ...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants
@andyg2 @alexey-milovidov @ruslandoga and others