Skip to content

Commit

Permalink
Version upgrade to v0.7.3 (#536)
Browse files Browse the repository at this point in the history
Co-authored-by: John Detter <no-reply@boppygames.gg>
  • Loading branch information
jdetter and John Detter authored Nov 8, 2023
1 parent 9062843 commit dff23de
Show file tree
Hide file tree
Showing 25 changed files with 78 additions and 78 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.2
Licensed Work: SpacetimeDB 0.7.3
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.2"
version = "0.7.3"
edition = "2021"
license-file = "LICENSE"
description = "Bench library/utility for SpacetimeDB"
Expand Down
2 changes: 1 addition & 1 deletion 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.2"
version = "0.7.3"
edition = "2021"
license-file = "LICENSE"
description = "Easy support for interacting between SpacetimeDB and Rust."
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.2"
version = "0.7.3"
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.2" }
spacetimedb-primitives = { path = "../primitives", version = "0.7.3" }
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.2"
version = "0.7.3"
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.2" }
spacetimedb-lib = { path = "../lib", default-features = false, version = "0.7.2"}
spacetimedb-bindings-macro = { path = "../bindings-macro", version = "0.7.2"}
spacetimedb-primitives = { path = "../primitives", version = "0.7.2" }
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" }

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.2"
version = "0.7.3"
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.2" }
spacetimedb-lib = { path = "../lib", version = "0.7.2", features = ["cli"] }
spacetimedb-standalone = { path = "../standalone", version = "0.7.2", optional = true }
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 }

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.2"
spacetimedb = "0.7.3"
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.2"
version = "0.7.3"
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.2"
version = "0.7.3"
edition = "2021"
license-file = "LICENSE"
description = "The HTTP API for SpacetimeDB"

[dependencies]
spacetimedb-core = { path = "../core", version = "0.7.2" }
spacetimedb-core = { path = "../core", version = "0.7.3" }
tokio = { version = "1.2", features = ["full"] }
lazy_static = "1.4.0"
spacetimedb-lib = { path = "../lib", version = "0.7.2" }
spacetimedb-lib = { path = "../lib", version = "0.7.3" }
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.2"
version = "0.7.3"
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.2" }
spacetimedb-sats = { path = "../sats", version = "0.7.2" }
spacetimedb-vm = { path = "../vm", version = "0.7.2" }
spacetimedb-client-api-messages = { path = "../client-api-messages", version = "0.7.2" }
spacetimedb-primitives = { path = "../primitives", version = "0.7.2" }
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" }

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.2"
version = "0.7.3"
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.2"
version = "0.7.3"
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.2" }
spacetimedb-sats = { path = "../sats", version = "0.7.2" }
spacetimedb-primitives = { path = "../primitives", version = "0.7.2" }
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" }

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.2"
version = "0.7.3"
edition = "2021"
license-file = "LICENSE"
description = "Primitives such as TableId and ColumnIndexAttribute"
Expand Down
6 changes: 3 additions & 3 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.2"
version = "0.7.3"
edition = "2021"
license-file = "LICENSE"
description = "Spacetime Algebraic Type Notation"
Expand All @@ -11,8 +11,8 @@ description = "Spacetime Algebraic Type Notation"
serde = ["dep:serde", "hex"]

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

arrayvec.workspace = true
decorum.workspace = true
Expand Down
8 changes: 4 additions & 4 deletions crates/sdk/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
[package]
name = "spacetimedb-sdk"
version = "0.7.2"
version = "0.7.3"
edition = "2021"
license-file = "LICENSE"
description = "A Rust SDK for clients to interface with SpacetimeDB"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

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

anyhow.workspace = true
anymap.workspace = true
Expand Down
Loading

1 comment on commit dff23de

@github-actions
Copy link

@github-actions github-actions bot commented on dff23de Nov 8, 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 💿 447.1±1.54ns 432.9±1.65ns - -
sqlite 🧠 437.2±1.47ns 428.0±1.72ns - -
stdb_module 💿 18.0±1.03µs 18.1±1.16µs - -
stdb_module 🧠 18.1±1.45µs 17.8±1.35µs - -
stdb_raw 💿 714.5±1.94ns 717.0±0.94ns - -
stdb_raw 🧠 710.5±1.91ns 716.0±0.80ns - -

Single-row insertions

