BonsaiDb Commerce Benchmark

large, readheavy, 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 2719
FindProduct 2738
CreateCart 390
AddProductToCart 539
Checkout 34
RateProduct 3

Summary

Backend Total Time Wall Time Transport
bonsaidb-local 58.92s 14.73s None
bonsaidb-local+lz4 57.44s 14.36s TCP
bonsaidb-quic 57.30s 14.32s UDP with TLS
bonsaidb-ws 58.89s 14.72s TCP
mongodb 3.317s 829.2ms TCP
postgresql 22.60s 5.650s 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.226s 1.226s 1.226s 0s 0
bonsaidb-local+lz4 1.226s 1.226s 1.226s 0s 0
bonsaidb-quic 1.372s 1.372s 1.372s 0s 0
bonsaidb-ws 1.221s 1.221s 1.221s 0s 0
mongodb 159.7ms 159.7ms 159.7ms 0s 0
postgresql 12.67s 12.67s 12.67s 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 2719 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 149.6us 31.19us 20.02ms 395.8us 4
bonsaidb-local+lz4 169.3us 32.10us 24.43ms 477.1us 2
bonsaidb-quic 597.1us 239.8us 29.13ms 589.8us 6
bonsaidb-ws 498.6us 190.9us 24.76ms 509.0us 4
mongodb 486.8us 192.7us 4.708ms 237.1us 38
postgresql 628.2us 222.0us 15.02ms 672.5us 17
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 2738 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 268.9us 50.96us 19.77ms 682.6us 9
bonsaidb-local+lz4 308.9us 68.93us 24.50ms 820.0us 6
bonsaidb-quic 946.2us 388.2us 30.03ms 995.3us 6
bonsaidb-ws 798.9us 315.4us 24.46ms 845.7us 10
mongodb 538.3us 225.3us 7.978ms 306.5us 27
postgresql 689.3us 224.3us 18.18ms 782.9us 11
CreateCart

Measures the time spent creating a shopping cart.

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 55.11ms 27.34ms 108.4ms 8.581ms 8
bonsaidb-local+lz4 53.30ms 11.70ms 131.7ms 10.55ms 8
bonsaidb-quic 49.05ms 24.48ms 267.8ms 13.97ms 1
bonsaidb-ws 50.66ms 20.87ms 237.5ms 17.15ms 4
mongodb 260.6us 114.6us 3.679ms 224.6us 3
postgresql 5.881ms 1.740ms 21.74ms 1.811ms 4
AddProductToCart

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

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 57.91ms 27.53ms 106.7ms 7.711ms 12
bonsaidb-local+lz4 56.40ms 34.48ms 119.6ms 8.696ms 8
bonsaidb-quic 54.17ms 23.18ms 85.40ms 8.481ms 9
bonsaidb-ws 57.21ms 23.13ms 258.1ms 18.35ms 8
mongodb 332.0us 146.4us 4.639ms 254.1us 6
postgresql 6.972ms 1.911ms 18.55ms 2.039ms 16
Checkout

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

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 104.0ms 82.13ms 141.4ms 11.96ms 1
bonsaidb-local+lz4 102.4ms 84.14ms 149.7ms 12.00ms 1
bonsaidb-quic 92.76ms 68.90ms 109.4ms 9.076ms 0
bonsaidb-ws 95.30ms 74.80ms 117.9ms 10.00ms 0
mongodb 652.9us 310.0us 1.755ms 294.1us 1
postgresql 6.655ms 3.471ms 8.647ms 1.054ms 1
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 3 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 100.5ms 95.96ms 105.0ms 3.681ms 0
bonsaidb-local+lz4 82.19ms 57.64ms 112.9ms 22.95ms 0
bonsaidb-quic 76.75ms 70.52ms 85.78ms 6.537ms 0
bonsaidb-ws 96.27ms 85.97ms 107.2ms 8.686ms 0
mongodb 18.99ms 978.0us 54.55ms 25.14ms 0
postgresql 19.49ms 17.89ms 22.54ms 2.154ms 0