BonsaiDb Commerce Benchmark

medium, balanced, 1 agent(s)

Configuration

Initial Data Set
Type Count
Products 1000
Categories 50
Customers 1000
Orders 1500
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 2824
FindProduct 2760
CreateCart 723
AddProductToCart 1379
Checkout 200
RateProduct 96

Summary

Backend Total Time Wall Time Transport
bonsaidb-local 44.08s 44.08s None
bonsaidb-local+lz4 43.17s 43.17s TCP
bonsaidb-quic 50.46s 50.46s UDP with TLS
bonsaidb-ws 48.19s 48.19s TCP
mongodb 3.026s 3.026s TCP
postgresql 16.14s 16.14s 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 313.9ms 313.9ms 313.9ms 0s 0
bonsaidb-local+lz4 253.9ms 253.9ms 253.9ms 0s 0
bonsaidb-quic 356.3ms 356.3ms 356.3ms 0s 0
bonsaidb-ws 359.4ms 359.4ms 359.4ms 0s 0
mongodb 37.84ms 37.84ms 37.84ms 0s 0
postgresql 2.152s 2.152s 2.152s 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 2824 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 174.4us 37.43us 25.99ms 490.7us 1
bonsaidb-local+lz4 173.2us 34.16us 22.09ms 418.0us 1
bonsaidb-quic 642.8us 224.6us 19.52ms 394.6us 3
bonsaidb-ws 490.3us 166.1us 16.12ms 331.3us 3
mongodb 397.1us 217.2us 869.8us 86.23us 27
postgresql 469.4us 209.9us 1.451ms 155.5us 77
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 2760 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 305.2us 54.00us 2.643ms 146.5us 7
bonsaidb-local+lz4 315.9us 57.99us 875.9us 139.9us 4
bonsaidb-quic 1.027ms 374.7us 3.719ms 274.1us 6
bonsaidb-ws 803.5us 265.3us 3.912ms 251.8us 21
mongodb 432.2us 244.0us 1.471ms 97.70us 20
postgresql 545.7us 209.4us 16.10ms 392.4us 4
CreateCart

Measures the time spent creating a shopping cart.

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 15.66ms 10.55ms 42.80ms 3.052ms 19
bonsaidb-local+lz4 15.20ms 10.45ms 41.18ms 2.393ms 18
bonsaidb-quic 16.06ms 10.76ms 51.84ms 3.067ms 15
bonsaidb-ws 16.15ms 10.84ms 34.37ms 2.727ms 17
mongodb 194.3us 118.2us 438.3us 46.68us 6
postgresql 4.285ms 3.059ms 15.96ms 883.2us 17
AddProductToCart

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

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 15.78ms 10.55ms 53.52ms 3.183ms 38
bonsaidb-local+lz4 15.45ms 10.50ms 36.89ms 2.662ms 34
bonsaidb-quic 16.75ms 11.14ms 168.2ms 6.134ms 8
bonsaidb-ws 16.49ms 11.09ms 47.17ms 3.163ms 40
mongodb 241.4us 153.0us 684.7us 59.24us 19
postgresql 4.312ms 2.909ms 78.39ms 2.197ms 5
Checkout

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

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 31.56ms 26.38ms 50.73ms 4.348ms 7
bonsaidb-local+lz4 30.53ms 23.88ms 51.08ms 3.688ms 5
bonsaidb-quic 37.68ms 26.09ms 1.106s 75.82ms 1
bonsaidb-ws 33.12ms 26.32ms 64.07ms 5.340ms 6
mongodb 434.2us 281.8us 722.7us 95.17us 1
postgresql 5.000ms 3.622ms 55.96ms 3.671ms 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 96 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 31.58ms 26.20ms 64.21ms 4.495ms 1
bonsaidb-local+lz4 32.93ms 25.51ms 68.83ms 5.938ms 2
bonsaidb-quic 33.40ms 27.32ms 50.90ms 4.438ms 2
bonsaidb-ws 33.13ms 24.93ms 49.35ms 3.905ms 2
mongodb 1.192ms 456.8us 52.18ms 5.234ms 1
postgresql 11.56ms 8.946ms 28.08ms 2.246ms 1