db on disk schema index type load new latency old latency new throughput old throughput
sqlite 💿 location multi_index 0 15.0±1.53µs 15.0±0.52µs 65.2 Ktx/sec 65.2 Ktx/sec
sqlite 💿 location multi_index 1000 15.9±0.11µs 16.0±0.10µs 61.3 Ktx/sec 61.1 Ktx/sec
sqlite 💿 location non_unique 0 7.2±0.04µs 7.2±0.26µs 136.1 Ktx/sec 135.4 Ktx/sec
sqlite 💿 location non_unique 1000 7.0±0.03µs 7.2±0.05µs 138.9 Ktx/sec 136.1 Ktx/sec
sqlite 💿 location unique 0 7.5±0.23µs 7.2±0.03µs 129.5 Ktx/sec 136.1 Ktx/sec
sqlite 💿 location unique 1000 7.1±0.06µs 7.2±0.03µs 137.1 Ktx/sec 135.8 Ktx/sec
sqlite 💿 person multi_index 0 14.7±0.58µs 15.0±2.10µs 66.6 Ktx/sec 65.2 Ktx/sec
sqlite 💿 person multi_index 1000 16.3±0.11µs 16.4±0.11µs 60.0 Ktx/sec 59.7 Ktx/sec
sqlite 💿 person non_unique 0 7.4±0.63µs 7.3±0.03µs 132.1 Ktx/sec 134.0 Ktx/sec
sqlite 💿 person non_unique 1000 7.3±0.03µs 7.3±0.04µs 134.2 Ktx/sec 133.0 Ktx/sec
sqlite 💿 person unique 0 7.4±0.68µs 7.3±0.45µs 132.5 Ktx/sec 132.9 Ktx/sec
sqlite 💿 person unique 1000 7.2±0.05µs 7.4±0.05µs 135.2 Ktx/sec 132.2 Ktx/sec
sqlite 🧠 location multi_index 0 4.0±0.01µs 4.0±0.01µs 242.4 Ktx/sec 243.1 Ktx/sec
sqlite 🧠 location multi_index 1000 5.2±0.03µs 5.3±0.06µs 188.4 Ktx/sec 184.8 Ktx/sec
sqlite 🧠 location non_unique 0 1814.9±4.06ns 1890.5±5.89ns 538.1 Ktx/sec 516.6 Ktx/sec
sqlite 🧠 location non_unique 1000 1852.0±10.07ns 1935.2±18.57ns 527.3 Ktx/sec 504.6 Ktx/sec
sqlite 🧠 location unique 0 1792.3±9.52ns 1865.5±6.73ns 544.9 Ktx/sec 523.5 Ktx/sec
sqlite 🧠 location unique 1000 1917.3±15.13ns 2.0±0.02µs 509.4 Ktx/sec 487.1 Ktx/sec
sqlite 🧠 person multi_index 0 3.6±0.02µs 3.7±0.01µs 269.6 Ktx/sec 265.9 Ktx/sec
sqlite 🧠 person multi_index 1000 5.4±0.06µs 5.4±0.06µs 182.1 Ktx/sec 179.5 Ktx/sec
sqlite 🧠 person non_unique 0 1904.0±5.44ns 1946.1±9.71ns 512.9 Ktx/sec 501.8 Ktx/sec
sqlite 🧠 person non_unique 1000 1957.1±11.33ns 2.1±0.02µs 499.0 Ktx/sec 474.8 Ktx/sec
sqlite 🧠 person unique 0 1877.0±8.12ns 1942.8±6.75ns 520.3 Ktx/sec 502.7 Ktx/sec
sqlite 🧠 person unique 1000 1996.3±15.32ns 2.1±0.02µs 489.2 Ktx/sec 466.7 Ktx/sec
stdb_module 💿 location multi_index 0 59.1±3.83µs 60.1±6.12µs 16.5 Ktx/sec 16.3 Ktx/sec
stdb_module 💿 location multi_index 1000 264.6±5.28µs 86.4±32.69µs 3.7 Ktx/sec 11.3 Ktx/sec
stdb_module 💿 location non_unique 0 49.9±4.53µs 49.4±3.08µs 19.6 Ktx/sec 19.8 Ktx/sec
stdb_module 💿 location non_unique 1000 250.6±15.60µs 114.7±15.59µs 3.9 Ktx/sec 8.5 Ktx/sec
stdb_module 💿 location unique 0 56.8±3.71µs 55.8±4.31µs 17.2 Ktx/sec 17.5 Ktx/sec
stdb_module 💿 location unique 1000 264.2±8.14µs 260.5±104.82µs 3.7 Ktx/sec 3.7 Ktx/sec
stdb_module 💿 person multi_index 0 62.8±5.22µs 67.7±3.93µs 15.5 Ktx/sec 14.4 Ktx/sec
stdb_module 💿 person multi_index 1000 165.9±119.38µs 250.5±123.97µs 5.9 Ktx/sec 3.9 Ktx/sec
stdb_module 💿 person non_unique 0 50.2±5.61µs 47.1±6.43µs 19.5 Ktx/sec 20.7 Ktx/sec
stdb_module 💿 person non_unique 1000 170.1±35.12µs 316.3±9.31µs 5.7 Ktx/sec 3.1 Ktx/sec
stdb_module 💿 person unique 0 58.8±6.03µs 54.8±7.79µs 16.6 Ktx/sec 17.8 Ktx/sec
stdb_module 💿 person unique 1000 136.0±32.75µs 248.6±71.54µs 7.2 Ktx/sec 3.9 Ktx/sec
stdb_module 🧠 location multi_index 0 38.6±3.77µs 37.6±3.11µs 25.3 Ktx/sec 26.0 Ktx/sec
stdb_module 🧠 location multi_index 1000 141.0±34.66µs 186.9±42.74µs 6.9 Ktx/sec 5.2 Ktx/sec
stdb_module 🧠 location non_unique 0 31.4±2.19µs 31.6±2.03µs 31.1 Ktx/sec 30.9 Ktx/sec
stdb_module 🧠 location non_unique 1000 108.5±3.18µs 107.5±2.44µs 9.0 Ktx/sec 9.1 Ktx/sec
stdb_module 🧠 location unique 0 34.6±3.46µs 34.7±2.61µs 28.2 Ktx/sec 28.1 Ktx/sec
stdb_module 🧠 location unique 1000 187.5±6.68µs 124.8±7.04µs 5.2 Ktx/sec 7.8 Ktx/sec
stdb_module 🧠 person multi_index 0 44.0±5.12µs 45.1±4.29µs 22.2 Ktx/sec 21.6 Ktx/sec
stdb_module 🧠 person multi_index 1000 177.8±33.98µs 193.5±9.25µs 5.5 Ktx/sec 5.0 Ktx/sec
stdb_module 🧠 person non_unique 0 32.7±2.83µs 33.5±3.37µs 29.8 Ktx/sec 29.2 Ktx/sec
stdb_module 🧠 person non_unique 1000 196.5±19.61µs 267.2±10.15µs 5.0 Ktx/sec 3.7 Ktx/sec
stdb_module 🧠 person unique 0 37.6±3.00µs 38.5±2.77µs 26.0 Ktx/sec 25.3 Ktx/sec
stdb_module 🧠 person unique 1000 263.4±13.36µs 206.5±19.28µs 3.7 Ktx/sec 4.7 Ktx/sec
stdb_raw 💿 location multi_index 0 7.3±0.02µs 7.2±0.03µs 134.7 Ktx/sec 135.3 Ktx/sec
stdb_raw 💿 location multi_index 1000 9.9±0.39µs 9.9±0.14µs 98.2 Ktx/sec 99.0 Ktx/sec
stdb_raw 💿 location non_unique 0 4.8±0.02µs 4.8±0.02µs 203.0 Ktx/sec 201.5 Ktx/sec
stdb_raw 💿 location non_unique 1000 17.5±113.08µs 6.4±0.14µs 55.9 Ktx/sec 152.9 Ktx/sec
stdb_raw 💿 location unique 0 6.2±0.03µs 6.2±0.29µs 158.7 Ktx/sec 158.5 Ktx/sec
stdb_raw 💿 location unique 1000 8.5±0.14µs 26.1±176.43µs 115.3 Ktx/sec 37.4 Ktx/sec
stdb_raw 💿 person multi_index 0 10.9±0.03µs 10.9±0.04µs 89.5 Ktx/sec 89.8 Ktx/sec
stdb_raw 💿 person multi_index 1000 77.6±449.91µs 14.1±0.16µs 12.6 Ktx/sec 69.4 Ktx/sec
stdb_raw 💿 person non_unique 0 5.4±0.02µs 5.4±0.02µs 181.1 Ktx/sec 181.0 Ktx/sec
stdb_raw 💿 person non_unique 1000 17.8±107.83µs 7.1±0.24µs 54.8 Ktx/sec 137.9 Ktx/sec
stdb_raw 💿 person unique 0 7.8±0.32µs 7.7±0.03µs 125.5 Ktx/sec 126.4 Ktx/sec
stdb_raw 💿 person unique 1000 33.8±235.59µs 33.5±234.10µs 28.9 Ktx/sec 29.1 Ktx/sec
stdb_raw 🧠 location multi_index 0 4.2±0.01µs 4.2±0.01µs 232.5 Ktx/sec 232.1 Ktx/sec
stdb_raw 🧠 location multi_index 1000 5.8±0.04µs 5.8±0.03µs 168.4 Ktx/sec 167.0 Ktx/sec
stdb_raw 🧠 location non_unique 0 1935.9±6.50ns 1972.7±6.47ns 504.4 Ktx/sec 495.0 Ktx/sec
stdb_raw 🧠 location non_unique 1000 2.4±0.01µs 2.4±0.01µs 406.7 Ktx/sec 402.3 Ktx/sec
stdb_raw 🧠 location unique 0 3.2±0.01µs 3.2±0.01µs 303.9 Ktx/sec 308.1 Ktx/sec
stdb_raw 🧠 location unique 1000 4.3±0.03µs 4.4±0.04µs 226.2 Ktx/sec 224.3 Ktx/sec
stdb_raw 🧠 person multi_index 0 7.8±0.05µs 7.8±0.02µs 125.1 Ktx/sec 125.1 Ktx/sec
stdb_raw 🧠 person multi_index 1000 9.9±0.05µs 9.9±0.09µs 98.3 Ktx/sec 98.2 Ktx/sec
stdb_raw 🧠 person non_unique 0 2.5±0.01µs 2.5±0.01µs 387.3 Ktx/sec 384.1 Ktx/sec
stdb_raw 🧠 person non_unique 1000 3.2±0.03µs 3.3±0.03µs 303.5 Ktx/sec 300.1 Ktx/sec
stdb_raw 🧠 person unique 0 4.7±0.01µs 4.7±0.01µs 205.9 Ktx/sec 209.2 Ktx/sec
stdb_raw 🧠 person unique 1000 6.3±0.03µs 6.2±0.03µs 155.3 Ktx/sec 158.6 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 133.2±0.44µs 130.6±0.39µs 7.3 Ktx/sec 7.5 Ktx/sec
sqlite 💿 location multi_index 1000 100 206.1±1.43µs 204.0±1.38µs 4.7 Ktx/sec 4.8 Ktx/sec
sqlite 💿 location non_unique 0 100 51.4±1.04µs 49.9±1.65µs 19.0 Ktx/sec 19.6 Ktx/sec
sqlite 💿 location non_unique 1000 100 52.7±0.34µs 53.2±0.26µs 18.5 Ktx/sec 18.4 Ktx/sec
sqlite 💿 location unique 0 100 52.0±0.44µs 51.6±0.24µs 18.8 Ktx/sec 18.9 Ktx/sec
sqlite 💿 location unique 1000 100 56.2±0.25µs 56.2±0.38µs 17.4 Ktx/sec 17.4 Ktx/sec
sqlite 💿 person multi_index 0 100 118.0±3.60µs 118.0±2.93µs 8.3 Ktx/sec 8.3 Ktx/sec
sqlite 💿 person multi_index 1000 100 235.7±2.20µs 231.9±0.56µs 4.1 Ktx/sec 4.2 Ktx/sec
sqlite 💿 person non_unique 0 100 48.8±0.46µs 48.7±0.33µs 20.0 Ktx/sec 20.0 Ktx/sec
sqlite 💿 person non_unique 1000 100 60.4±0.31µs 60.6±0.27µs 16.2 Ktx/sec 16.1 Ktx/sec
sqlite 💿 person unique 0 100 48.9±1.23µs 51.0±1.19µs 20.0 Ktx/sec 19.1 Ktx/sec
sqlite 💿 person unique 1000 100 55.0±0.43µs 57.6±10.05µs 17.7 Ktx/sec 17.0 Ktx/sec
sqlite 🧠 location multi_index 0 100 123.5±0.29µs 119.1±0.36µs 7.9 Ktx/sec 8.2 Ktx/sec
sqlite 🧠 location multi_index 1000 100 172.2±0.52µs 169.9±0.69µs 5.7 Ktx/sec 5.7 Ktx/sec
sqlite 🧠 location non_unique 0 100 44.2±0.58µs 43.9±0.36µs 22.1 Ktx/sec 22.2 Ktx/sec
sqlite 🧠 location non_unique 1000 100 44.3±0.56µs 45.3±0.38µs 22.0 Ktx/sec 21.5 Ktx/sec
sqlite 🧠 location unique 0 100 45.9±0.41µs 46.0±0.72µs 21.3 Ktx/sec 21.2 Ktx/sec
sqlite 🧠 location unique 1000 100 48.9±0.28µs 49.4±0.40µs 20.0 Ktx/sec 19.8 Ktx/sec
sqlite 🧠 person multi_index 0 100 105.8±0.48µs 106.6±0.85µs 9.2 Ktx/sec 9.2 Ktx/sec
sqlite 🧠 person multi_index 1000 100 187.8±0.27µs 189.2±0.41µs 5.2 Ktx/sec 5.2 Ktx/sec
sqlite 🧠 person non_unique 0 100 42.1±0.34µs 41.6±0.21µs 23.2 Ktx/sec 23.5 Ktx/sec
sqlite 🧠 person non_unique 1000 100 45.3±0.28µs 45.9±0.26µs 21.6 Ktx/sec 21.3 Ktx/sec
sqlite 🧠 person unique 0 100 42.9±0.45µs 44.3±0.37µs 22.8 Ktx/sec 22.0 Ktx/sec
sqlite 🧠 person unique 1000 100 46.4±0.37µs 48.7±0.39µs 21.0 Ktx/sec 20.1 Ktx/sec
stdb_module 💿 location multi_index 0 100 1082.0±6.50µs 1023.8±4.18µs 924 tx/sec 976 tx/sec
stdb_module 💿 location multi_index 1000 100 1308.3±8.82µs 1015.1±35.74µs 764 tx/sec 985 tx/sec
stdb_module 💿 location non_unique 0 100 516.6±97.65µs 419.4±2.43µs 1935 tx/sec 2.3 Ktx/sec
stdb_module 💿 location non_unique 1000 100 843.8±31.45µs 472.2±59.45µs 1185 tx/sec 2.1 Ktx/sec
stdb_module 💿 location unique 0 100 684.7±110.04µs 762.8±121.04µs 1460 tx/sec 1311 tx/sec
stdb_module 💿 location unique 1000 100 706.4±17.18µs 587.1±3.45µs 1415 tx/sec 1703 tx/sec
stdb_module 💿 person multi_index 0 100 1099.8±17.04µs 1093.6±30.67µs 909 tx/sec 914 tx/sec
stdb_module 💿 person multi_index 1000 100 1347.0±67.42µs 1143.4±3.15µs 742 tx/sec 874 tx/sec
stdb_module 💿 person non_unique 0 100 721.3±121.33µs 632.9±22.24µs 1386 tx/sec 1580 tx/sec
stdb_module 💿 person non_unique 1000 100 816.2±66.51µs 885.1±10.27µs 1225 tx/sec 1129 tx/sec
stdb_module 💿 person unique 0 100 900.2±52.14µs 738.2±35.63µs 1110 tx/sec 1354 tx/sec
stdb_module 💿 person unique 1000 100 1000.7±358.84µs 818.7±5.00µs 999 tx/sec 1221 tx/sec
stdb_module 🧠 location multi_index 0 100 678.3±68.92µs 758.6±30.21µs 1474 tx/sec 1318 tx/sec
stdb_module 🧠 location multi_index 1000 100 491.9±1.85µs 846.1±60.06µs 2032 tx/sec 1181 tx/sec
stdb_module 🧠 location non_unique 0 100 334.2±3.18µs 352.2±25.75µs 2.9 Ktx/sec 2.8 Ktx/sec
stdb_module 🧠 location non_unique 1000 100 365.4±19.73µs 466.3±5.77µs 2.7 Ktx/sec 2.1 Ktx/sec
stdb_module 🧠 location unique 0 100 447.7±25.79µs 606.7±5.91µs 2.2 Ktx/sec 1648 tx/sec
stdb_module 🧠 location unique 1000 100 479.0±44.05µs 499.9±57.12µs 2.0 Ktx/sec 2000 tx/sec
stdb_module 🧠 person multi_index 0 100 824.2±9.70µs 801.8±8.57µs 1213 tx/sec 1247 tx/sec
stdb_module 🧠 person multi_index 1000 100 1100.2±89.15µs 887.4±25.28µs 908 tx/sec 1126 tx/sec
stdb_module 🧠 person non_unique 0 100 367.8±6.59µs 293.2±11.40µs 2.7 Ktx/sec 3.3 Ktx/sec
stdb_module 🧠 person non_unique 1000 100 438.2±17.25µs 342.1±4.98µs 2.2 Ktx/sec 2.9 Ktx/sec
stdb_module 🧠 person unique 0 100 520.0±15.26µs 653.1±61.12µs 1923 tx/sec 1531 tx/sec
stdb_module 🧠 person unique 1000 100 570.2±4.50µs 803.6±6.25µs 1753 tx/sec 1244 tx/sec
stdb_raw 💿 location multi_index 0 100 404.5±3.85µs 406.4±2.29µs 2.4 Ktx/sec 2.4 Ktx/sec
stdb_raw 💿 location multi_index 1000 100 430.8±1.64µs 431.1±1.47µs 2.3 Ktx/sec 2.3 Ktx/sec
stdb_raw 💿 location non_unique 0 100 175.1±0.32µs 173.8±0.32µs 5.6 Ktx/sec 5.6 Ktx/sec
stdb_raw 💿 location non_unique 1000 100 189.6±117.58µs 176.6±1.68µs 5.2 Ktx/sec 5.5 Ktx/sec
stdb_raw 💿 location unique 0 100 300.1±8.43µs 298.4±0.47µs 3.3 Ktx/sec 3.3 Ktx/sec
stdb_raw 💿 location unique 1000 100 337.2±184.80µs 332.3±151.36µs 2.9 Ktx/sec 2.9 Ktx/sec
stdb_raw 💿 person multi_index 0 100 723.0±0.83µs 721.9±1.20µs 1383 tx/sec 1385 tx/sec
stdb_raw 💿 person multi_index 1000 100 750.8±0.86µs 750.8±0.84µs 1331 tx/sec 1331 tx/sec
stdb_raw 💿 person non_unique 0 100 230.4±0.51µs 229.2±0.28µs 4.2 Ktx/sec 4.3 Ktx/sec
stdb_raw 💿 person non_unique 1000 100 232.8±0.45µs 232.4±2.77µs 4.2 Ktx/sec 4.2 Ktx/sec
stdb_raw 💿 person unique 0 100 438.8±0.35µs 437.1±3.49µs 2.2 Ktx/sec 2.2 Ktx/sec
stdb_raw 💿 person unique 1000 100 456.5±1.41µs 455.3±0.99µs 2.1 Ktx/sec 2.1 Ktx/sec
stdb_raw 🧠 location multi_index 0 100 306.6±1.17µs 309.1±0.58µs 3.2 Ktx/sec 3.2 Ktx/sec
stdb_raw 🧠 location multi_index 1000 100 331.2±0.49µs 332.2±0.57µs 2.9 Ktx/sec 2.9 Ktx/sec
stdb_raw 🧠 location non_unique 0 100 78.7±0.13µs 79.0±0.13µs 12.4 Ktx/sec 12.4 Ktx/sec
stdb_raw 🧠 location non_unique 1000 100 79.9±0.15µs 79.5±0.21µs 12.2 Ktx/sec 12.3 Ktx/sec
stdb_raw 🧠 location unique 0 100 202.6±0.29µs 201.1±0.31µs 4.8 Ktx/sec 4.9 Ktx/sec
stdb_raw 🧠 location unique 1000 100 220.5±0.35µs 220.3±0.40µs 4.4 Ktx/sec 4.4 Ktx/sec
stdb_raw 🧠 person multi_index 0 100 616.2±0.68µs 619.3±1.09µs 1622 tx/sec 1614 tx/sec
stdb_raw 🧠 person multi_index 1000 100 647.0±1.69µs 649.1±0.54µs 1545 tx/sec 1540 tx/sec
stdb_raw 🧠 person non_unique 0 100 128.9±0.13µs 128.8±0.32µs 7.6 Ktx/sec 7.6 Ktx/sec
stdb_raw 🧠 person non_unique 1000 100 131.4±0.21µs 131.4±0.32µs 7.4 Ktx/sec 7.4 Ktx/sec
stdb_raw 🧠 person unique 0 100 335.2±0.44µs 335.7±0.36µs 2.9 Ktx/sec 2.9 Ktx/sec
stdb_raw 🧠 person unique 1000 100 353.5±0.60µs 354.1±0.62µ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.9±0.09µs 8.8±0.15µs 109.6 Ktx/sec 110.7 Ktx/sec
sqlite 💿 person unique 9.2±0.07µs 9.2±0.14µs 105.9 Ktx/sec 106.0 Ktx/sec
sqlite 🧠 location unique 7.8±0.03µs 7.6±0.13µs 126.0 Ktx/sec 128.1 Ktx/sec
sqlite 🧠 person unique 8.1±0.06µs 8.0±0.13µs 121.0 Ktx/sec 121.7 Ktx/sec
stdb_module 💿 location unique 50.6±4.39µs 49.0±6.53µs 19.3 Ktx/sec 19.9 Ktx/sec
stdb_module 💿 person unique 54.1±10.47µs 64.8±6.97µs 18.1 Ktx/sec 15.1 Ktx/sec
stdb_module 🧠 location unique 50.2±3.54µs 51.3±5.20µs 19.4 Ktx/sec 19.0 Ktx/sec
stdb_module 🧠 person unique 59.2±10.10µs 62.7±8.79µs 16.5 Ktx/sec 15.6 Ktx/sec
stdb_raw 💿 location unique 9.1±0.01µs 9.0±0.01µs 107.4 Ktx/sec 108.2 Ktx/sec
stdb_raw 💿 person unique 9.1±0.01µs 9.0±0.00µs 107.3 Ktx/sec 108.1 Ktx/sec
stdb_raw 🧠 location unique 9.1±0.01µs 9.0±0.01µs 107.5 Ktx/sec 108.3 Ktx/sec
stdb_raw 🧠 person unique 9.1±0.02µs 9.0±0.01µs 107.3 Ktx/sec 108.3 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.4±0.01µs 422.9 Ktx/sec 412.1 Ktx/sec
sqlite 🧠 u32 1000 1116.5±3.72ns 1155.5±3.56ns 874.7 Ktx/sec 845.1 Ktx/sec
stdb_module 💿 u32 1000 26.5±1.81µs 25.6±2.00µs 36.9 Ktx/sec 38.2 Ktx/sec
stdb_module 🧠 u32 1000 24.1±1.46µs 25.4±1.94µs 40.5 Ktx/sec 38.5 Ktx/sec
stdb_raw 💿 u32 1000 1904.4±4.57ns 1927.9±16.40ns 512.8 Ktx/sec 506.5 Ktx/sec
stdb_raw 🧠 u32 1000 1895.4±5.43ns 1908.0±2.84ns 515.2 Ktx/sec 511.8 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.6±0.01µs 5.7±0.02µs 175.7 Ktx/sec 170.9 Ktx/sec
sqlite 💿 string non_indexed 1000 10 50.7±0.27µs 48.9±0.43µs 19.2 Ktx/sec 20.0 Ktx/sec
sqlite 💿 u64 indexed 1000 10 5.3±0.02µs 5.5±0.02µs 182.6 Ktx/sec 179.0 Ktx/sec
sqlite 💿 u64 non_indexed 1000 10 33.0±0.06µs 33.1±0.13µs 29.6 Ktx/sec 29.5 Ktx/sec
sqlite 🧠 string indexed 1000 10 4.1±0.01µs 4.3±0.02µs 235.9 Ktx/sec 229.0 Ktx/sec
sqlite 🧠 string non_indexed 1000 10 49.6±0.29µs 47.1±0.19µs 19.7 Ktx/sec 20.7 Ktx/sec
sqlite 🧠 u64 indexed 1000 10 4.0±0.01µs 4.0±0.02µs 245.4 Ktx/sec 243.5 Ktx/sec
sqlite 🧠 u64 non_indexed 1000 10 31.8±0.06µs 31.7±0.14µs 30.7 Ktx/sec 30.8 Ktx/sec
stdb_module 💿 string indexed 1000 10 36.6±2.67µs 36.2±2.89µs 26.7 Ktx/sec 26.9 Ktx/sec
stdb_module 💿 string non_indexed 1000 10 167.7±2.11µs 172.3±6.13µs 5.8 Ktx/sec 5.7 Ktx/sec
stdb_module 💿 u64 indexed 1000 10 33.7±1.98µs 34.0±2.25µs 29.0 Ktx/sec 28.7 Ktx/sec
stdb_module 💿 u64 non_indexed 1000 10 141.7±4.10µs 139.6±4.26µs 6.9 Ktx/sec 7.0 Ktx/sec
stdb_module 🧠 string indexed 1000 10 37.2±3.25µs 35.6±2.90µs 26.2 Ktx/sec 27.4 Ktx/sec
stdb_module 🧠 string non_indexed 1000 10 170.6±5.86µs 168.4±6.40µs 5.7 Ktx/sec 5.8 Ktx/sec
stdb_module 🧠 u64 indexed 1000 10 32.4±3.34µs 32.5±2.40µs 30.1 Ktx/sec 30.0 Ktx/sec
stdb_module 🧠 u64 non_indexed 1000 10 141.8±4.22µs 136.6±12.29µs 6.9 Ktx/sec 7.1 Ktx/sec
stdb_raw 💿 string indexed 1000 10 4.5±0.01µs 4.4±0.01µs 217.4 Ktx/sec 220.0 Ktx/sec
stdb_raw 💿 string non_indexed 1000 10 146.9±0.42µs 153.7±0.30µs 6.6 Ktx/sec 6.4 Ktx/sec
stdb_raw 💿 u64 indexed 1000 10 4.3±0.01µs 4.3±0.01µs 226.7 Ktx/sec 226.8 Ktx/sec
stdb_raw 💿 u64 non_indexed 1000 10 126.3±0.18µs 127.2±0.29µs 7.7 Ktx/sec 7.7 Ktx/sec
stdb_raw 🧠 string indexed 1000 10 4.5±0.01µs 4.4±0.01µs 218.8 Ktx/sec 221.1 Ktx/sec
stdb_raw 🧠 string non_indexed 1000 10 143.8±0.36µs 153.3±0.32µs 6.8 Ktx/sec 6.4 Ktx/sec
stdb_raw 🧠 u64 indexed 1000 10 4.3±0.01µs 4.3±0.01µs 227.2 Ktx/sec 227.4 Ktx/sec
stdb_raw 🧠 u64 non_indexed 1000 10 125.2±0.56µs 126.2±0.15µs 7.8 Ktx/sec 7.7 Ktx/sec

