BonsaiDb Commerce Benchmark

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

Operation Invocations
Load 1
LookupProduct 2719
FindProduct 2738
CreateCart 390
AddProductToCart 539
Checkout 34
RateProduct 3

Summary

Backend Total Time Wall Time Transport
bonsaidb-local 18.09s 18.09s None
bonsaidb-local+lz4 19.20s 19.20s TCP
bonsaidb-quic 20.88s 20.88s UDP with TLS
bonsaidb-ws 20.71s 20.71s TCP
mongodb 2.372s 2.372s TCP
postgresql 17.99s 17.99s 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.295s 1.295s 1.295s 0s 0
bonsaidb-local+lz4 1.385s 1.385s 1.385s 0s 0
bonsaidb-quic 1.262s 1.262s 1.262s 0s 0
bonsaidb-ws 1.356s 1.356s 1.356s 0s 0
mongodb 153.5ms 153.5ms 153.5ms 0s 0
postgresql 11.16s 11.16s 11.16s 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 2719 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 151.0us 45.21us 2.763ms 77.77us 8
bonsaidb-local+lz4 134.9us 57.08us 871.4us 56.13us 37
bonsaidb-quic 515.1us 207.7us 1.850ms 169.7us 14
bonsaidb-ws 437.8us 162.0us 3.291ms 146.5us 24
mongodb 341.3us 226.4us 1.104ms 88.76us 27
postgresql 470.2us 224.6us 2.151ms 129.4us 19
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 2738 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 270.5us 77.79us 26.45ms 524.4us 3
bonsaidb-local+lz4 255.0us 91.15us 25.47ms 496.1us 2
bonsaidb-quic 827.9us 321.1us 29.08ms 621.2us 2
bonsaidb-ws 713.6us 229.4us 28.32ms 583.7us 4
mongodb 374.8us 248.0us 1.656ms 96.73us 19
postgresql 522.1us 244.8us 13.35ms 304.3us 5
CreateCart

Measures the time spent creating a shopping cart.

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 15.53ms 10.47ms 36.39ms 2.907ms 9
bonsaidb-local+lz4 15.66ms 11.02ms 64.96ms 4.375ms 9
bonsaidb-quic 15.62ms 10.78ms 43.25ms 2.645ms 9
bonsaidb-ws 15.91ms 10.87ms 36.18ms 2.782ms 12
mongodb 178.3us 120.2us 360.3us 48.74us 5
postgresql 4.164ms 3.467ms 8.256ms 713.7us 14
AddProductToCart

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

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 15.41ms 10.89ms 34.98ms 2.549ms 10
bonsaidb-local+lz4 17.26ms 10.51ms 441.7ms 22.71ms 2
bonsaidb-quic 16.12ms 11.17ms 37.64ms 2.914ms 13
bonsaidb-ws 16.35ms 11.07ms 45.94ms 3.060ms 13
mongodb 223.4us 147.6us 557.7us 59.63us 6
postgresql 4.244ms 3.479ms 14.85ms 1.021ms 10
Checkout

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

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 34.32ms 26.07ms 91.13ms 12.38ms 1
bonsaidb-local+lz4 36.73ms 26.38ms 187.4ms 27.08ms 1
bonsaidb-quic 31.46ms 24.17ms 43.76ms 3.144ms 1
bonsaidb-ws 32.12ms 27.26ms 57.31ms 5.649ms 1
mongodb 408.5us 294.9us 655.9us 91.89us 0
postgresql 4.791ms 3.962ms 8.674ms 923.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 3 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 37.32ms 31.32ms 48.45ms 7.880ms 0
bonsaidb-local+lz4 30.63ms 29.57ms 32.74ms 1.488ms 0
bonsaidb-quic 33.27ms 32.26ms 34.58ms 972.7us 0
bonsaidb-ws 33.14ms 31.64ms 34.43ms 1.149ms 0
mongodb 20.24ms 551.3us 59.32ms 27.64ms 0
postgresql 15.17ms 12.66ms 18.62ms 2.524ms 0