BonsaiDb Commerce Benchmark

small, balanced, 8 agent(s)

Configuration

Initial Data Set
Type Count
Products 100
Categories 10
Customers 100
Orders 125
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 2768
FindProduct 2860
CreateCart 708
AddProductToCart 1436
Checkout 177
RateProduct 95

Summary

Backend Total Time Wall Time Transport
bonsaidb-local 135.3s 16.91s None
bonsaidb-local+lz4 137.7s 17.21s TCP
bonsaidb-quic 137.1s 17.13s UDP with TLS
bonsaidb-ws 139.3s 17.41s TCP
mongodb 7.098s 887.2ms TCP
postgresql 14.54s 1.817s 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 57.93ms 57.93ms 57.93ms 0s 0
bonsaidb-local+lz4 54.68ms 54.68ms 54.68ms 0s 0
bonsaidb-quic 59.92ms 59.92ms 59.92ms 0s 0
bonsaidb-ws 57.40ms 57.40ms 57.40ms 0s 0
mongodb 8.349ms 8.349ms 8.349ms 0s 0
postgresql 258.0ms 258.0ms 258.0ms 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 2768 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 180.4us 39.77us 19.34ms 440.8us 4
bonsaidb-local+lz4 187.1us 38.13us 23.13ms 489.9us 5
bonsaidb-quic 668.7us 265.3us 19.80ms 654.1us 4
bonsaidb-ws 543.9us 191.5us 12.18ms 403.0us 6
mongodb 833.3us 218.2us 13.58ms 645.2us 27
postgresql 958.2us 134.2us 25.42ms 1.749ms 65
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 2860 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 304.7us 76.72us 8.929ms 384.2us 7
bonsaidb-local+lz4 320.9us 63.17us 8.165ms 348.9us 9
bonsaidb-quic 1.053ms 411.7us 20.95ms 823.5us 8
bonsaidb-ws 858.8us 307.1us 12.06ms 510.3us 6
mongodb 901.0us 249.7us 11.63ms 624.4us 34
postgresql 1.008ms 156.8us 25.55ms 1.719ms 65
CreateCart

Measures the time spent creating a shopping cart.

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 49.49ms 10.55ms 98.32ms 8.684ms 9
bonsaidb-local+lz4 50.60ms 12.12ms 104.6ms 9.318ms 12
bonsaidb-quic 47.77ms 13.22ms 103.4ms 9.558ms 13
bonsaidb-ws 48.87ms 12.64ms 222.4ms 11.98ms 6
mongodb 387.1us 113.8us 2.500ms 261.3us 11
postgresql 3.266ms 1.651ms 12.85ms 1.267ms 18
AddProductToCart

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

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 51.03ms 13.16ms 120.6ms 9.012ms 30
bonsaidb-local+lz4 51.80ms 13.49ms 111.3ms 9.563ms 30
bonsaidb-quic 50.61ms 20.49ms 106.4ms 9.292ms 27
bonsaidb-ws 51.70ms 20.38ms 237.4ms 13.92ms 8
mongodb 501.7us 145.5us 10.80ms 488.5us 15
postgresql 3.360ms 1.657ms 13.71ms 1.249ms 39
Checkout

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

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 95.05ms 35.04ms 173.9ms 18.26ms 4
bonsaidb-local+lz4 97.83ms 33.05ms 185.8ms 18.89ms 4
bonsaidb-quic 95.63ms 35.91ms 153.6ms 15.53ms 4
bonsaidb-ws 97.86ms 38.11ms 181.9ms 15.56ms 3
mongodb 818.4us 288.7us 2.870ms 434.9us 4
postgresql 4.059ms 1.987ms 12.69ms 1.524ms 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 95 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 91.70ms 29.03ms 142.3ms 20.06ms 1
bonsaidb-local+lz4 91.02ms 20.15ms 130.8ms 19.66ms 2
bonsaidb-quic 91.99ms 31.83ms 140.8ms 18.88ms 3
bonsaidb-ws 95.61ms 27.86ms 274.0ms 32.50ms 2
mongodb 11.23ms 464.2us 188.3ms 39.32ms 5
postgresql 9.339ms 5.108ms 19.84ms 2.769ms 2