From 4316247d82d86e1230f23883c193c26133b12e6a Mon Sep 17 00:00:00 2001 From: Fabing Li Date: Wed, 11 Dec 2024 09:56:49 +0000 Subject: [PATCH] Add ext2 benchmarks of sqlite --- .github/workflows/benchmark_asterinas.yml | 2 ++ .typos.toml | 1 + .../bench_results/ext2_deletes_between.json | 16 ++++++++++++++++ .../bench_results/ext2_deletes_individual.json | 16 ++++++++++++++++ .../bench_results/ext2_refill_replace.json | 16 ++++++++++++++++ .../bench_results/ext2_selects_ipk.json | 16 ++++++++++++++++ .../bench_results/ext2_selects_text_pk.json | 16 ++++++++++++++++ .../bench_results/ext2_total.json | 16 ++++++++++++++++ .../bench_results/ext2_updates_between.json | 16 ++++++++++++++++ .../bench_results/ext2_updates_big_one.json | 16 ++++++++++++++++ .../bench_results/ext2_updates_individual.json | 16 ++++++++++++++++ .../bench_results/ext2_vacuum.json | 16 ++++++++++++++++ test/benchmark/sqlite/ext2_benchmarks/run.sh | 7 +++++++ test/benchmark/sqlite/summary.json | 14 ++++++++++++++ 14 files changed, 184 insertions(+) create mode 100644 test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_deletes_between.json create mode 100644 test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_deletes_individual.json create mode 100644 test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_refill_replace.json create mode 100644 test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_selects_ipk.json create mode 100644 test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_selects_text_pk.json create mode 100644 test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_total.json create mode 100644 test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_updates_between.json create mode 100644 test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_updates_big_one.json create mode 100644 test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_updates_individual.json create mode 100644 test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_vacuum.json create mode 100644 test/benchmark/sqlite/ext2_benchmarks/run.sh create mode 100644 test/benchmark/sqlite/summary.json diff --git a/.github/workflows/benchmark_asterinas.yml b/.github/workflows/benchmark_asterinas.yml index 0e252b90f..12aafbd07 100644 --- a/.github/workflows/benchmark_asterinas.yml +++ b/.github/workflows/benchmark_asterinas.yml @@ -78,6 +78,8 @@ jobs: - redis/ping_mbulk_100k_conc20_rps - redis/get_100k_conc20_rps - redis/set_100k_conc20_rps + # SQLite benchmarks + - sqlite/ext2_benchmarks fail-fast: false timeout-minutes: 60 container: diff --git a/.typos.toml b/.typos.toml index b76fc0ec9..5502de96c 100644 --- a/.typos.toml +++ b/.typos.toml @@ -14,6 +14,7 @@ BA = "BA" ND = "ND" Fo = "Fo" Inh = "Inh" +DELET = "DELET" # Files with svg suffix are ignored to check. [type.svg] diff --git a/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_deletes_between.json b/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_deletes_between.json new file mode 100644 index 000000000..0f8057049 --- /dev/null +++ b/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_deletes_between.json @@ -0,0 +1,16 @@ +{ + "alert": { + "threshold": "125%", + "bigger_is_better": false + }, + "result_extraction": { + "search_pattern": "10000 DELETEs, numeric BETWEEN, indexed....", + "result_index": 8 + }, + "chart": { + "title": "[Ext2] The deletes-between result of sqlite speedtest", + "description": "sqlite-speed-test: 10000 DELETEs, numeric BETWEEN, indexed", + "unit": "second", + "legend": "The speed of deletes-between on {system} (Ext2)" + } +} \ No newline at end of file diff --git a/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_deletes_individual.json b/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_deletes_individual.json new file mode 100644 index 000000000..076feb435 --- /dev/null +++ b/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_deletes_individual.json @@ -0,0 +1,16 @@ +{ + "alert": { + "threshold": "125%", + "bigger_is_better": false + }, + "result_extraction": { + "search_pattern": "50000 DELETEs of individual rows....", + "result_index": 8 + }, + "chart": { + "title": "[Ext2] The deletes-individual result of sqlite speedtest", + "description": "sqlite-speed-test: 50000 DELETEs of individual rows", + "unit": "second", + "legend": "The speed of deletes-individual on {system} (Ext2)" + } +} \ No newline at end of file diff --git a/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_refill_replace.json b/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_refill_replace.json new file mode 100644 index 000000000..8306f5349 --- /dev/null +++ b/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_refill_replace.json @@ -0,0 +1,16 @@ +{ + "alert": { + "threshold": "125%", + "bigger_is_better": false + }, + "result_extraction": { + "search_pattern": "Refill two 50000-row tables using REPLACE....", + "result_index": 9 + }, + "chart": { + "title": "[Ext2] The refill-replace result of sqlite speedtest", + "description": "sqlite-speed-test: Refill two 50000-row tables using REPLACE", + "unit": "second", + "legend": "The speed of refill-replace on {system} (Ext2)" + } +} \ No newline at end of file diff --git a/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_selects_ipk.json b/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_selects_ipk.json new file mode 100644 index 000000000..2840b15b8 --- /dev/null +++ b/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_selects_ipk.json @@ -0,0 +1,16 @@ +{ + "alert": { + "threshold": "125%", + "bigger_is_better": false + }, + "result_extraction": { + "search_pattern": "70000 SELECTS on an IPK....", + "result_index": 8 + }, + "chart": { + "title": "[Ext2] The selects-ipk result of sqlite speedtest", + "description": "sqlite-speed-test: 70000 SELECTS on an IPK", + "unit": "second", + "legend": "The speed of selects-ipk on {system} (Ext2)" + } +} \ No newline at end of file diff --git a/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_selects_text_pk.json b/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_selects_text_pk.json new file mode 100644 index 000000000..4687fd278 --- /dev/null +++ b/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_selects_text_pk.json @@ -0,0 +1,16 @@ +{ + "alert": { + "threshold": "125%", + "bigger_is_better": false + }, + "result_extraction": { + "search_pattern": "70000 SELECTS on a TEXT PK....", + "result_index": 9 + }, + "chart": { + "title": "[Ext2] The selects-text-pk result of sqlite speedtest", + "description": "sqlite-speed-test: 70000 SELECTS on a TEXT PK", + "unit": "second", + "legend": "The speed of selects-text-pk on {system} (Ext2)" + } +} \ No newline at end of file diff --git a/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_total.json b/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_total.json new file mode 100644 index 000000000..e6561f42e --- /dev/null +++ b/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_total.json @@ -0,0 +1,16 @@ +{ + "alert": { + "threshold": "125%", + "bigger_is_better": false + }, + "result_extraction": { + "search_pattern": "TOTAL....", + "result_index": 2 + }, + "chart": { + "title": "[Ext2] The total result of sqlite speedtest", + "description": "sqlite-speed-test: total", + "unit": "second", + "legend": "Total speed on {system} (Ext2)" + } +} \ No newline at end of file diff --git a/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_updates_between.json b/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_updates_between.json new file mode 100644 index 000000000..e96f5313a --- /dev/null +++ b/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_updates_between.json @@ -0,0 +1,16 @@ +{ + "alert": { + "threshold": "125%", + "bigger_is_better": false + }, + "result_extraction": { + "search_pattern": "10000 UPDATES, numeric BETWEEN, indexed....", + "result_index": 8 + }, + "chart": { + "title": "[Ext2] The updates-between result of sqlite speedtest", + "description": "sqlite-speed-test: 10000 UPDATES, numeric BETWEEN, indexed", + "unit": "second", + "legend": "The speed of updates-between on {system} (Ext2)" + } +} \ No newline at end of file diff --git a/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_updates_big_one.json b/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_updates_big_one.json new file mode 100644 index 000000000..931dd9cc0 --- /dev/null +++ b/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_updates_big_one.json @@ -0,0 +1,16 @@ +{ + "alert": { + "threshold": "125%", + "bigger_is_better": false + }, + "result_extraction": { + "search_pattern": "One big UPDATE of the whole 50000-row table....", + "result_index": 11 + }, + "chart": { + "title": "[Ext2] The updates-big-one result of sqlite speedtest", + "description": "sqlite-speed-test: One big UPDATE of the whole 50000-row table", + "unit": "second", + "legend": "The speed of updates-big-one on {system} (Ext2)" + } +} \ No newline at end of file diff --git a/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_updates_individual.json b/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_updates_individual.json new file mode 100644 index 000000000..b0d803bbe --- /dev/null +++ b/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_updates_individual.json @@ -0,0 +1,16 @@ +{ + "alert": { + "threshold": "125%", + "bigger_is_better": false + }, + "result_extraction": { + "search_pattern": "50000 UPDATES of individual rows....", + "result_index": 8 + }, + "chart": { + "title": "[Ext2] The updates-individual result of sqlite speedtest", + "description": "sqlite-speed-test: 50000 UPDATES of individual rows", + "unit": "second", + "legend": "The speed of updates-individual on {system} (Ext2)" + } +} \ No newline at end of file diff --git a/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_vacuum.json b/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_vacuum.json new file mode 100644 index 000000000..3531a1ac4 --- /dev/null +++ b/test/benchmark/sqlite/ext2_benchmarks/bench_results/ext2_vacuum.json @@ -0,0 +1,16 @@ +{ + "alert": { + "threshold": "125%", + "bigger_is_better": false + }, + "result_extraction": { + "search_pattern": "VACUUM....", + "result_index": 4 + }, + "chart": { + "title": "[Ext2] The 'VACUUM' result of sqlite speedtest", + "description": "sqlite-speed-test: repacking database file into a minimal amount of disk space", + "unit": "second", + "legend": "The speed of VACUUM on {system} (Ext2)" + } +} \ No newline at end of file diff --git a/test/benchmark/sqlite/ext2_benchmarks/run.sh b/test/benchmark/sqlite/ext2_benchmarks/run.sh new file mode 100644 index 000000000..d9125eb1a --- /dev/null +++ b/test/benchmark/sqlite/ext2_benchmarks/run.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +# SPDX-License-Identifier: MPL-2.0 + +set -e + +/benchmark/bin/sqlite-speedtest1 --size 1000 /ext2/test.db \ No newline at end of file diff --git a/test/benchmark/sqlite/summary.json b/test/benchmark/sqlite/summary.json new file mode 100644 index 000000000..7c176d9f7 --- /dev/null +++ b/test/benchmark/sqlite/summary.json @@ -0,0 +1,14 @@ +{ + "benchmarks": [ + "sqlite/ext2_deletes_between", + "sqlite/ext2_deletes_individual", + "sqlite/ext2_refill_replace", + "sqlite/ext2_selects_ipk", + "sqlite/ext2_selects_text_pk", + "sqlite/ext2_updates_between", + "sqlite/ext2_updates_individual", + "sqlite/ext2_updates_big_one", + "sqlite/ext2_vacuum", + "sqlite/ext2_total" + ] +} \ No newline at end of file