BonsaiDb Commerce Benchmark

large, balanced, 8 agent(s)

Configuration

Initial Data Set
Type Count
Products 5000
Categories 100
Customers 5000
Orders 5000
Shopping Plans

This run executed 1000 shopping plans across 8 worker(s). All total, the workers will execute the following breakdown of operations:

Operation Invocations
Load 1
LookupProduct 2729
FindProduct 2762
CreateCart 714
AddProductToCart 1350
Checkout 165
RateProduct 81

Summary

Backend Total Time Wall Time Transport
bonsaidb-local 290.8s 36.35s None
bonsaidb-local+lz4 320.2s 40.03s TCP
bonsaidb-quic 292.3s 36.53s UDP with TLS
bonsaidb-ws 288.0s 36.00s TCP
mongodb 6.815s 851.8ms TCP
postgresql 37.65s 4.706s TCP
Table of Contents:

Operation Results

Load

Measures the time spent loading the initial data set and performing any pre-cache operations that most database administrators would perform on their databases periodically to ensure good performance.

This operation was executed 1 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 1.352s 1.352s 1.352s 0s 0
bonsaidb-local+lz4 1.235s 1.235s 1.235s 0s 0
bonsaidb-quic 1.052s 1.052s 1.052s 0s 0
bonsaidb-ws 1.333s 1.333s 1.333s 0s 0
mongodb 166.6ms 166.6ms 166.6ms 0s 0
postgresql 10.64s 10.64s 10.64s 0s 0
LookupProduct

Meaures the time spent looking up a product by its id. This operation is meant to simulate the basic needs of the database to provide a product details page after a user clicked a direct link that contians the product's unique id, including the product's current rating.

This operation was executed 2729 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 252.9us 48.78us 36.62ms 1.367ms 4
bonsaidb-local+lz4 243.3us 39.12us 29.40ms 1.118ms 4
bonsaidb-quic 760.3us 260.2us 29.82ms 1.131ms 5
bonsaidb-ws 594.4us 206.5us 27.98ms 1.052ms 6
mongodb 903.4us 230.6us 6.098ms 439.5us 30
postgresql 1.598ms 206.9us 35.53ms 3.269ms 90
FindProduct

Measures the time spent looking up a product by its name (exact match, indexed). This operation is meant to simulate the basic needs of the database to provide a product details after finding a product by its name, including the product's current rating.

This operation was executed 2762 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 405.6us 83.14us 36.50ms 1.368ms 4
bonsaidb-local+lz4 404.2us 75.98us 29.89ms 1.133ms 6
bonsaidb-quic 1.163ms 377.9us 31.57ms 1.143ms 6
bonsaidb-ws 935.6us 333.4us 27.78ms 1.057ms 6
mongodb 999.2us 299.6us 5.821ms 481.9us 39
postgresql 1.599ms 252.1us 35.78ms 3.053ms 76
CreateCart

Measures the time spent creating a shopping cart.

This operation was executed 714 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 112.7ms 16.08ms 262.0ms 17.35ms 9
bonsaidb-local+lz4 125.4ms 16.71ms 790.9ms 50.29ms 6
bonsaidb-quic 109.3ms 16.50ms 167.3ms 15.99ms 8
bonsaidb-ws 109.5ms 14.90ms 176.6ms 16.25ms 11
mongodb 453.2us 124.2us 2.771ms 288.8us 9
postgresql 6.796ms 4.088ms 18.40ms 1.860ms 14
AddProductToCart

Measures the time spent adding a product to a shopping cart.

This operation was executed 1350 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 114.8ms 13.06ms 280.3ms 18.80ms 19
bonsaidb-local+lz4 126.5ms 32.14ms 795.1ms 47.30ms 10
bonsaidb-quic 115.1ms 14.28ms 188.8ms 15.98ms 17
bonsaidb-ws 112.8ms 15.10ms 184.1ms 15.45ms 9
mongodb 555.8us 150.2us 6.112ms 412.2us 15
postgresql 7.673ms 3.874ms 17.89ms 1.751ms 30
Checkout

Measures the time spent converting a shopping cart into an order for a customer.

This operation was executed 165 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 214.1ms 130.0ms 265.9ms 24.91ms 1
bonsaidb-local+lz4 231.9ms 135.6ms 365.8ms 30.11ms 3
bonsaidb-quic 215.1ms 161.7ms 320.1ms 23.29ms 1
bonsaidb-ws 211.5ms 150.6ms 301.5ms 23.92ms 1
mongodb 1.034ms 352.0us 2.944ms 482.7us 2
postgresql 8.034ms 4.827ms 18.02ms 2.106ms 3
RateProduct

Measures the time spent adding or updating a review of a product by a customer. Each customer can only have one review per product. When this operation is complete, all subsequent calls to LookupProduct and FindProduct should reflect the new rating. This simulates an 'upsert' (insert or update) operation using a unique index.

This operation was executed 81 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 207.9ms 135.8ms 301.6ms 31.66ms 0
bonsaidb-local+lz4 229.9ms 169.1ms 320.5ms 34.34ms 0
bonsaidb-quic 210.8ms 156.0ms 284.2ms 27.85ms 0
bonsaidb-ws 211.5ms 134.1ms 287.4ms 31.47ms 0
mongodb 2.203ms 491.9us 47.38ms 5.111ms 1
postgresql 20.96ms 13.81ms 41.20ms 4.659ms 1