Serialize

schema format count new latency old latency new throughput old throughput
location bsatn 100 1677.7±27.34ns 1790.8±36.33ns 56.8 Mtx/sec 53.3 Mtx/sec
location json 100 3.4±0.03µs 3.2±0.01µs 27.8 Mtx/sec 29.6 Mtx/sec
location product_value 100 549.8±0.75ns 574.6±1.06ns 173.4 Mtx/sec 166.0 Mtx/sec
person bsatn 100 3.2±0.01µs 2.6±0.04µs 29.9 Mtx/sec 37.2 Mtx/sec
person json 100 5.1±0.03µs 4.8±0.03µs 18.7 Mtx/sec 19.9 Mtx/sec
person product_value 100 1004.1±0.78ns 1003.9±0.76ns 95.0 Mtx/sec 95.0 Mtx/sec

Module: invoke with large arguments

arg size new latency old latency new throughput old throughput
64KiB 82.1±6.49µs 76.7±10.02µs - -

Module: print bulk

line count new latency old latency new throughput old throughput
1 23.5±1.48µs 24.0±1.76µs - -
100 202.5±4.09µs 200.7±5.37µs - -
1000 1875.0±65.00µs 1879.9±120.98µs - -

Remaining benchmarks

name new latency old latency new throughput old throughput

Please sign in to comment.