BonsaiDb Commerce Benchmark

medium, readheavy, 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 2758
FindProduct 2727
CreateCart 416
AddProductToCart 531
Checkout 37
RateProduct 4

Summary

Backend Total Time Wall Time Transport
bonsaidb-local 16.94s 16.94s None
bonsaidb-local+lz4 16.62s 16.62s TCP
bonsaidb-quic 20.12s 20.12s UDP with TLS
bonsaidb-ws 19.27s 19.27s TCP
mongodb 2.716s 2.716s TCP
postgresql 8.712s 8.712s 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 296.0ms 296.0ms 296.0ms 0s 0
bonsaidb-local+lz4 265.9ms 265.9ms 265.9ms 0s 0
bonsaidb-quic 381.7ms 381.7ms 381.7ms 0s 0
bonsaidb-ws 309.3ms 309.3ms 309.3ms 0s 0
mongodb 40.50ms 40.50ms 40.50ms 0s 0
postgresql 2.317s 2.317s 2.317s 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 2758 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 135.9us 43.11us 17.40ms 333.5us 1
bonsaidb-local+lz4 111.4us 27.43us 22.72ms 434.3us 2
bonsaidb-quic 541.7us 204.6us 22.54ms 449.4us 2
bonsaidb-ws 439.5us 174.6us 42.80ms 817.3us 1
mongodb 409.2us 236.3us 1.476ms 84.44us 25
postgresql 384.3us 152.9us 4.814ms 142.3us 17
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 2727 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 231.5us 71.00us 775.0us 117.6us 37
bonsaidb-local+lz4 201.5us 39.70us 3.084ms 133.5us 19
bonsaidb-quic 846.0us 313.4us 2.272ms 264.8us 9
bonsaidb-ws 686.3us 243.6us 3.484ms 228.6us 17
mongodb 448.3us 256.3us 2.161ms 95.95us 19
postgresql 432.5us 193.8us 14.28ms 293.4us 6
CreateCart

Measures the time spent creating a shopping cart.

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 15.07ms 10.24ms 37.43ms 3.274ms 8
bonsaidb-local+lz4 15.02ms 10.52ms 47.44ms 3.229ms 8
bonsaidb-quic 15.14ms 10.59ms 34.52ms 2.465ms 6
bonsaidb-ws 15.26ms 10.70ms 38.49ms 2.898ms 10
mongodb 213.7us 120.8us 395.2us 44.16us 5
postgresql 4.188ms 3.591ms 10.68ms 723.0us 9
AddProductToCart

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

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 15.28ms 10.43ms 35.94ms 3.159ms 19
bonsaidb-local+lz4 15.04ms 10.46ms 38.06ms 2.947ms 16
bonsaidb-quic 15.70ms 10.81ms 34.98ms 2.437ms 13
bonsaidb-ws 15.60ms 11.69ms 30.76ms 2.337ms 12
mongodb 264.7us 147.9us 569.3us 53.41us 7
postgresql 4.131ms 3.449ms 16.71ms 786.2us 10
Checkout

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

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 30.58ms 25.74ms 44.65ms 3.402ms 1
bonsaidb-local+lz4 30.74ms 23.10ms 58.60ms 5.890ms 1
bonsaidb-quic 31.57ms 26.22ms 50.74ms 4.524ms 1
bonsaidb-ws 30.39ms 24.59ms 42.47ms 3.042ms 1
mongodb 494.1us 384.2us 603.0us 62.71us 0
postgresql 4.734ms 3.815ms 6.500ms 528.3us 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 4 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 32.17ms 27.27ms 41.14ms 5.349ms 0
bonsaidb-local+lz4 31.13ms 29.01ms 32.99ms 1.417ms 0
bonsaidb-quic 34.53ms 31.12ms 37.53ms 2.406ms 0
bonsaidb-ws 30.11ms 27.12ms 31.90ms 1.924ms 0
mongodb 19.19ms 637.7us 74.44ms 31.90ms 0
postgresql 11.14ms 10.79ms 11.43ms 229.9us 0