BonsaiDb Commerce Benchmark

large, writeheavy, 8 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 8 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 21.34m 160.0s None
bonsaidb-local+lz4 21.51m 161.3s TCP
bonsaidb-quic 23.44m 175.8s UDP with TLS
bonsaidb-ws 21.31m 159.8s TCP
mongodb 15.85s 1.981s TCP
postgresql 430.7s 53.83s 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.181s 1.181s 1.181s 0s 0
bonsaidb-local+lz4 1.093s 1.093s 1.093s 0s 0
bonsaidb-quic 1.074s 1.074s 1.074s 0s 0
bonsaidb-ws 1.230s 1.230s 1.230s 0s 0
mongodb 156.1ms 156.1ms 156.1ms 0s 0
postgresql 11.72s 11.72s 11.72s 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 375.0us 114.7us 22.89ms 764.4us 4
bonsaidb-local+lz4 380.6us 84.82us 23.57ms 786.2us 3
bonsaidb-quic 1.020ms 388.6us 28.85ms 943.7us 4
bonsaidb-ws 1.114ms 375.7us 255.6ms 8.501ms 3
mongodb 835.8us 231.6us 14.79ms 629.0us 42
postgresql 30.22ms 425.7us 203.1ms 22.14ms 28
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 636.3us 147.3us 22.87ms 1.009ms 10
bonsaidb-local+lz4 650.7us 173.8us 23.79ms 982.7us 5
bonsaidb-quic 1.575ms 661.8us 29.18ms 1.193ms 8
bonsaidb-ws 1.742ms 540.7us 256.2ms 10.71ms 5
mongodb 905.8us 262.2us 14.77ms 669.0us 35
postgresql 31.58ms 503.8us 197.6ms 23.22ms 36
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 83.29ms 16.30ms 618.1ms 29.68ms 7
bonsaidb-local+lz4 82.16ms 14.06ms 169.0ms 19.66ms 8
bonsaidb-quic 88.56ms 15.59ms 857.0ms 46.84ms 9
bonsaidb-ws 82.31ms 16.68ms 678.5ms 38.22ms 11
mongodb 385.5us 98.72us 5.850ms 349.3us 10
postgresql 7.472ms 1.957ms 49.93ms 3.632ms 11
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 81.27ms 14.99ms 664.4ms 26.83ms 38
bonsaidb-local+lz4 81.73ms 15.15ms 452.1ms 24.02ms 18
bonsaidb-quic 86.47ms 15.26ms 832.0ms 40.97ms 41
bonsaidb-ws 79.79ms 18.37ms 702.1ms 34.95ms 31
mongodb 462.6us 142.8us 14.72ms 464.4us 52
postgresql 7.297ms 1.756ms 95.90ms 2.839ms 45
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 149.1ms 30.12ms 727.2ms 45.23ms 7
bonsaidb-local+lz4 149.0ms 54.60ms 427.1ms 38.28ms 2
bonsaidb-quic 166.8ms 76.53ms 916.9ms 62.15ms 13
bonsaidb-ws 150.1ms 62.83ms 760.4ms 44.04ms 5
mongodb 877.0us 286.6us 12.18ms 720.0us 8
postgresql 8.515ms 2.557ms 32.79ms 2.505ms 9
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 169.7ms 25.91ms 774.0ms 43.75ms 35
bonsaidb-local+lz4 172.0ms 28.58ms 663.3ms 43.10ms 18
bonsaidb-quic 189.0ms 27.63ms 920.2ms 60.18ms 47
bonsaidb-ws 169.8ms 29.44ms 851.4ms 46.14ms 30
mongodb 1.918ms 387.6us 452.0ms 17.91ms 8
postgresql 50.90ms 12.29ms 186.9ms 19.09ms 34