Skip to content

Commit

Permalink
chore: Add _cumulative suffix to counter metrics (#474)
Browse files Browse the repository at this point in the history
  • Loading branch information
joshua-spacetime authored Oct 26, 2023
1 parent fce9477 commit b9abfe2
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions crates/core/src/db/db_metrics/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -50,18 +50,18 @@ metrics_group!(
#[labels(table_id: u32)]
pub rdb_delete_by_rel_time: HistogramVec,

#[name = spacetime_num_rows_inserted]
#[help = "The number of rows inserted into a table"]
#[name = spacetime_num_rows_inserted_cumulative]
#[help = "The cumulative number of rows inserted into a table"]
#[labels(txn_type: TransactionType, database_id: u64, reducer_id: u64, table_id: u32)]
pub rdb_num_rows_inserted: IntCounterVec,

#[name = spacetime_num_rows_deleted]
#[help = "The number of rows deleted from a table"]
#[name = spacetime_num_rows_deleted_cumulative]
#[help = "The cumulative number of rows deleted from a table"]
#[labels(txn_type: TransactionType, database_id: u64, reducer_id: u64, table_id: u32)]
pub rdb_num_rows_deleted: IntCounterVec,

#[name = spacetime_num_rows_fetched]
#[help = "The number of rows fetched from a table"]
#[name = spacetime_num_rows_fetched_cumulative]
#[help = "The cumulative number of rows fetched from a table"]
#[labels(txn_type: TransactionType, database_id: u64, reducer_id: u64, table_id: u32)]
pub rdb_num_rows_fetched: IntCounterVec,
}
Expand Down

1 comment on commit b9abfe2

@github-actions
Copy link

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 💿 463.7±2.74ns 441.0±2.35ns - -
sqlite 🧠 457.5±2.80ns 417.9±2.30ns - -
stdb_module 💿 16.6±0.90µs 16.3±0.48µs - -
stdb_module 🧠 16.7±0.64µs 16.6±0.65µs - -
stdb_raw 💿 202.1±4.21ns 197.3±0.71ns - -
stdb_raw 🧠 199.6±3.50ns 191.4±1.81ns - -

Single-row insertions

db on disk schema index type load new latency old latency new throughput old throughput
sqlite 💿 location multi_index 0 14.7±0.52µs 14.4±0.05µs 66.3 Ktx/sec 67.8 Ktx/sec
sqlite 💿 location multi_index 1000 15.7±0.18µs 15.8±0.33µs 62.2 Ktx/sec 61.7 Ktx/sec
sqlite 💿 location non_unique 0 7.1±0.04µs 7.2±0.61µs 138.2 Ktx/sec 136.5 Ktx/sec
sqlite 💿 location non_unique 1000 7.0±0.07µs 6.9±0.02µs 140.5 Ktx/sec 140.7 Ktx/sec
sqlite 💿 location unique 0 7.0±0.36µs 7.0±0.05µs 138.9 Ktx/sec 139.7 Ktx/sec
sqlite 💿 location unique 1000 7.0±0.05µs 6.9±0.04µs 140.4 Ktx/sec 141.1 Ktx/sec
sqlite 💿 person multi_index 0 14.3±0.03µs 14.3±0.04µs 68.4 Ktx/sec 68.3 Ktx/sec
sqlite 💿 person multi_index 1000 16.1±0.13µs 16.3±0.62µs 60.5 Ktx/sec 60.1 Ktx/sec
sqlite 💿 person non_unique 0 7.3±0.36µs 7.2±0.31µs 134.4 Ktx/sec 136.4 Ktx/sec
sqlite 💿 person non_unique 1000 7.2±0.06µs 7.1±0.06µs 135.0 Ktx/sec 136.7 Ktx/sec
sqlite 💿 person unique 0 7.2±0.29µs 7.2±0.47µs 135.5 Ktx/sec 135.9 Ktx/sec
sqlite 💿 person unique 1000 7.2±0.07µs 7.2±0.06µs 135.3 Ktx/sec 136.0 Ktx/sec
sqlite 🧠 location multi_index 0 4.0±0.01µs 4.0±0.03µs 242.5 Ktx/sec 244.6 Ktx/sec
sqlite 🧠 location multi_index 1000 5.2±0.05µs 5.1±0.14µs 189.5 Ktx/sec 191.5 Ktx/sec
sqlite 🧠 location non_unique 0 1852.2±3.18ns 1846.4±3.81ns 527.3 Ktx/sec 528.9 Ktx/sec
sqlite 🧠 location non_unique 1000 1862.9±7.02ns 1871.0±10.01ns 524.2 Ktx/sec 521.9 Ktx/sec
sqlite 🧠 location unique 0 1839.7±5.42ns 1810.9±12.56ns 530.8 Ktx/sec 539.3 Ktx/sec
sqlite 🧠 location unique 1000 1951.6±16.05ns 1923.9±22.73ns 500.4 Ktx/sec 507.6 Ktx/sec
sqlite 🧠 person multi_index 0 3.7±0.04µs 3.7±0.01µs 260.6 Ktx/sec 266.2 Ktx/sec
sqlite 🧠 person multi_index 1000 5.5±0.04µs 5.4±0.05µs 177.0 Ktx/sec 179.9 Ktx/sec
sqlite 🧠 person non_unique 0 1989.1±4.12ns 1916.6±4.49ns 491.0 Ktx/sec 509.5 Ktx/sec
sqlite 🧠 person non_unique 1000 2.0±0.01µs 1966.8±15.88ns 481.5 Ktx/sec 496.5 Ktx/sec
sqlite 🧠 person unique 0 1964.8±10.02ns 1903.5±4.05ns 497.0 Ktx/sec 513.0 Ktx/sec
sqlite 🧠 person unique 1000 2.1±0.01µs 2.0±0.02µs 471.6 Ktx/sec 483.2 Ktx/sec
stdb_module 💿 location multi_index 0 47.7±5.28µs 51.7±4.75µs 20.5 Ktx/sec 18.9 Ktx/sec
stdb_module 💿 location multi_index 1000 181.4±31.48µs 123.2±14.05µs 5.4 Ktx/sec 7.9 Ktx/sec
stdb_module 💿 location non_unique 0 41.3±3.83µs 41.6±3.44µs 23.6 Ktx/sec 23.5 Ktx/sec
stdb_module 💿 location non_unique 1000 282.8±4.65µs 132.7±21.45µs 3.5 Ktx/sec 7.4 Ktx/sec
stdb_module 💿 location unique 0 40.5±4.47µs 45.3±5.38µs 24.1 Ktx/sec 21.6 Ktx/sec
stdb_module 💿 location unique 1000 275.1±5.23µs 115.8±22.73µs 3.5 Ktx/sec 8.4 Ktx/sec
stdb_module 💿 person multi_index 0 59.7±4.71µs 55.0±7.01µs 16.3 Ktx/sec 17.7 Ktx/sec
stdb_module 💿 person multi_index 1000 174.3±11.79µs 159.3±13.67µs 5.6 Ktx/sec 6.1 Ktx/sec
stdb_module 💿 person non_unique 0 40.2±5.12µs 37.7±3.87µs 24.3 Ktx/sec 25.9 Ktx/sec
stdb_module 💿 person non_unique 1000 312.5±45.33µs 244.0±45.17µs 3.1 Ktx/sec 4.0 Ktx/sec
stdb_module 💿 person unique 0 50.8±4.91µs 44.4±3.78µs 19.2 Ktx/sec 22.0 Ktx/sec
stdb_module 💿 person unique 1000 142.1±6.22µs 247.8±67.67µs 6.9 Ktx/sec 3.9 Ktx/sec
stdb_module 🧠 location multi_index 0 32.3±2.49µs 32.6±2.55µs 30.3 Ktx/sec 30.0 Ktx/sec
stdb_module 🧠 location multi_index 1000 142.0±52.50µs 197.5±47.57µs 6.9 Ktx/sec 4.9 Ktx/sec
stdb_module 🧠 location non_unique 0 26.8±2.26µs 25.3±1.32µs 36.4 Ktx/sec 38.7 Ktx/sec
stdb_module 🧠 location non_unique 1000 148.1±32.81µs 210.7±2.60µs 6.6 Ktx/sec 4.6 Ktx/sec
stdb_module 🧠 location unique 0 29.9±1.96µs 29.7±1.83µs 32.7 Ktx/sec 32.9 Ktx/sec
stdb_module 🧠 location unique 1000 145.3±1.76µs 220.1±4.61µs 6.7 Ktx/sec 4.4 Ktx/sec
stdb_module 🧠 person multi_index 0 38.3±3.54µs 38.6±4.16µs 25.5 Ktx/sec 25.3 Ktx/sec
stdb_module 🧠 person multi_index 1000 134.8±70.20µs 141.0±72.74µs 7.2 Ktx/sec 6.9 Ktx/sec
stdb_module 🧠 person non_unique 0 28.1±2.04µs 27.8±2.01µs 34.7 Ktx/sec 35.1 Ktx/sec
stdb_module 🧠 person non_unique 1000 279.3±10.14µs 253.4±5.71µs 3.5 Ktx/sec 3.9 Ktx/sec
stdb_module 🧠 person unique 0 32.3±2.45µs 32.8±2.52µs 30.2 Ktx/sec 29.7 Ktx/sec
stdb_module 🧠 person unique 1000 241.9±23.04µs 203.5±2.45µs 4.0 Ktx/sec 4.8 Ktx/sec
stdb_raw 💿 location multi_index 0 6.6±0.01µs 6.5±0.03µs 148.5 Ktx/sec 149.2 Ktx/sec
stdb_raw 💿 location multi_index 1000 30.8±215.29µs 9.2±0.17µs 31.7 Ktx/sec 106.2 Ktx/sec
stdb_raw 💿 location non_unique 0 4.1±0.01µs 4.2±0.01µs 235.5 Ktx/sec 234.7 Ktx/sec
stdb_raw 💿 location non_unique 1000 15.9±103.78µs 19.6±140.71µs 61.5 Ktx/sec 49.8 Ktx/sec
stdb_raw 💿 location unique 0 5.6±0.02µs 5.5±0.01µs 175.0 Ktx/sec 177.5 Ktx/sec
stdb_raw 💿 location unique 1000 7.9±0.15µs 7.8±0.16µs 123.6 Ktx/sec 125.1 Ktx/sec
stdb_raw 💿 person multi_index 0 10.3±0.30µs 10.2±0.03µs 94.4 Ktx/sec 95.6 Ktx/sec
stdb_raw 💿 person multi_index 1000 46.4±329.01µs 64.0±506.80µs 21.1 Ktx/sec 15.3 Ktx/sec
stdb_raw 💿 person non_unique 0 4.8±0.22µs 4.8±0.01µs 204.1 Ktx/sec 205.5 Ktx/sec
stdb_raw 💿 person non_unique 1000 17.8±113.99µs 6.4±0.22µs 54.7 Ktx/sec 152.8 Ktx/sec
stdb_raw 💿 person unique 0 7.2±0.01µs 7.1±0.28µs 135.4 Ktx/sec 137.1 Ktx/sec
stdb_raw 💿 person unique 1000 9.8±0.13µs 34.7±251.83µs 99.8 Ktx/sec 28.1 Ktx/sec
stdb_raw 🧠 location multi_index 0 3.8±0.01µs 3.7±0.04µs 259.4 Ktx/sec 263.9 Ktx/sec
stdb_raw 🧠 location multi_index 1000 5.3±0.04µs 5.3±0.06µs 183.7 Ktx/sec 185.9 Ktx/sec
stdb_raw 🧠 location non_unique 0 1421.7±5.62ns 1411.7±5.14ns 686.9 Ktx/sec 691.8 Ktx/sec
stdb_raw 🧠 location non_unique 1000 1858.9±25.85ns 1823.6±15.64ns 525.4 Ktx/sec 535.5 Ktx/sec
stdb_raw 🧠 location unique 0 2.8±0.01µs 2.6±0.01µs 354.1 Ktx/sec 369.9 Ktx/sec
stdb_raw 🧠 location unique 1000 4.0±0.03µs 3.8±0.03µs 245.6 Ktx/sec 257.5 Ktx/sec
stdb_raw 🧠 person multi_index 0 7.4±0.01µs 7.3±0.02µs 132.5 Ktx/sec 132.9 Ktx/sec
stdb_raw 🧠 person multi_index 1000 9.4±0.07µs 9.4±0.06µs 104.3 Ktx/sec 103.5 Ktx/sec
stdb_raw 🧠 person non_unique 0 1965.7±4.35ns 1948.4±4.85ns 496.8 Ktx/sec 501.2 Ktx/sec
stdb_raw 🧠 person non_unique 1000 2.5±0.02µs 2.6±0.03µs 387.9 Ktx/sec 378.3 Ktx/sec
stdb_raw 🧠 person unique 0 4.3±0.00µs 4.2±0.04µs 229.2 Ktx/sec 233.3 Ktx/sec
stdb_raw 🧠 person unique 1000 5.7±0.07µs 5.5±0.03µs 171.2 Ktx/sec 176.3 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 130.7±0.49µs 131.0±9.08µs 7.5 Ktx/sec 7.5 Ktx/sec
sqlite 💿 location multi_index 1000 100 208.2±47.97µs 200.8±1.23µs 4.7 Ktx/sec 4.9 Ktx/sec
sqlite 💿 location non_unique 0 100 50.5±1.81µs 50.2±0.34µs 19.3 Ktx/sec 19.5 Ktx/sec
sqlite 💿 location non_unique 1000 100 52.6±0.26µs 53.1±0.38µs 18.6 Ktx/sec 18.4 Ktx/sec
sqlite 💿 location unique 0 100 51.0±0.25µs 51.7±0.39µs 19.2 Ktx/sec 18.9 Ktx/sec
sqlite 💿 location unique 1000 100 56.6±0.26µs 56.2±0.36µs 17.3 Ktx/sec 17.4 Ktx/sec
sqlite 💿 person multi_index 0 100 116.4±0.45µs 118.7±0.75µs 8.4 Ktx/sec 8.2 Ktx/sec
sqlite 💿 person multi_index 1000 100 230.5±0.55µs 230.7±0.62µs 4.2 Ktx/sec 4.2 Ktx/sec
sqlite 💿 person non_unique 0 100 47.6±0.23µs 48.4±5.32µs 20.5 Ktx/sec 20.2 Ktx/sec
sqlite 💿 person non_unique 1000 100 59.4±0.17µs 65.5±59.36µs 16.5 Ktx/sec 14.9 Ktx/sec
sqlite 💿 person unique 0 100 48.7±2.05µs 50.9±3.91µs 20.0 Ktx/sec 19.2 Ktx/sec
sqlite 💿 person unique 1000 100 55.6±0.22µs 59.9±46.35µs 17.5 Ktx/sec 16.3 Ktx/sec
sqlite 🧠 location multi_index 0 100 120.0±0.38µs 119.4±0.36µs 8.1 Ktx/sec 8.2 Ktx/sec
sqlite 🧠 location multi_index 1000 100 172.7±0.35µs 167.7±0.51µs 5.7 Ktx/sec 5.8 Ktx/sec
sqlite 🧠 location non_unique 0 100 44.1±0.29µs 42.7±0.74µs 22.1 Ktx/sec 22.9 Ktx/sec
sqlite 🧠 location non_unique 1000 100 44.8±0.23µs 45.1±0.25µs 21.8 Ktx/sec 21.7 Ktx/sec
sqlite 🧠 location unique 0 100 45.6±0.38µs 44.8±0.46µs 21.4 Ktx/sec 21.8 Ktx/sec
sqlite 🧠 location unique 1000 100 49.1±0.21µs 49.3±0.39µs 19.9 Ktx/sec 19.8 Ktx/sec
sqlite 🧠 person multi_index 0 100 106.2±0.44µs 106.6±0.38µs 9.2 Ktx/sec 9.2 Ktx/sec
sqlite 🧠 person multi_index 1000 100 188.6±0.58µs 187.6±0.43µs 5.2 Ktx/sec 5.2 Ktx/sec
sqlite 🧠 person non_unique 0 100 41.0±0.32µs 41.7±0.35µs 23.8 Ktx/sec 23.4 Ktx/sec
sqlite 🧠 person non_unique 1000 100 45.7±0.29µs 45.9±0.35µs 21.4 Ktx/sec 21.3 Ktx/sec
sqlite 🧠 person unique 0 100 43.5±0.15µs 43.6±0.53µs 22.5 Ktx/sec 22.4 Ktx/sec
sqlite 🧠 person unique 1000 100 47.7±0.46µs 48.4±0.26µs 20.5 Ktx/sec 20.2 Ktx/sec
stdb_module 💿 location multi_index 0 100 954.2±22.68µs 787.9±170.99µs 1047 tx/sec 1269 tx/sec
stdb_module 💿 location multi_index 1000 100 1120.6±153.87µs 1233.6±7.39µs 892 tx/sec 810 tx/sec
stdb_module 💿 location non_unique 0 100 348.9±17.98µs 431.6±94.30µs 2.8 Ktx/sec 2.3 Ktx/sec
stdb_module 💿 location non_unique 1000 100 746.4±38.04µs 775.9±8.28µs 1339 tx/sec 1288 tx/sec
stdb_module 💿 location unique 0 100 539.8±18.69µs 626.9±91.00µs 1852 tx/sec 1595 tx/sec
stdb_module 💿 location unique 1000 100 761.1±23.55µs 768.7±53.72µs 1313 tx/sec 1300 tx/sec
stdb_module 💿 person multi_index 0 100 922.6±48.34µs 923.7±89.98µs 1083 tx/sec 1082 tx/sec
stdb_module 💿 person multi_index 1000 100 1099.6±21.62µs 985.5±2.52µs 909 tx/sec 1014 tx/sec
stdb_module 💿 person non_unique 0 100 485.3±91.46µs 507.6±56.08µs 2.0 Ktx/sec 1970 tx/sec
stdb_module 💿 person non_unique 1000 100 550.4±28.31µs 467.2±1.25µs 1816 tx/sec 2.1 Ktx/sec
stdb_module 💿 person unique 0 100 692.7±35.94µs 834.6±52.22µs 1443 tx/sec 1198 tx/sec
stdb_module 💿 person unique 1000 100 791.3±57.72µs 869.7±53.40µs 1263 tx/sec 1149 tx/sec
stdb_module 🧠 location multi_index 0 100 512.2±54.57µs 496.0±1.44µs 1952 tx/sec 2015 tx/sec
stdb_module 🧠 location multi_index 1000 100 676.6±128.56µs 916.7±43.47µs 1477 tx/sec 1090 tx/sec
stdb_module 🧠 location non_unique 0 100 333.8±13.85µs 312.3±38.02µs 2.9 Ktx/sec 3.1 Ktx/sec
stdb_module 🧠 location non_unique 1000 100 396.0±8.73µs 450.0±10.54µs 2.5 Ktx/sec 2.2 Ktx/sec
stdb_module 🧠 location unique 0 100 414.9±82.61µs 375.1±3.90µs 2.4 Ktx/sec 2.6 Ktx/sec
stdb_module 🧠 location unique 1000 100 524.4±7.78µs 476.7±4.02µs 1906 tx/sec 2.0 Ktx/sec
stdb_module 🧠 person multi_index 0 100 789.7±42.85µs 903.3±35.71µs 1266 tx/sec 1107 tx/sec
stdb_module 🧠 person multi_index 1000 100 971.6±4.36µs 1001.1±40.32µs 1029 tx/sec 998 tx/sec
stdb_module 🧠 person non_unique 0 100 475.6±10.39µs 359.2±7.96µs 2.1 Ktx/sec 2.7 Ktx/sec
stdb_module 🧠 person non_unique 1000 100 668.8±13.28µs 343.4±26.02µs 1495 tx/sec 2.8 Ktx/sec
stdb_module 🧠 person unique 0 100 527.8±36.03µs 600.0±4.41µs 1894 tx/sec 1666 tx/sec
stdb_module 🧠 person unique 1000 100 685.1±58.71µs 773.1±10.03µs 1459 tx/sec 1293 tx/sec
stdb_raw 💿 location multi_index 0 100 387.1±15.73µs 385.6±1.25µs 2.5 Ktx/sec 2.5 Ktx/sec
stdb_raw 💿 location multi_index 1000 100 411.8±1.36µs 436.1±249.79µs 2.4 Ktx/sec 2.2 Ktx/sec
stdb_raw 💿 location non_unique 0 100 156.1±0.51µs 156.8±4.95µs 6.3 Ktx/sec 6.2 Ktx/sec
stdb_raw 💿 location non_unique 1000 100 170.3±116.31µs 159.4±1.01µs 5.7 Ktx/sec 6.1 Ktx/sec
stdb_raw 💿 location unique 0 100 285.3±7.39µs 280.5±0.40µs 3.4 Ktx/sec 3.5 Ktx/sec
stdb_raw 💿 location unique 1000 100 320.9±173.64µs 300.3±1.23µs 3.0 Ktx/sec 3.3 Ktx/sec
stdb_raw 💿 person multi_index 0 100 710.1±0.92µs 704.1±1.91µs 1408 tx/sec 1420 tx/sec
stdb_raw 💿 person multi_index 1000 100 780.6±382.45µs 734.4±3.53µs 1281 tx/sec 1361 tx/sec
stdb_raw 💿 person non_unique 0 100 214.6±5.59µs 212.2±0.70µs 4.6 Ktx/sec 4.6 Ktx/sec
stdb_raw 💿 person non_unique 1000 100 221.6±46.72µs 231.1±157.26µs 4.4 Ktx/sec 4.2 Ktx/sec
stdb_raw 💿 person unique 0 100 427.4±6.84µs 423.5±5.51µs 2.3 Ktx/sec 2.3 Ktx/sec
stdb_raw 💿 person unique 1000 100 445.9±1.71µs 475.0±334.39µs 2.2 Ktx/sec 2.1 Ktx/sec
stdb_raw 🧠 location multi_index 0 100 307.5±0.45µs 302.6±0.52µs 3.2 Ktx/sec 3.2 Ktx/sec
stdb_raw 🧠 location multi_index 1000 100 332.9±0.34µs 328.7±0.51µs 2.9 Ktx/sec 3.0 Ktx/sec
stdb_raw 🧠 location non_unique 0 100 75.2±0.10µs 75.1±0.11µs 13.0 Ktx/sec 13.0 Ktx/sec
stdb_raw 🧠 location non_unique 1000 100 76.8±0.16µs 76.3±0.12µs 12.7 Ktx/sec 12.8 Ktx/sec
stdb_raw 🧠 location unique 0 100 203.7±0.38µs 198.8±0.21µs 4.8 Ktx/sec 4.9 Ktx/sec
stdb_raw 🧠 location unique 1000 100 222.3±0.40µs 217.0±0.29µs 4.4 Ktx/sec 4.5 Ktx/sec
stdb_raw 🧠 person multi_index 0 100 623.1±1.46µs 620.3±1.72µs 1604 tx/sec 1612 tx/sec
stdb_raw 🧠 person multi_index 1000 100 653.0±1.14µs 650.1±0.77µs 1531 tx/sec 1538 tx/sec
stdb_raw 🧠 person non_unique 0 100 127.6±0.30µs 126.0±0.16µs 7.7 Ktx/sec 7.7 Ktx/sec
stdb_raw 🧠 person non_unique 1000 100 129.7±0.24µs 128.3±0.45µs 7.5 Ktx/sec 7.6 Ktx/sec
stdb_raw 🧠 person unique 0 100 339.2±0.44µs 335.1±0.31µs 2.9 Ktx/sec 2.9 Ktx/sec
stdb_raw 🧠 person unique 1000 100 358.0±0.52µs 353.3±0.42µs 2.7 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 9.4±0.12µs 8.9±0.16µs 104.2 Ktx/sec 109.8 Ktx/sec
sqlite 💿 person unique 9.6±0.08µs 9.4±0.13µs 101.8 Ktx/sec 103.5 Ktx/sec
sqlite 🧠 location unique 8.1±0.14µs 7.6±0.18µs 121.1 Ktx/sec 128.0 Ktx/sec
sqlite 🧠 person unique 8.5±0.12µs 8.5±0.12µs 115.3 Ktx/sec 114.6 Ktx/sec
stdb_module 💿 location unique 47.2±2.81µs 49.2±3.25µs 20.7 Ktx/sec 19.8 Ktx/sec
stdb_module 💿 person unique 55.5±12.27µs 64.0±8.13µs 17.6 Ktx/sec 15.3 Ktx/sec
stdb_module 🧠 location unique 50.8±7.17µs 50.6±4.28µs 19.2 Ktx/sec 19.3 Ktx/sec
stdb_module 🧠 person unique 61.3±8.31µs 64.4±7.21µs 15.9 Ktx/sec 15.2 Ktx/sec
stdb_raw 💿 location unique 10.1±0.00µs 9.6±0.01µs 96.7 Ktx/sec 101.9 Ktx/sec
stdb_raw 💿 person unique 10.1±0.01µs 9.7±0.35µs 96.8 Ktx/sec 100.8 Ktx/sec
stdb_raw 🧠 location unique 10.1±0.07µs 9.6±0.01µs 96.6 Ktx/sec 102.0 Ktx/sec
stdb_raw 🧠 person unique 10.1±0.02µs 9.6±0.01µs 96.6 Ktx/sec 102.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.01µs 420.5 Ktx/sec 422.8 Ktx/sec
sqlite 🧠 u32 1000 1138.3±2.96ns 1159.7±9.18ns 857.9 Ktx/sec 842.1 Ktx/sec
stdb_module 💿 u32 1000 22.0±1.82µs 20.1±1.28µs 44.3 Ktx/sec 48.5 Ktx/sec
stdb_module 🧠 u32 1000 20.3±1.17µs 22.1±2.36µs 48.1 Ktx/sec 44.2 Ktx/sec
stdb_raw 💿 u32 1000 926.1±2.70ns 887.0±2.75ns 1054.5 Ktx/sec 1101.0 Ktx/sec
stdb_raw 🧠 u32 1000 923.1±2.93ns 881.5±1.93ns 1057.9 Ktx/sec 1107.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.7±0.03µs 5.7±0.01µs 170.2 Ktx/sec 171.0 Ktx/sec
sqlite 💿 string non_indexed 1000 10 50.8±0.45µs 50.9±0.24µs 19.2 Ktx/sec 19.2 Ktx/sec
sqlite 💿 u64 indexed 1000 10 5.5±0.02µs 5.5±0.03µs 176.1 Ktx/sec 177.5 Ktx/sec
sqlite 💿 u64 non_indexed 1000 10 32.8±0.04µs 32.9±0.05µs 29.7 Ktx/sec 29.7 Ktx/sec
sqlite 🧠 string indexed 1000 10 4.3±0.02µs 4.3±0.01µs 228.5 Ktx/sec 228.5 Ktx/sec
sqlite 🧠 string non_indexed 1000 10 49.0±0.43µs 49.6±0.39µs 19.9 Ktx/sec 19.7 Ktx/sec
sqlite 🧠 u64 indexed 1000 10 4.1±0.03µs 4.1±0.03µs 235.7 Ktx/sec 240.1 Ktx/sec
sqlite 🧠 u64 non_indexed 1000 10 31.7±0.09µs 31.6±0.05µs 30.8 Ktx/sec 30.9 Ktx/sec
stdb_module 💿 string indexed 1000 10 30.0±2.57µs 30.8±2.36µs 32.6 Ktx/sec 31.7 Ktx/sec
stdb_module 💿 string non_indexed 1000 10 183.5±1.82µs 183.5±5.85µs 5.3 Ktx/sec 5.3 Ktx/sec
stdb_module 💿 u64 indexed 1000 10 26.1±2.32µs 25.0±1.56µs 37.4 Ktx/sec 39.1 Ktx/sec
stdb_module 💿 u64 non_indexed 1000 10 155.5±2.12µs 160.9±6.13µs 6.3 Ktx/sec 6.1 Ktx/sec
stdb_module 🧠 string indexed 1000 10 31.7±2.07µs 30.0±2.10µs 30.8 Ktx/sec 32.6 Ktx/sec
stdb_module 🧠 string non_indexed 1000 10 176.4±2.09µs 185.9±4.92µs 5.5 Ktx/sec 5.3 Ktx/sec
stdb_module 🧠 u64 indexed 1000 10 24.9±1.87µs 25.0±2.15µs 39.2 Ktx/sec 39.1 Ktx/sec
stdb_module 🧠 u64 non_indexed 1000 10 155.2±4.84µs 157.5±5.31µs 6.3 Ktx/sec 6.2 Ktx/sec
stdb_raw 💿 string indexed 1000 10 3.4±0.01µs 3.4±0.01µs 286.7 Ktx/sec 288.7 Ktx/sec
stdb_raw 💿 string non_indexed 1000 10 148.1±0.35µs 150.2±0.66µs 6.6 Ktx/sec 6.5 Ktx/sec
stdb_raw 💿 u64 indexed 1000 10 3.4±0.01µs 3.3±0.02µs 290.5 Ktx/sec 293.4 Ktx/sec
stdb_raw 💿 u64 non_indexed 1000 10 129.1±1.50µs 128.4±0.45µs 7.6 Ktx/sec 7.6 Ktx/sec
stdb_raw 🧠 string indexed 1000 10 3.4±0.04µs 3.4±0.01µs 285.8 Ktx/sec 289.9 Ktx/sec
stdb_raw 🧠 string non_indexed 1000 10 148.5±0.77µs 149.8±0.48µs 6.6 Ktx/sec 6.5 Ktx/sec
stdb_raw 🧠 u64 indexed 1000 10 3.4±0.01µs 3.3±0.01µs 291.5 Ktx/sec 294.8 Ktx/sec
stdb_raw 🧠 u64 non_indexed 1000 10 129.4±1.73µs 128.1±0.48µs 7.5 Ktx/sec 7.6 Ktx/sec

Serialize

schema format count new latency old latency new throughput old throughput
location bsatn 100 1746.7±37.96ns 1732.9±29.43ns 54.6 Mtx/sec 55.0 Mtx/sec
location json 100 3.4±0.09µs 3.4±0.05µs 28.4 Mtx/sec 28.2 Mtx/sec
location product_value 100 846.3±0.41ns 1123.9±4.19ns 112.7 Mtx/sec 84.9 Mtx/sec
person bsatn 100 2.9±0.01µs 2.9±0.01µs 32.9 Mtx/sec 33.0 Mtx/sec
person json 100 4.8±0.04µs 5.0±0.02µs 19.8 Mtx/sec 19.1 Mtx/sec
person product_value 100 1115.9±3.25ns 1116.9±0.84ns 85.5 Mtx/sec 85.4 Mtx/sec

Module: invoke with large arguments

arg size new latency old latency new throughput old throughput
64KiB 70.5±7.13µs 78.3±5.90µs - -

Module: print bulk

line count new latency old latency new throughput old throughput
1 20.5±1.20µs 21.0±1.10µs - -
100 199.4±2.17µs 199.5±9.42µs - -
1000 1895.4±66.97µs 1868.9±40.44µs - -

Remaining benchmarks

name new latency old latency new throughput old throughput

Please sign in to comment.