Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 5 additions & 8 deletions .github/workflows/benchmarks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ on:
push:
branches:
- master
- kazimuth/benchwrangle
workflow_dispatch:
inputs:
pr_number:
Expand Down Expand Up @@ -63,27 +64,23 @@ jobs:
run: |
cargo build --release

- name: Install clippy for module build
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Someone other than me should probably ACK the CI changes, I'm not super familiar.

run: |
rustup component add clippy

- name: Criterion compare base branch
if: ${{ env.PR_BASE_REF }}
uses: clockworklabs/criterion-compare-action@main
with:
cwd: "crates/bench"
branchName: ${{ env.PR_BASE_REF }}
benchName: modules

- name: Criterion compare previous commit
if: env.PR_BASE_REF == ''
uses: clockworklabs/criterion-compare-action@main
with:
cwd: "crates/bench"
branchName: "HEAD~1"
benchName: modules

- name: Benchmark Vs Sqlite
working-directory: crates/bench/
run: |
python3 hyper_cmp.py versus > out.report
cat out.report >> $GITHUB_STEP_SUMMARY

- name: Clean up
if: always()
Expand Down
8 changes: 8 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

37 changes: 26 additions & 11 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ rpath = false
debug = true

[workspace.dependencies]
ahash = "0.8.3"
anyhow = { version = "1.0.68", features = ["backtrace"] }
anymap = "0.12"
async-trait = "0.1.68"
Expand All @@ -76,7 +77,11 @@ clap = { version = "4.2.4", features = ["derive"] }
colored = "2.0.0"
console = { version = "0.15.6" }
convert_case = "0.6.0"
criterion = { version = "0.4.0", features = ["async", "async_tokio", "html_reports"] }
criterion = { version = "0.4.0", features = [
"async",
"async_tokio",
"html_reports",
] }
crossbeam-channel = "0.5"
cursive = "0.20"
decorum = { version = "0.3.1", default-features = false, features = ["std"] }
Expand Down Expand Up @@ -125,11 +130,11 @@ rand = "0.8.5"
rayon-core = "1.11.0"
regex = "1"
reqwest = { version = "0.11.10", features = ["stream", "json"] }
rusqlite = {version = "0.29.0", features = ["bundled", "column_decltype"]}
rusqlite = { version = "0.29.0", features = ["bundled", "column_decltype"] }
rustc-demangle = "0.1.21"
rustc-hash = "1.1.0"
rust_decimal = {version ="1.29.1", features = ["db-tokio-postgres"]}
rustyline = { version = "12.0.0", features = [] }
rust_decimal = { version = "1.29.1", features = ["db-tokio-postgres"] }
rustyline = { version = "12.0.0", features = [] }
scoped-tls = "1.0.1"
scopeguard = "1.1.0"
sendgrid = { version = "0.18.1", features = ["async"] }
Expand All @@ -144,21 +149,23 @@ slab = "0.4.7"
sled = "0.34.7"
sqlparser = "0.34.0"
sqllogictest-engines = "0.13.0"
sqllogictest="0.13.2"
sqllogictest = "0.13.2"
strum = { version = "0.24.1", features = ["derive"] }
syn = { version = "2", features = ["full", "extra-traits"] }
syntect = { version = "5.0.0", default-features = false, features = ["default-fancy"]}
syntect = { version = "5.0.0", default-features = false, features = [
"default-fancy",
] }
tabled = "0.8.0"
tempdir = "0.3.7"
tempfile = "3.3"
termcolor = "1.2.0"
thiserror = "1.0.37"
tokio = { version = "1.25.1", features = ["full"] }
tokio-util = { version = "0.7.4", features = ["time"] }
tokio-postgres = { version = "0.7.8" , features = ["with-chrono-0_4"] }
tokio-postgres = { version = "0.7.8", features = ["with-chrono-0_4"] }
tokio-tungstenite = { version = "0.19", features = ["native-tls"] }
toml = "0.5"
tower-http = { version = "0.4.1", features = ["cors"]}
tower-http = { version = "0.4.1", features = ["cors"] }
tracing = "0.1"
tracing-appender = "0.2.2"
tracing-core = "0.1"
Expand All @@ -167,7 +174,7 @@ tracing-log = "0.1"
tracing-subscriber = { version = "0.3.17", features = ["env-filter"] }
url = "2.3.1"
urlencoding = "2.1.2"
uuid = { version = "1.2.1", features = ["v4"]}
uuid = { version = "1.2.1", features = ["v4"] }
wasmbin = "0.6"

# wasmer prior to 4.1.1 had a signal handling bug on macOS.
Expand All @@ -182,12 +189,20 @@ wasmtime = { version = "7", default-features = false, features = ["cranelift"] }
# We use the "ondemand" feature to allow connecting after the start,
# and reconnecting, from the tracy client to the database.
# TODO(George): Need to be able to remove "broadcast" in some build configurations.
tracing-tracy = { version = "0.10.2", features = [ "enable", "system-tracing", "context-switch-tracing", "sampling", "code-transfer", "broadcast", "ondemand" ]}
tracing-tracy = { version = "0.10.2", features = [
"enable",
"system-tracing",
"context-switch-tracing",
"sampling",
"code-transfer",
"broadcast",
"ondemand",
] }

# Vendor the openssl we rely on, rather than depend on a
# potentially very old system version.
openssl = { version = "0.10", features = ["vendored"] }

# Rocksdb ostorage backend, linked only if "rocksdb" feature enabled.
# if we link bzip, we get multiple defs
rocksdb = {version = "0.19.0", default-features = false, features = ["lz4"]}
rocksdb = { version = "0.19.0", default-features = false, features = ["lz4"] }
11 changes: 9 additions & 2 deletions crates/bench/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ license-file = "LICENSE"
description = "Bench library/utility for SpacetimeDB"

[[bench]]
name = "db"
name = "special"
harness = false

[[bench]]
name = "modules"
name = "generic"
harness = false

[lib]
Expand All @@ -23,12 +23,19 @@ spacetimedb-standalone = { path = "../standalone" }
spacetimedb-client-api = { path = "../client-api" }
spacetimedb-testing = { path = "../testing" }

ahash.workspace = true
log.workspace = true
clap.workspace = true
rusqlite.workspace = true
criterion.workspace = true
tempdir.workspace = true
rand.workspace = true
tokio.workspace = true
serde_json.workspace = true
serde.workspace = true
anyhow.workspace = true
anymap.workspace = true
byte-unit.workspace = true
futures.workspace = true
tracing-subscriber.workspace = true
lazy_static.workspace = true
Loading