BonsaiDb Commerce Benchmark

small, readheavy, 1 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 1 worker(s). All total, the workers will execute the following breakdown of operations:

Operation Invocations
Load 1
LookupProduct 2763
FindProduct 2868
CreateCart 433
AddProductToCart 588
Checkout 38
RateProduct 5

Summary

Backend Total Time Wall Time Transport
bonsaidb-local 8.958s 8.958s None
bonsaidb-local+lz4 9.509s 9.509s TCP
bonsaidb-quic 12.55s 12.55s UDP with TLS
bonsaidb-ws 11.53s 11.53s TCP
mongodb 1.994s 1.994s TCP
postgresql 4.042s 4.042s 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 45.69ms 45.69ms 45.69ms 0s 0
bonsaidb-local+lz4 54.48ms 54.48ms 54.48ms 0s 0
bonsaidb-quic 63.00ms 63.00ms 63.00ms 0s 0
bonsaidb-ws 64.39ms 64.39ms 64.39ms 0s 0
mongodb 7.768ms 7.768ms 7.768ms 0s 0
postgresql 258.1ms 258.1ms 258.1ms 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 2763 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 115.3us 31.97us 345.2us 45.59us 38
bonsaidb-local+lz4 91.83us 19.76us 714.5us 46.53us 40
bonsaidb-quic 518.4us 219.1us 9.198ms 219.8us 1
bonsaidb-ws 423.6us 155.5us 2.975ms 135.0us 8
mongodb 298.6us 186.8us 1.064ms 66.92us 58
postgresql 272.7us 113.4us 1.160ms 86.22us 40
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 2868 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 199.6us 56.61us 13.53ms 265.0us 2
bonsaidb-local+lz4 167.0us 35.23us 8.319ms 190.1us 2
bonsaidb-quic 819.8us 304.6us 10.95ms 305.8us 5
bonsaidb-ws 676.7us 242.6us 10.55ms 321.2us 3
mongodb 328.9us 219.8us 1.103ms 71.92us 54
postgresql 303.6us 146.4us 2.634ms 108.4us 27
CreateCart

Measures the time spent creating a shopping cart.

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 7.273ms 5.838ms 66.02ms 3.458ms 3
bonsaidb-local+lz4 7.356ms 6.035ms 22.98ms 1.794ms 12
bonsaidb-quic 7.996ms 5.825ms 237.5ms 11.23ms 1
bonsaidb-ws 7.362ms 5.945ms 34.40ms 1.787ms 5
mongodb 152.3us 108.1us 413.3us 38.56us 10
postgresql 2.014ms 1.559ms 15.62ms 946.0us 7
AddProductToCart

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

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 7.267ms 5.671ms 85.52ms 3.704ms 4
bonsaidb-local+lz4 8.359ms 5.836ms 442.0ms 18.88ms 2
bonsaidb-quic 7.798ms 6.030ms 35.64ms 2.100ms 8
bonsaidb-ws 7.658ms 6.194ms 34.80ms 2.104ms 6
mongodb 188.1us 140.3us 412.5us 39.54us 14
postgresql 1.990ms 1.535ms 14.37ms 760.1us 15
Checkout

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

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 13.85ms 12.16ms 19.51ms 1.708ms 2
bonsaidb-local+lz4 14.20ms 12.21ms 24.38ms 2.321ms 1
bonsaidb-quic 15.36ms 13.26ms 23.28ms 1.988ms 1
bonsaidb-ws 15.33ms 13.37ms 29.72ms 2.813ms 1
mongodb 332.5us 269.0us 418.6us 33.67us 0
postgresql 2.389ms 1.930ms 5.088ms 588.9us 1
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 5 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 14.59ms 13.15ms 16.52ms 1.310ms 0
bonsaidb-local+lz4 16.25ms 14.07ms 23.41ms 3.587ms 0
bonsaidb-quic 15.51ms 14.66ms 17.47ms 1.031ms 0
bonsaidb-ws 15.62ms 14.48ms 17.78ms 1.158ms 0
mongodb 5.698ms 532.2us 25.92ms 10.11ms 0
postgresql 5.311ms 4.616ms 6.215ms 575.5us 0