BonsaiDb Commerce Benchmark

small, balanced, 4 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 4 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 72.76s 18.19s None
bonsaidb-local+lz4 72.59s 18.15s TCP
bonsaidb-quic 75.43s 18.86s UDP with TLS
bonsaidb-ws 68.86s 17.21s TCP
mongodb 4.024s 1.006s TCP
postgresql 12.11s 3.027s 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 86.75ms 86.75ms 86.75ms 0s 0
bonsaidb-local+lz4 57.05ms 57.05ms 57.05ms 0s 0
bonsaidb-quic 60.62ms 60.62ms 60.62ms 0s 0
bonsaidb-ws 68.52ms 68.52ms 68.52ms 0s 0
mongodb 6.988ms 6.988ms 6.988ms 0s 0
postgresql 290.2ms 290.2ms 290.2ms 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 173.2us 28.88us 8.432ms 237.1us 3
bonsaidb-local+lz4 185.6us 30.78us 14.35ms 427.8us 4
bonsaidb-quic 663.6us 266.3us 13.86ms 414.0us 6
bonsaidb-ws 521.2us 163.6us 11.95ms 340.9us 2
mongodb 495.7us 204.7us 3.779ms 249.1us 49
postgresql 608.8us 158.0us 20.47ms 932.0us 59
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 296.3us 51.46us 8.453ms 258.4us 5
bonsaidb-local+lz4 306.6us 69.06us 14.51ms 402.3us 4
bonsaidb-quic 1.034ms 335.8us 14.44ms 478.0us 5
bonsaidb-ws 833.9us 294.7us 11.78ms 395.7us 8
mongodb 541.9us 218.9us 9.808ms 313.4us 42
postgresql 712.9us 196.1us 14.71ms 918.4us 74
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 27.61ms 12.17ms 319.0ms 21.37ms 8
bonsaidb-local+lz4 27.16ms 12.33ms 273.9ms 17.73ms 8
bonsaidb-quic 24.02ms 9.116ms 395.5ms 18.16ms 4
bonsaidb-ws 22.56ms 8.838ms 46.69ms 5.430ms 11
mongodb 249.6us 97.10us 1.368ms 143.8us 16
postgresql 2.992ms 1.694ms 31.01ms 1.942ms 8
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 27.30ms 6.667ms 304.7ms 10.36ms 7
bonsaidb-local+lz4 27.24ms 6.485ms 256.8ms 9.871ms 18
bonsaidb-quic 27.71ms 7.502ms 414.8ms 21.35ms 11
bonsaidb-ws 25.75ms 9.861ms 64.97ms 5.814ms 31
mongodb 298.9us 134.0us 1.714ms 154.9us 32
postgresql 3.184ms 1.631ms 32.70ms 1.634ms 26
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 47.65ms 27.86ms 78.34ms 7.160ms 2
bonsaidb-local+lz4 48.36ms 28.08ms 86.12ms 7.777ms 4
bonsaidb-quic 49.28ms 22.56ms 187.8ms 15.32ms 2
bonsaidb-ws 46.20ms 22.78ms 90.58ms 9.106ms 3
mongodb 527.2us 278.3us 1.942ms 196.2us 1
postgresql 3.579ms 2.193ms 7.649ms 946.0us 2
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 43.86ms 23.08ms 129.3ms 13.72ms 3
bonsaidb-local+lz4 44.67ms 28.13ms 123.1ms 15.68ms 2
bonsaidb-quic 53.22ms 22.69ms 403.2ms 62.16ms 3
bonsaidb-ws 40.33ms 23.62ms 70.10ms 8.955ms 2
mongodb 4.162ms 436.4us 95.46ms 16.20ms 3
postgresql 8.111ms 5.306ms 18.74ms 2.574ms 3