BonsaiDb Commerce Benchmark

large, balanced, 1 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 1 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 42.73s 42.73s None
bonsaidb-local+lz4 43.91s 43.91s TCP
bonsaidb-quic 47.50s 47.50s UDP with TLS
bonsaidb-ws 55.07s 55.07s TCP
mongodb 2.958s 2.958s TCP
postgresql 28.05s 28.05s 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.294s 1.294s 1.294s 0s 0
bonsaidb-local+lz4 1.192s 1.192s 1.192s 0s 0
bonsaidb-quic 1.430s 1.430s 1.430s 0s 0
bonsaidb-ws 1.425s 1.425s 1.425s 0s 0
mongodb 166.6ms 166.6ms 166.6ms 0s 0
postgresql 12.84s 12.84s 12.84s 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 173.5us 46.51us 1.937ms 84.62us 21
bonsaidb-local+lz4 184.4us 40.86us 1.242ms 78.84us 16
bonsaidb-quic 642.6us 225.8us 3.974ms 176.9us 9
bonsaidb-ws 501.9us 200.0us 1.783ms 155.6us 18
mongodb 377.3us 219.1us 1.083ms 81.33us 39
postgresql 617.8us 222.6us 1.881ms 171.1us 44
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 319.0us 86.73us 25.35ms 497.1us 1
bonsaidb-local+lz4 349.4us 88.80us 30.26ms 590.1us 2
bonsaidb-quic 1.034ms 362.4us 23.95ms 513.6us 2
bonsaidb-ws 824.2us 324.7us 19.73ms 446.7us 3
mongodb 418.9us 275.4us 6.027ms 144.7us 14
postgresql 689.1us 235.2us 11.20ms 292.5us 19
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 15.45ms 10.58ms 54.05ms 2.740ms 11
bonsaidb-local+lz4 15.60ms 10.22ms 43.44ms 3.167ms 21
bonsaidb-quic 15.96ms 11.15ms 113.4ms 4.560ms 8
bonsaidb-ws 19.21ms 10.74ms 370.2ms 24.42ms 12
mongodb 178.2us 123.4us 406.3us 44.87us 12
postgresql 5.269ms 3.614ms 534.4ms 20.28ms 2
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 15.74ms 10.84ms 55.42ms 2.864ms 33
bonsaidb-local+lz4 16.50ms 10.39ms 653.5ms 20.52ms 3
bonsaidb-quic 16.24ms 11.27ms 38.30ms 2.544ms 30
bonsaidb-ws 19.79ms 10.86ms 603.4ms 28.27ms 18
mongodb 226.9us 158.6us 566.6us 57.19us 23
postgresql 4.443ms 3.626ms 63.94ms 2.216ms 9
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 31.49ms 23.96ms 52.28ms 4.266ms 6
bonsaidb-local+lz4 31.74ms 25.21ms 62.34ms 5.451ms 4
bonsaidb-quic 32.50ms 27.11ms 70.59ms 5.624ms 4
bonsaidb-ws 39.87ms 26.09ms 530.8ms 46.19ms 3
mongodb 404.7us 266.6us 992.7us 94.17us 3
postgresql 4.829ms 3.891ms 14.30ms 973.3us 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 32.26ms 26.58ms 54.56ms 4.325ms 2
bonsaidb-local+lz4 32.02ms 24.57ms 50.98ms 4.342ms 1
bonsaidb-quic 34.30ms 27.10ms 75.09ms 7.001ms 2
bonsaidb-ws 36.74ms 27.02ms 222.7ms 23.96ms 2
mongodb 1.285ms 446.8us 55.49ms 6.061ms 1
postgresql 13.17ms 10.62ms 30.28ms 3.051ms 2