BonsaiDb Commerce Benchmark

large, writeheavy, 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 2678
FindProduct 2803
CreateCart 987
AddProductToCart 4942
Checkout 874
RateProduct 3902

Summary

Backend Total Time Wall Time Transport
bonsaidb-local 694.2s 173.5s None
bonsaidb-local+lz4 697.0s 174.2s TCP
bonsaidb-quic 728.2s 182.1s UDP with TLS
bonsaidb-ws 727.8s 182.0s TCP
mongodb 9.994s 2.499s TCP
postgresql 255.2s 63.79s 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.241s 1.241s 1.241s 0s 0
bonsaidb-local+lz4 1.279s 1.279s 1.279s 0s 0
bonsaidb-quic 1.396s 1.396s 1.396s 0s 0
bonsaidb-ws 1.403s 1.403s 1.403s 0s 0
mongodb 153.2ms 153.2ms 153.2ms 0s 0
postgresql 11.13s 11.13s 11.13s 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 2678 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 347.6us 78.87us 12.65ms 450.0us 5
bonsaidb-local+lz4 340.9us 96.77us 999.9us 118.7us 30
bonsaidb-quic 980.3us 347.8us 2.806ms 214.0us 13
bonsaidb-ws 805.6us 272.2us 11.01ms 273.1us 7
mongodb 577.7us 257.0us 2.282ms 220.0us 57
postgresql 11.41ms 387.8us 188.0ms 11.18ms 13
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 2803 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 640.7us 184.3us 27.36ms 1.178ms 12
bonsaidb-local+lz4 625.2us 152.9us 24.64ms 1.004ms 6
bonsaidb-quic 1.525ms 576.0us 27.32ms 989.9us 5
bonsaidb-ws 1.268ms 442.1us 24.53ms 920.4us 6
mongodb 629.1us 286.3us 5.787ms 291.4us 30
postgresql 11.42ms 354.3us 145.6ms 10.59ms 20
CreateCart

Measures the time spent creating a shopping cart.

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 42.93ms 11.60ms 96.11ms 12.18ms 4
bonsaidb-local+lz4 43.86ms 10.60ms 324.4ms 15.96ms 6
bonsaidb-quic 44.01ms 11.70ms 148.6ms 12.00ms 6
bonsaidb-ws 44.34ms 16.59ms 250.5ms 14.69ms 4
mongodb 268.5us 116.9us 4.779ms 192.1us 8
postgresql 8.062ms 1.861ms 866.6ms 27.53ms 1
AddProductToCart

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

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 45.30ms 11.09ms 296.6ms 12.61ms 29
bonsaidb-local+lz4 45.66ms 11.21ms 924.0ms 23.33ms 13
bonsaidb-quic 46.78ms 12.45ms 693.0ms 20.45ms 21
bonsaidb-ws 46.67ms 11.83ms 415.8ms 15.11ms 18
mongodb 340.8us 146.5us 7.360ms 200.2us 64
postgresql 7.876ms 1.820ms 878.7ms 21.76ms 6
Checkout

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

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 78.52ms 24.23ms 139.6ms 19.25ms 3
bonsaidb-local+lz4 80.00ms 30.54ms 961.2ms 45.86ms 2
bonsaidb-quic 85.08ms 35.02ms 411.1ms 22.70ms 4
bonsaidb-ws 84.08ms 40.14ms 169.9ms 16.80ms 6
mongodb 608.2us 309.1us 2.253ms 233.9us 14
postgresql 8.747ms 2.388ms 97.51ms 4.255ms 5
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 3902 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 91.06ms 30.17ms 797.2ms 30.14ms 10
bonsaidb-local+lz4 90.77ms 27.77ms 937.1ms 26.63ms 9
bonsaidb-quic 95.07ms 29.82ms 754.5ms 25.78ms 23
bonsaidb-ws 95.54ms 29.70ms 1.752s 55.55ms 6
mongodb 1.038ms 371.7us 255.6ms 6.542ms 4
postgresql 32.53ms 10.25ms 200.9ms 14.20ms 37