Skip to content

Commit

Permalink
Version upgrade to 0.8.0 (#622)
Browse files Browse the repository at this point in the history
Co-authored-by: John Detter <[email protected]>
  • Loading branch information
jdetter and John Detter authored Dec 4, 2023
1 parent 4ef1bd5 commit 79ff6df
Show file tree
Hide file tree
Showing 25 changed files with 80 additions and 80 deletions.
40 changes: 20 additions & 20 deletions Cargo.lock

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

2 changes: 1 addition & 1 deletion LICENSE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Business Source License 1.1
Parameters

Licensor: Clockwork Laboratories, Inc.
Licensed Work: SpacetimeDB 0.7.3
Licensed Work: SpacetimeDB 0.8.0
The Licensed Work is
(c) 2023 Clockwork Laboratories, Inc.

Expand Down
2 changes: 1 addition & 1 deletion crates/bench/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "spacetimedb-bench"
version = "0.7.3"
version = "0.8.0"
edition = "2021"
license-file = "LICENSE"
description = "Bench library/utility for SpacetimeDB"
Expand Down
4 changes: 2 additions & 2 deletions crates/bindings-macro/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "spacetimedb-bindings-macro"
version = "0.7.3"
version = "0.8.0"
edition = "2021"
license-file = "LICENSE"
description = "Easy support for interacting between SpacetimeDB and Rust."
Expand All @@ -11,7 +11,7 @@ proc-macro = true
bench = false

[dependencies]
spacetimedb-primitives = { path = "../primitives", version = "0.7.3" }
spacetimedb-primitives = { path = "../primitives", version = "0.8.0" }

bitflags.workspace = true
humantime.workspace = true
Expand Down
4 changes: 2 additions & 2 deletions crates/bindings-sys/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "spacetimedb-bindings-sys"
version = "0.7.3"
version = "0.8.0"
edition = "2021"
license-file = "LICENSE"
description = "Easy support for interacting between SpacetimeDB and Rust."
Expand All @@ -11,4 +11,4 @@ bench = false

[dependencies]
getrandom = {workspace = true, optional = true}
spacetimedb-primitives = { path = "../primitives", version = "0.7.3" }
spacetimedb-primitives = { path = "../primitives", version = "0.8.0" }
10 changes: 5 additions & 5 deletions crates/bindings/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "spacetimedb"
version = "0.7.3"
version = "0.8.0"
edition = "2021"
license-file = "LICENSE"
description = "Easy support for interacting between SpacetimeDB and Rust."
Expand All @@ -16,10 +16,10 @@ bench = false
getrandom = ["spacetimedb-bindings-sys/getrandom"]

[dependencies]
spacetimedb-bindings-sys = { path = "../bindings-sys", version = "0.7.3" }
spacetimedb-lib = { path = "../lib", default-features = false, version = "0.7.3"}
spacetimedb-bindings-macro = { path = "../bindings-macro", version = "0.7.3"}
spacetimedb-primitives = { path = "../primitives", version = "0.7.3" }
spacetimedb-bindings-sys = { path = "../bindings-sys", version = "0.8.0" }
spacetimedb-lib = { path = "../lib", default-features = false, version = "0.8.0"}
spacetimedb-bindings-macro = { path = "../bindings-macro", version = "0.8.0"}
spacetimedb-primitives = { path = "../primitives", version = "0.8.0" }

derive_more.workspace = true
log.workspace = true
Expand Down
8 changes: 4 additions & 4 deletions crates/cli/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "spacetimedb-cli"
version = "0.7.3"
version = "0.8.0"
edition = "2021"
license-file = "LICENSE"
description = "A command line interface for SpacetimeDB"
Expand All @@ -17,9 +17,9 @@ bench = false
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
spacetimedb-core = { path = "../core", version = "0.7.3" }
spacetimedb-lib = { path = "../lib", version = "0.7.3", features = ["cli"] }
spacetimedb-standalone = { path = "../standalone", version = "0.7.3", optional = true }
spacetimedb-core = { path = "../core", version = "0.8.0" }
spacetimedb-lib = { path = "../lib", version = "0.8.0", features = ["cli"] }
spacetimedb-standalone = { path = "../standalone", version = "0.8.0", optional = true }

anyhow.workspace = true
base64.workspace = true
Expand Down
2 changes: 1 addition & 1 deletion crates/cli/src/subcommands/project/rust/Cargo._toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,5 @@ edition = "2021"
crate-type = ["cdylib"]

[dependencies]
spacetimedb = "0.7.3"
spacetimedb = "0.8.0"
log = "0.4"
2 changes: 1 addition & 1 deletion crates/client-api-messages/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "spacetimedb-client-api-messages"
version = "0.7.3"
version = "0.8.0"
edition = "2021"
license-file = "LICENSE"
description = "Types for the SpacetimeDB client API messages"
Expand Down
6 changes: 3 additions & 3 deletions crates/client-api/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
[package]
name = "spacetimedb-client-api"
version = "0.7.3"
version = "0.8.0"
edition = "2021"
license-file = "LICENSE"
description = "The HTTP API for SpacetimeDB"

[dependencies]
spacetimedb-core = { path = "../core", version = "0.7.3" }
spacetimedb-core = { path = "../core", version = "0.8.0" }
tokio = { version = "1.2", features = ["full"] }
lazy_static = "1.4.0"
spacetimedb-lib = { path = "../lib", version = "0.7.3" }
spacetimedb-lib = { path = "../lib", version = "0.8.0" }
log = "0.4.4"
serde = "1.0.136"
serde_json = { version = "1.0", features = ["raw_value"] }
Expand Down
12 changes: 6 additions & 6 deletions crates/core/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "spacetimedb-core"
version = "0.7.3"
version = "0.8.0"
edition = "2021"
license-file = "LICENSE"
description = "The core library for SpacetimeDB"
Expand All @@ -18,11 +18,11 @@ name = "odb_flavor_bench"
harness = false

[dependencies]
spacetimedb-lib = { path = "../lib", version = "0.7.3" }
spacetimedb-sats = { path = "../sats", version = "0.7.3" }
spacetimedb-vm = { path = "../vm", version = "0.7.3" }
spacetimedb-client-api-messages = { path = "../client-api-messages", version = "0.7.3" }
spacetimedb-primitives = { path = "../primitives", version = "0.7.3" }
spacetimedb-lib = { path = "../lib", version = "0.8.0" }
spacetimedb-sats = { path = "../sats", version = "0.8.0" }
spacetimedb-vm = { path = "../vm", version = "0.8.0" }
spacetimedb-client-api-messages = { path = "../client-api-messages", version = "0.8.0" }
spacetimedb-primitives = { path = "../primitives", version = "0.8.0" }

anyhow.workspace = true
async-trait.workspace = true
Expand Down
2 changes: 1 addition & 1 deletion crates/data-structures/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "spacetimedb-data-structures"
version = "0.7.3"
version = "0.8.0"
edition = "2021"
license-file = "LICENSE"
description = "Assorted data structures used in spacetimedb"
Expand Down
8 changes: 4 additions & 4 deletions crates/lib/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "spacetimedb-lib"
version = "0.7.3"
version = "0.8.0"
edition = "2021"
license-file = "LICENSE"
description = "A common library for SpacetimeDB"
Expand All @@ -21,9 +21,9 @@ cli = ["clap"]
proptest = ["dep:proptest", "dep:proptest-derive"]

[dependencies]
spacetimedb-bindings-macro = { path = "../bindings-macro", version = "0.7.3" }
spacetimedb-sats = { path = "../sats", version = "0.7.3" }
spacetimedb-primitives = { path = "../primitives", version = "0.7.3" }
spacetimedb-bindings-macro = { path = "../bindings-macro", version = "0.8.0" }
spacetimedb-sats = { path = "../sats", version = "0.8.0" }
spacetimedb-primitives = { path = "../primitives", version = "0.8.0" }

anyhow.workspace = true
bitflags.workspace = true
Expand Down
2 changes: 1 addition & 1 deletion crates/primitives/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "spacetimedb-primitives"
version = "0.7.3"
version = "0.8.0"
edition = "2021"
license-file = "LICENSE"
description = "Primitives such as TableId and ColumnIndexAttribute"
Expand Down
8 changes: 4 additions & 4 deletions crates/sats/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "spacetimedb-sats"
version = "0.7.3"
version = "0.8.0"
edition = "2021"
license-file = "LICENSE"
description = "Spacetime Algebraic Type Notation"
Expand All @@ -13,8 +13,8 @@ serde = ["dep:serde"]
proptest = ["dep:proptest", "dep:proptest-derive"]

[dependencies]
spacetimedb-bindings-macro = { path = "../bindings-macro", version = "0.7.3" }
spacetimedb-primitives = { path = "../primitives", version = "0.7.3" }
spacetimedb-bindings-macro = { path = "../bindings-macro", version = "0.8.0" }
spacetimedb-primitives = { path = "../primitives", version = "0.8.0" }

arrayvec.workspace = true
bitflags.workspace = true
Expand All @@ -38,4 +38,4 @@ bytes.workspace = true
rand.workspace = true
# Also as dev-dependencies for use in _this_ crate's tests.
proptest.workspace = true
proptest-derive.workspace = true
proptest-derive.workspace = true
Loading

1 comment on commit 79ff6df

@github-actions
Copy link

@github-actions github-actions bot commented on 79ff6df Dec 4, 2023

Choose a reason for hiding this comment

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

Benchmark results

Benchmark Report

Legend:

  • load: number of rows pre-loaded into the database
  • count: number of rows touched by the transaction
  • index types:
    • unique: a single index on the id column
    • non_unique: no indexes
    • multi_index: non-unique index on every column
  • schemas:
    • person(id: u32, name: String, age: u64)
    • location(id: u32, x: u64, y: u64)

All throughputs are single-threaded.

Empty transaction

db on disk new latency old latency new throughput old throughput
sqlite 💿 430.8±1.92ns 434.2±2.62ns - -
sqlite 🧠 424.3±1.81ns 428.6±1.21ns - -
stdb_module 💿 17.6±1.00µs 18.8±1.63µs - -
stdb_module 🧠 17.9±0.89µs 17.9±1.04µs - -
stdb_raw 💿 914.3±1.54ns 925.4±2.40ns - -
stdb_raw 🧠 870.6±0.77ns 880.5±2.12ns - -

Single-row insertions

db on disk schema index type load new latency old latency new throughput old throughput
sqlite 💿 location multi_index 0 14.4±0.06µs 15.1±2.89µs 67.6 Ktx/sec 64.7 Ktx/sec
sqlite 💿 location multi_index 1000 15.7±0.11µs 15.7±0.12µs 62.2 Ktx/sec 62.2 Ktx/sec
sqlite 💿 location non_unique 0 7.2±0.91µs 7.2±0.04µs 135.6 Ktx/sec 135.8 Ktx/sec
sqlite 💿 location non_unique 1000 7.0±0.06µs 7.1±0.04µs 139.9 Ktx/sec 137.1 Ktx/sec
sqlite 💿 location unique 0 7.1±0.04µs 7.1±0.03µs 137.7 Ktx/sec 136.9 Ktx/sec
sqlite 💿 location unique 1000 7.1±0.04µs 7.1±0.05µs 138.3 Ktx/sec 138.4 Ktx/sec
sqlite 💿 person multi_index 0 14.3±0.04µs 14.7±2.19µs 68.3 Ktx/sec 66.4 Ktx/sec
sqlite 💿 person multi_index 1000 16.0±0.15µs 16.1±0.13µs 60.8 Ktx/sec 60.8 Ktx/sec
sqlite 💿 person non_unique 0 7.3±0.76µs 7.3±0.28µs 134.1 Ktx/sec 134.5 Ktx/sec
sqlite 💿 person non_unique 1000 8.7±15.19µs 7.3±0.05µs 112.9 Ktx/sec 134.6 Ktx/sec
sqlite 💿 person unique 0 7.3±0.71µs 7.2±0.42µs 134.6 Ktx/sec 135.0 Ktx/sec
sqlite 💿 person unique 1000 7.2±0.05µs 7.3±0.06µs 135.1 Ktx/sec 133.9 Ktx/sec
sqlite 🧠 location multi_index 0 4.0±0.01µs 4.1±0.01µs 245.9 Ktx/sec 238.9 Ktx/sec
sqlite 🧠 location multi_index 1000 5.1±0.02µs 5.2±0.05µs 190.4 Ktx/sec 186.2 Ktx/sec
sqlite 🧠 location non_unique 0 1817.9±8.27ns 1872.8±5.82ns 537.2 Ktx/sec 521.4 Ktx/sec
sqlite 🧠 location non_unique 1000 1881.7±11.54ns 1907.2±7.39ns 519.0 Ktx/sec 512.0 Ktx/sec
sqlite 🧠 location unique 0 1783.9±12.21ns 1873.6±9.65ns 547.4 Ktx/sec 521.2 Ktx/sec
sqlite 🧠 location unique 1000 1917.6±9.17ns 1956.4±11.98ns 509.3 Ktx/sec 499.2 Ktx/sec
sqlite 🧠 person multi_index 0 3.6±0.04µs 3.7±0.01µs 268.1 Ktx/sec 264.0 Ktx/sec
sqlite 🧠 person multi_index 1000 5.3±0.02µs 5.5±0.06µs 183.4 Ktx/sec 176.4 Ktx/sec
sqlite 🧠 person non_unique 0 1858.7±16.95ns 1948.0±6.77ns 525.4 Ktx/sec 501.3 Ktx/sec
sqlite 🧠 person non_unique 1000 1955.6±12.39ns 1995.3±6.66ns 499.4 Ktx/sec 489.4 Ktx/sec
sqlite 🧠 person unique 0 1855.5±4.65ns 1930.1±6.15ns 526.3 Ktx/sec 506.0 Ktx/sec
sqlite 🧠 person unique 1000 2.0±0.01µs 2.0±0.01µs 487.6 Ktx/sec 476.5 Ktx/sec
stdb_module 💿 location multi_index 0 53.1±5.73µs 52.6±4.77µs 18.4 Ktx/sec 18.6 Ktx/sec
stdb_module 💿 location multi_index 1000 252.6±96.53µs 169.6±71.91µs 3.9 Ktx/sec 5.8 Ktx/sec
stdb_module 💿 location non_unique 0 45.6±4.66µs 45.6±5.12µs 21.4 Ktx/sec 21.4 Ktx/sec
stdb_module 💿 location non_unique 1000 251.4±24.90µs 262.2±11.49µs 3.9 Ktx/sec 3.7 Ktx/sec
stdb_module 💿 location unique 0 49.1±6.22µs 49.0±5.93µs 19.9 Ktx/sec 19.9 Ktx/sec
stdb_module 💿 location unique 1000 113.7±69.10µs 189.7±82.32µs 8.6 Ktx/sec 5.1 Ktx/sec
stdb_module 💿 person multi_index 0 65.0±6.98µs 65.5±5.80µs 15.0 Ktx/sec 14.9 Ktx/sec
stdb_module 💿 person multi_index 1000 179.7±101.72µs 240.2±98.91µs 5.4 Ktx/sec 4.1 Ktx/sec
stdb_module 💿 person non_unique 0 50.0±5.02µs 52.3±6.17µs 19.6 Ktx/sec 18.7 Ktx/sec
stdb_module 💿 person non_unique 1000 312.5±74.37µs 200.1±79.11µs 3.1 Ktx/sec 4.9 Ktx/sec
stdb_module 💿 person unique 0 59.1±6.74µs 58.3±7.03µs 16.5 Ktx/sec 16.8 Ktx/sec
stdb_module 💿 person unique 1000 126.7±25.49µs 279.4±67.34µs 7.7 Ktx/sec 3.5 Ktx/sec
stdb_module 🧠 location multi_index 0 40.0±3.61µs 36.9±4.98µs 24.4 Ktx/sec 26.4 Ktx/sec
stdb_module 🧠 location multi_index 1000 113.8±2.01µs 94.3±12.67µs 8.6 Ktx/sec 10.4 Ktx/sec
stdb_module 🧠 location non_unique 0 32.6±3.10µs 31.8±2.22µs 30.0 Ktx/sec 30.7 Ktx/sec
stdb_module 🧠 location non_unique 1000 201.0±12.14µs 185.4±7.67µs 4.9 Ktx/sec 5.3 Ktx/sec
stdb_module 🧠 location unique 0 34.0±3.28µs 33.6±2.44µs 28.7 Ktx/sec 29.0 Ktx/sec
stdb_module 🧠 location unique 1000 105.8±10.26µs 152.3±28.79µs 9.2 Ktx/sec 6.4 Ktx/sec
stdb_module 🧠 person multi_index 0 45.6±5.33µs 49.1±4.01µs 21.4 Ktx/sec 19.9 Ktx/sec
stdb_module 🧠 person multi_index 1000 234.9±6.12µs 202.1±27.17µs 4.2 Ktx/sec 4.8 Ktx/sec
stdb_module 🧠 person non_unique 0 32.7±4.57µs 33.9±2.90µs 29.9 Ktx/sec 28.8 Ktx/sec
stdb_module 🧠 person non_unique 1000 115.1±11.38µs 137.5±2.25µs 8.5 Ktx/sec 7.1 Ktx/sec
stdb_module 🧠 person unique 0 39.4±3.63µs 40.2±4.22µs 24.8 Ktx/sec 24.3 Ktx/sec
stdb_module 🧠 person unique 1000 168.6±30.56µs 122.6±7.75µs 5.8 Ktx/sec 8.0 Ktx/sec
stdb_raw 💿 location multi_index 0 7.1±0.04µs 7.1±0.02µs 136.7 Ktx/sec 138.4 Ktx/sec
stdb_raw 💿 location multi_index 1000 9.6±0.15µs 9.7±0.13µs 101.3 Ktx/sec 100.2 Ktx/sec
stdb_raw 💿 location non_unique 0 4.6±0.01µs 4.6±0.05µs 210.4 Ktx/sec 212.7 Ktx/sec
stdb_raw 💿 location non_unique 1000 6.1±0.12µs 6.2±0.15µs 160.4 Ktx/sec 158.2 Ktx/sec
stdb_raw 💿 location unique 0 6.0±0.02µs 6.0±0.03µs 162.4 Ktx/sec 163.7 Ktx/sec
stdb_raw 💿 location unique 1000 8.2±0.17µs 8.2±0.17µs 118.8 Ktx/sec 119.1 Ktx/sec
stdb_raw 💿 person multi_index 0 11.4±0.02µs 11.3±0.04µs 85.9 Ktx/sec 86.6 Ktx/sec
stdb_raw 💿 person multi_index 1000 56.2±412.47µs 14.9±0.18µs 17.4 Ktx/sec 65.7 Ktx/sec
stdb_raw 💿 person non_unique 0 5.7±0.01µs 5.7±0.01µs 170.3 Ktx/sec 170.6 Ktx/sec
stdb_raw 💿 person non_unique 1000 7.6±0.33µs 25.4±178.32µs 129.3 Ktx/sec 38.4 Ktx/sec
stdb_raw 💿 person unique 0 8.2±0.03µs 8.1±0.02µs 119.5 Ktx/sec 120.8 Ktx/sec
stdb_raw 💿 person unique 1000 10.9±0.16µs 11.0±0.15µs 89.4 Ktx/sec 89.2 Ktx/sec
stdb_raw 🧠 location multi_index 0 4.6±0.01µs 4.5±0.02µs 213.9 Ktx/sec 214.8 Ktx/sec
stdb_raw 🧠 location multi_index 1000 6.4±0.05µs 6.4±0.04µs 153.8 Ktx/sec 153.7 Ktx/sec
stdb_raw 🧠 location non_unique 0 2.2±0.01µs 2.2±0.00µs 450.3 Ktx/sec 446.0 Ktx/sec
stdb_raw 🧠 location non_unique 1000 2.7±0.02µs 2.7±0.02µs 364.9 Ktx/sec 358.2 Ktx/sec
stdb_raw 🧠 location unique 0 3.4±0.01µs 3.5±0.00µs 283.2 Ktx/sec 279.4 Ktx/sec
stdb_raw 🧠 location unique 1000 4.6±0.04µs 4.7±0.03µs 213.4 Ktx/sec 209.6 Ktx/sec
stdb_raw 🧠 person multi_index 0 8.2±0.01µs 8.2±0.03µs 118.7 Ktx/sec 119.3 Ktx/sec
stdb_raw 🧠 person multi_index 1000 10.4±0.07µs 10.4±0.05µs 93.7 Ktx/sec 94.3 Ktx/sec
stdb_raw 🧠 person non_unique 0 2.7±0.01µs 2.7±0.00µs 359.3 Ktx/sec 355.8 Ktx/sec
stdb_raw 🧠 person non_unique 1000 3.5±0.04µs 3.5±0.03µs 279.2 Ktx/sec 281.5 Ktx/sec
stdb_raw 🧠 person unique 0 5.1±0.01µs 5.1±0.01µs 193.1 Ktx/sec 192.8 Ktx/sec
stdb_raw 🧠 person unique 1000 6.5±0.04µs 6.5±0.07µs 150.0 Ktx/sec 149.5 Ktx/sec

Multi-row insertions

db on disk schema index type load count new latency old latency new throughput old throughput
sqlite 💿 location multi_index 0 100 131.8±16.86µs 134.7±0.40µs 7.4 Ktx/sec 7.3 Ktx/sec
sqlite 💿 location multi_index 1000 100 201.2±1.63µs 207.6±2.05µs 4.9 Ktx/sec 4.7 Ktx/sec
sqlite 💿 location non_unique 0 100 48.6±2.63µs 50.8±1.75µs 20.1 Ktx/sec 19.2 Ktx/sec
sqlite 💿 location non_unique 1000 100 51.4±0.48µs 54.0±0.26µs 19.0 Ktx/sec 18.1 Ktx/sec
sqlite 💿 location unique 0 100 51.1±3.39µs 54.4±1.66µs 19.1 Ktx/sec 17.9 Ktx/sec
sqlite 💿 location unique 1000 100 56.5±0.33µs 58.3±0.29µs 17.3 Ktx/sec 16.7 Ktx/sec
sqlite 💿 person multi_index 0 100 116.6±2.40µs 120.2±3.06µs 8.4 Ktx/sec 8.1 Ktx/sec
sqlite 💿 person multi_index 1000 100 227.1±0.53µs 233.6±16.93µs 4.3 Ktx/sec 4.2 Ktx/sec
sqlite 💿 person non_unique 0 100 47.4±1.02µs 48.6±1.13µs 20.6 Ktx/sec 20.1 Ktx/sec
sqlite 💿 person non_unique 1000 100 58.5±0.31µs 60.5±0.50µs 16.7 Ktx/sec 16.1 Ktx/sec
sqlite 💿 person unique 0 100 48.3±1.21µs 51.5±1.08µs 20.2 Ktx/sec 18.9 Ktx/sec
sqlite 💿 person unique 1000 100 53.9±0.30µs 56.7±0.59µs 18.1 Ktx/sec 17.2 Ktx/sec
sqlite 🧠 location multi_index 0 100 120.5±0.65µs 122.2±1.32µs 8.1 Ktx/sec 8.0 Ktx/sec
sqlite 🧠 location multi_index 1000 100 169.9±0.75µs 174.7±0.62µs 5.7 Ktx/sec 5.6 Ktx/sec
sqlite 🧠 location non_unique 0 100 42.4±0.43µs 43.9±0.33µs 23.0 Ktx/sec 22.2 Ktx/sec
sqlite 🧠 location non_unique 1000 100 44.3±0.27µs 45.5±0.33µs 22.0 Ktx/sec 21.5 Ktx/sec
sqlite 🧠 location unique 0 100 45.8±0.32µs 46.8±0.58µs 21.3 Ktx/sec 20.9 Ktx/sec
sqlite 🧠 location unique 1000 100 48.1±0.40µs 49.9±0.26µs 20.3 Ktx/sec 19.6 Ktx/sec
sqlite 🧠 person multi_index 0 100 107.2±0.78µs 109.3±0.47µs 9.1 Ktx/sec 8.9 Ktx/sec
sqlite 🧠 person multi_index 1000 100 186.5±0.46µs 194.0±0.51µs 5.2 Ktx/sec 5.0 Ktx/sec
sqlite 🧠 person non_unique 0 100 41.3±0.36µs 42.8±0.42µs 23.7 Ktx/sec 22.8 Ktx/sec
sqlite 🧠 person non_unique 1000 100 45.0±0.27µs 46.6±0.28µs 21.7 Ktx/sec 20.9 Ktx/sec
sqlite 🧠 person unique 0 100 43.3±0.36µs 44.9±0.37µs 22.6 Ktx/sec 21.7 Ktx/sec
sqlite 🧠 person unique 1000 100 46.7±0.40µs 48.9±0.34µs 20.9 Ktx/sec 20.0 Ktx/sec
stdb_module 💿 location multi_index 0 100 799.5±11.48µs 642.4±70.14µs 1250 tx/sec 1556 tx/sec
stdb_module 💿 location multi_index 1000 100 1092.0±52.44µs 884.6±61.99µs 915 tx/sec 1130 tx/sec
stdb_module 💿 location non_unique 0 100 456.8±19.23µs 451.4±20.47µs 2.1 Ktx/sec 2.2 Ktx/sec
stdb_module 💿 location non_unique 1000 100 469.4±6.04µs 574.4±46.79µs 2.1 Ktx/sec 1740 tx/sec
stdb_module 💿 location unique 0 100 671.2±46.32µs 598.7±86.99µs 1489 tx/sec 1670 tx/sec
stdb_module 💿 location unique 1000 100 882.0±14.08µs 825.7±93.57µs 1133 tx/sec 1211 tx/sec
stdb_module 💿 person multi_index 0 100 1060.1±177.44µs 1107.9±71.97µs 943 tx/sec 902 tx/sec
stdb_module 💿 person multi_index 1000 100 1216.6±109.38µs 1240.6±6.31µs 821 tx/sec 806 tx/sec
stdb_module 💿 person non_unique 0 100 562.2±86.69µs 744.9±52.70µs 1778 tx/sec 1342 tx/sec
stdb_module 💿 person non_unique 1000 100 873.5±60.86µs 816.9±121.52µs 1144 tx/sec 1224 tx/sec
stdb_module 💿 person unique 0 100 762.2±11.17µs 743.7±106.10µs 1311 tx/sec 1344 tx/sec
stdb_module 💿 person unique 1000 100 955.8±65.64µs 841.3±133.98µs 1046 tx/sec 1188 tx/sec
stdb_module 🧠 location multi_index 0 100 465.0±5.68µs 695.9±106.43µs 2.1 Ktx/sec 1437 tx/sec
stdb_module 🧠 location multi_index 1000 100 668.6±97.57µs 722.2±94.85µs 1495 tx/sec 1384 tx/sec
stdb_module 🧠 location non_unique 0 100 335.9±11.32µs 393.8±8.57µs 2.9 Ktx/sec 2.5 Ktx/sec
stdb_module 🧠 location non_unique 1000 100 371.0±5.28µs 459.3±12.10µs 2.6 Ktx/sec 2.1 Ktx/sec
stdb_module 🧠 location unique 0 100 569.7±83.86µs 460.4±79.86µs 1755 tx/sec 2.1 Ktx/sec
stdb_module 🧠 location unique 1000 100 540.3±76.59µs 509.2±6.86µs 1850 tx/sec 1963 tx/sec
stdb_module 🧠 person multi_index 0 100 909.9±81.82µs 878.9±25.06µs 1098 tx/sec 1137 tx/sec
stdb_module 🧠 person multi_index 1000 100 995.8±17.75µs 1177.5±114.66µs 1004 tx/sec 849 tx/sec
stdb_module 🧠 person non_unique 0 100 391.9±1.59µs 372.7±105.36µs 2.5 Ktx/sec 2.6 Ktx/sec
stdb_module 🧠 person non_unique 1000 100 492.4±37.96µs 523.0±32.78µs 2030 tx/sec 1912 tx/sec
stdb_module 🧠 person unique 0 100 615.2±69.23µs 635.3±10.57µs 1625 tx/sec 1574 tx/sec
stdb_module 🧠 person unique 1000 100 755.9±2.71µs 880.4±72.15µs 1323 tx/sec 1135 tx/sec
stdb_raw 💿 location multi_index 0 100 351.0±28.42µs 343.2±0.86µs 2.8 Ktx/sec 2.8 Ktx/sec
stdb_raw 💿 location multi_index 1000 100 371.9±1.34µs 367.6±1.28µs 2.6 Ktx/sec 2.7 Ktx/sec
stdb_raw 💿 location non_unique 0 100 119.2±0.17µs 119.9±8.95µs 8.2 Ktx/sec 8.1 Ktx/sec
stdb_raw 💿 location non_unique 1000 100 125.2±34.53µs 132.7±112.75µs 7.8 Ktx/sec 7.4 Ktx/sec
stdb_raw 💿 location unique 0 100 241.5±0.23µs 243.5±0.28µs 4.0 Ktx/sec 4.0 Ktx/sec
stdb_raw 💿 location unique 1000 100 259.6±1.45µs 279.4±188.45µs 3.8 Ktx/sec 3.5 Ktx/sec
stdb_raw 💿 person multi_index 0 100 716.0±2.59µs 706.9±12.16µs 1396 tx/sec 1414 tx/sec
stdb_raw 💿 person multi_index 1000 100 745.6±2.84µs 735.5±1.09µs 1341 tx/sec 1359 tx/sec
stdb_raw 💿 person non_unique 0 100 219.3±0.44µs 219.0±0.23µs 4.5 Ktx/sec 4.5 Ktx/sec
stdb_raw 💿 person non_unique 1000 100 221.8±0.40µs 221.6±0.24µs 4.4 Ktx/sec 4.4 Ktx/sec
stdb_raw 💿 person unique 0 100 429.9±15.22µs 428.8±0.35µs 2.3 Ktx/sec 2.3 Ktx/sec
stdb_raw 💿 person unique 1000 100 446.1±0.72µs 446.3±0.72µs 2.2 Ktx/sec 2.2 Ktx/sec
stdb_raw 🧠 location multi_index 0 100 303.5±0.48µs 301.7±0.55µs 3.2 Ktx/sec 3.2 Ktx/sec
stdb_raw 🧠 location multi_index 1000 100 327.4±0.44µs 325.7±0.48µs 3.0 Ktx/sec 3.0 Ktx/sec
stdb_raw 🧠 location non_unique 0 100 75.4±0.10µs 75.9±0.07µs 12.9 Ktx/sec 12.9 Ktx/sec
stdb_raw 🧠 location non_unique 1000 100 76.7±0.22µs 77.1±0.07µs 12.7 Ktx/sec 12.7 Ktx/sec
stdb_raw 🧠 location unique 0 100 198.6±0.67µs 200.6±0.28µs 4.9 Ktx/sec 4.9 Ktx/sec
stdb_raw 🧠 location unique 1000 100 216.2±0.50µs 217.4±0.42µs 4.5 Ktx/sec 4.5 Ktx/sec
stdb_raw 🧠 person multi_index 0 100 621.9±0.70µs 615.5±0.52µs 1607 tx/sec 1624 tx/sec
stdb_raw 🧠 person multi_index 1000 100 650.1±1.06µs 641.3±0.58µs 1538 tx/sec 1559 tx/sec
stdb_raw 🧠 person non_unique 0 100 127.1±0.16µs 127.2±0.27µs 7.7 Ktx/sec 7.7 Ktx/sec
stdb_raw 🧠 person non_unique 1000 100 129.6±0.45µs 129.7±0.35µs 7.5 Ktx/sec 7.5 Ktx/sec
stdb_raw 🧠 person unique 0 100 335.7±0.61µs 337.0±1.95µs 2.9 Ktx/sec 2.9 Ktx/sec
stdb_raw 🧠 person unique 1000 100 353.6±0.83µs 354.9±0.92µs 2.8 Ktx/sec 2.8 Ktx/sec

Full table iterate

db on disk schema index type new latency old latency new throughput old throughput
sqlite 💿 location unique 8.0±0.04µs 9.5±0.13µs 121.4 Ktx/sec 102.7 Ktx/sec
sqlite 💿 person unique 8.8±0.13µs 9.9±0.10µs 110.8 Ktx/sec 98.4 Ktx/sec
sqlite 🧠 location unique 6.8±0.06µs 8.2±0.12µs 143.1 Ktx/sec 119.1 Ktx/sec
sqlite 🧠 person unique 7.6±0.11µs 8.7±0.07µs 128.3 Ktx/sec 112.1 Ktx/sec
stdb_module 💿 location unique 55.0±7.49µs 59.3±4.87µs 17.8 Ktx/sec 16.5 Ktx/sec
stdb_module 💿 person unique 63.2±10.68µs 69.9±14.40µs 15.4 Ktx/sec 14.0 Ktx/sec
stdb_module 🧠 location unique 58.6±6.95µs 58.4±7.86µs 16.7 Ktx/sec 16.7 Ktx/sec
stdb_module 🧠 person unique 66.6±11.28µs 64.7±11.25µs 14.7 Ktx/sec 15.1 Ktx/sec
stdb_raw 💿 location unique 13.0±0.12µs 9.5±0.14µs 75.1 Ktx/sec 103.2 Ktx/sec
stdb_raw 💿 person unique 13.1±0.27µs 9.4±0.01µs 74.6 Ktx/sec 103.5 Ktx/sec
stdb_raw 🧠 location unique 12.3±1.02µs 9.4±0.04µs 79.1 Ktx/sec 104.1 Ktx/sec
stdb_raw 🧠 person unique 13.0±0.13µs 9.4±0.01µs 75.1 Ktx/sec 104.0 Ktx/sec

Find unique key

db on disk key type load new latency old latency new throughput old throughput
sqlite 💿 u32 1000 2.3±0.01µs 2.3±0.00µs 430.9 Ktx/sec 415.7 Ktx/sec
sqlite 🧠 u32 1000 1103.2±5.02ns 1138.3±6.98ns 885.2 Ktx/sec 857.9 Ktx/sec
stdb_module 💿 u32 1000 24.4±1.91µs 25.4±1.90µs 40.0 Ktx/sec 38.5 Ktx/sec
stdb_module 🧠 u32 1000 24.0±1.73µs 25.3±2.00µs 40.6 Ktx/sec 38.6 Ktx/sec
stdb_raw 💿 u32 1000 2.2±0.00µs 2.1±0.00µs 448.5 Ktx/sec 454.6 Ktx/sec
stdb_raw 🧠 u32 1000 2.1±0.01µs 2.1±0.00µs 460.1 Ktx/sec 471.3 Ktx/sec

Filter

db on disk key type index strategy load count new latency old latency new throughput old throughput
sqlite 💿 string indexed 1000 10 5.5±0.01µs 5.6±0.01µs 177.0 Ktx/sec 175.0 Ktx/sec
sqlite 💿 string non_indexed 1000 10 47.1±0.19µs 54.0±0.23µs 20.7 Ktx/sec 18.1 Ktx/sec
sqlite 💿 u64 indexed 1000 10 5.2±0.02µs 5.4±0.01µs 187.6 Ktx/sec 181.8 Ktx/sec
sqlite 💿 u64 non_indexed 1000 10 32.9±0.06µs 33.6±0.18µs 29.7 Ktx/sec 29.1 Ktx/sec
sqlite 🧠 string indexed 1000 10 4.1±0.01µs 4.2±0.03µs 238.7 Ktx/sec 232.1 Ktx/sec
sqlite 🧠 string non_indexed 1000 10 45.6±0.18µs 52.6±0.29µs 21.4 Ktx/sec 18.6 Ktx/sec
sqlite 🧠 u64 indexed 1000 10 3.9±0.01µs 4.0±0.02µs 251.1 Ktx/sec 244.4 Ktx/sec
sqlite 🧠 u64 non_indexed 1000 10 31.6±0.06µs 32.2±0.13µs 30.9 Ktx/sec 30.4 Ktx/sec
stdb_module 💿 string indexed 1000 10 38.3±2.22µs 38.1±3.64µs 25.5 Ktx/sec 25.6 Ktx/sec
stdb_module 💿 string non_indexed 1000 10 202.0±2.03µs 186.2±10.44µs 4.8 Ktx/sec 5.2 Ktx/sec
stdb_module 💿 u64 indexed 1000 10 34.1±2.03µs 34.7±2.16µs 28.6 Ktx/sec 28.1 Ktx/sec
stdb_module 💿 u64 non_indexed 1000 10 184.2±34.72µs 150.7±7.95µs 5.3 Ktx/sec 6.5 Ktx/sec
stdb_module 🧠 string indexed 1000 10 36.0±2.80µs 39.0±3.20µs 27.2 Ktx/sec 25.0 Ktx/sec
stdb_module 🧠 string non_indexed 1000 10 198.7±4.31µs 174.6±1.69µs 4.9 Ktx/sec 5.6 Ktx/sec
stdb_module 🧠 u64 indexed 1000 10 34.5±2.39µs 34.5±1.51µs 28.3 Ktx/sec 28.3 Ktx/sec
stdb_module 🧠 u64 non_indexed 1000 10 172.3±0.86µs 152.3±5.90µs 5.7 Ktx/sec 6.4 Ktx/sec
stdb_raw 💿 string indexed 1000 10 4.8±0.01µs 4.7±0.01µs 203.9 Ktx/sec 206.8 Ktx/sec
stdb_raw 💿 string non_indexed 1000 10 170.4±0.98µs 149.7±0.37µs 5.7 Ktx/sec 6.5 Ktx/sec
stdb_raw 💿 u64 indexed 1000 10 4.7±0.01µs 4.6±0.01µs 208.5 Ktx/sec 212.1 Ktx/sec
stdb_raw 💿 u64 non_indexed 1000 10 149.6±0.38µs 123.5±0.25µs 6.5 Ktx/sec 7.9 Ktx/sec
stdb_raw 🧠 string indexed 1000 10 4.7±0.02µs 4.6±0.01µs 207.2 Ktx/sec 210.1 Ktx/sec
stdb_raw 🧠 string non_indexed 1000 10 179.6±0.59µs 166.3±1.87µs 5.4 Ktx/sec 5.9 Ktx/sec
stdb_raw 🧠 u64 indexed 1000 10 4.6±0.01µs 4.6±0.01µs 211.2 Ktx/sec 214.5 Ktx/sec
stdb_raw 🧠 u64 non_indexed 1000 10 157.5±0.35µs 135.1±0.20µs 6.2 Ktx/sec 7.2 Ktx/sec

Serialize

schema format count new latency old latency new throughput old throughput
location bsatn 100 1671.9±35.60ns 1765.4±34.76ns 57.0 Mtx/sec 54.0 Mtx/sec
location json 100 3.1±0.02µs 4.2±0.00µs 30.5 Mtx/sec 22.8 Mtx/sec
location product_value 100 605.4±0.36ns 574.8±0.35ns 157.5 Mtx/sec 165.9 Mtx/sec
person bsatn 100 3.1±0.01µs 2.9±0.01µs 31.0 Mtx/sec 33.1 Mtx/sec
person json 100 5.0±0.05µs 5.3±0.04µs 19.1 Mtx/sec 17.9 Mtx/sec
person product_value 100 1009.2±2.45ns 1030.9±1.40ns 94.5 Mtx/sec 92.5 Mtx/sec

Module: invoke with large arguments

arg size new latency old latency new throughput old throughput
64KiB 73.6±7.08µs 69.8±6.27µs - -

Module: print bulk

line count new latency old latency new throughput old throughput
1 22.5±1.09µs 22.9±1.45µs - -
100 187.1±3.61µs 188.1±47.06µs - -
1000 1753.9±259.00µs 1816.3±54.03µs - -

Remaining benchmarks

name new latency old latency new throughput old throughput

Please sign in to comment.