BonsaiDb Commerce Benchmark

large, balanced, 4 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 4 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 146.6s 36.64s None
bonsaidb-local+lz4 145.3s 36.33s TCP
bonsaidb-quic 149.6s 37.39s UDP with TLS
bonsaidb-ws 148.8s 37.20s TCP
mongodb 4.324s 1.081s TCP
postgresql 33.39s 8.347s 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.170s 1.170s 1.170s 0s 0
bonsaidb-quic 1.342s 1.342s 1.342s 0s 0
bonsaidb-ws 1.431s 1.431s 1.431s 0s 0
mongodb 145.0ms 145.0ms 145.0ms 0s 0
postgresql 11.08s 11.08s 11.08s 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 203.3us 47.86us 24.41ms 473.6us 2
bonsaidb-local+lz4 206.4us 47.07us 26.19ms 505.2us 1
bonsaidb-quic 711.0us 243.6us 29.73ms 589.2us 1
bonsaidb-ws 567.1us 164.3us 27.45ms 552.3us 3
mongodb 569.6us 254.1us 3.750ms 225.1us 49
postgresql 927.1us 242.0us 18.08ms 1.430ms 68
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 365.4us 79.10us 24.38ms 786.3us 4
bonsaidb-local+lz4 390.2us 78.81us 32.80ms 954.6us 4
bonsaidb-quic 1.126ms 380.7us 30.08ms 996.4us 3
bonsaidb-ws 929.9us 255.5us 28.95ms 969.5us 6
mongodb 622.1us 291.3us 4.329ms 237.6us 37
postgresql 1.061ms 254.3us 25.85ms 1.690ms 63
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 56.83ms 17.44ms 116.2ms 9.836ms 8
bonsaidb-local+lz4 56.03ms 20.23ms 93.36ms 9.190ms 12
bonsaidb-quic 53.88ms 19.72ms 348.4ms 15.73ms 4
bonsaidb-ws 54.97ms 19.57ms 139.1ms 10.67ms 8
mongodb 275.8us 122.9us 2.220ms 170.3us 16
postgresql 6.295ms 3.763ms 53.85ms 2.582ms 7
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 58.07ms 18.95ms 125.5ms 9.252ms 17
bonsaidb-local+lz4 57.69ms 14.78ms 98.30ms 9.385ms 21
bonsaidb-quic 59.29ms 15.80ms 550.9ms 29.14ms 8
bonsaidb-ws 58.38ms 15.97ms 142.6ms 10.20ms 15
mongodb 347.7us 160.5us 3.314ms 178.6us 20
postgresql 7.168ms 3.706ms 58.91ms 2.661ms 8
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 104.4ms 61.51ms 169.6ms 15.86ms 1
bonsaidb-local+lz4 104.4ms 63.69ms 150.2ms 14.58ms 1
bonsaidb-quic 103.4ms 64.00ms 147.4ms 13.68ms 1
bonsaidb-ws 104.9ms 69.06ms 193.1ms 16.13ms 2
mongodb 613.5us 304.1us 1.565ms 214.0us 3
postgresql 7.259ms 4.413ms 21.40ms 1.889ms 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 92.06ms 43.54ms 143.4ms 16.58ms 1
bonsaidb-local+lz4 91.06ms 60.84ms 138.3ms 15.95ms 0
bonsaidb-quic 93.79ms 61.48ms 177.4ms 18.56ms 2
bonsaidb-ws 97.41ms 64.43ms 171.6ms 18.28ms 1
mongodb 1.720ms 463.6us 65.21ms 7.106ms 1
postgresql 18.28ms 11.77ms 64.38ms 6.347ms 1