BonsaiDb Commerce Benchmark

medium, writeheavy, 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 2721
FindProduct 2728
CreateCart 994
AddProductToCart 4913
Checkout 887
RateProduct 3929

Summary

Backend Total Time Wall Time Transport
bonsaidb-local 259.2s 259.2s None
bonsaidb-local+lz4 247.2s 247.2s TCP
bonsaidb-quic 269.9s 269.9s UDP with TLS
bonsaidb-ws 272.6s 272.6s TCP
mongodb 7.630s 7.630s TCP
postgresql 89.08s 89.08s 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 307.4ms 307.4ms 307.4ms 0s 0
bonsaidb-local+lz4 293.1ms 293.1ms 293.1ms 0s 0
bonsaidb-quic 431.1ms 431.1ms 431.1ms 0s 0
bonsaidb-ws 354.8ms 354.8ms 354.8ms 0s 0
mongodb 39.77ms 39.77ms 39.77ms 0s 0
postgresql 2.098s 2.098s 2.098s 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 2721 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 257.1us 52.35us 25.84ms 494.7us 1
bonsaidb-local+lz4 268.2us 79.32us 28.70ms 603.1us 3
bonsaidb-quic 856.2us 337.2us 28.68ms 586.7us 3
bonsaidb-ws 668.7us 267.4us 19.27ms 383.8us 2
mongodb 482.0us 308.3us 2.054ms 76.44us 28
postgresql 809.7us 254.9us 2.046ms 278.0us 6
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 2728 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 439.6us 118.6us 4.919ms 133.9us 3
bonsaidb-local+lz4 453.6us 97.97us 1.689ms 105.0us 19
bonsaidb-quic 1.325ms 556.8us 3.198ms 232.7us 18
bonsaidb-ws 1.070ms 434.3us 6.306ms 239.8us 13
mongodb 524.8us 331.6us 2.186ms 82.07us 30
postgresql 976.7us 285.6us 2.848ms 363.8us 7
CreateCart

Measures the time spent creating a shopping cart.

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 16.02ms 9.545ms 39.22ms 3.123ms 30
bonsaidb-local+lz4 15.58ms 10.36ms 157.4ms 5.495ms 5
bonsaidb-quic 16.33ms 10.90ms 69.48ms 3.675ms 15
bonsaidb-ws 16.30ms 10.64ms 137.6ms 6.301ms 5
mongodb 231.8us 154.7us 607.3us 41.27us 16
postgresql 4.453ms 3.706ms 19.76ms 1.125ms 13
AddProductToCart

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

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 16.63ms 9.661ms 1.066s 19.84ms 7
bonsaidb-local+lz4 15.44ms 10.18ms 165.0ms 3.520ms 63
bonsaidb-quic 16.79ms 10.84ms 702.2ms 10.52ms 8
bonsaidb-ws 17.19ms 10.77ms 509.6ms 14.60ms 21
mongodb 281.7us 175.8us 1.640ms 50.17us 74
postgresql 4.394ms 2.999ms 181.8ms 2.727ms 12
Checkout

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

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 32.77ms 22.15ms 742.3ms 24.57ms 2
bonsaidb-local+lz4 30.68ms 23.38ms 63.32ms 4.217ms 19
bonsaidb-quic 33.63ms 24.56ms 294.8ms 10.34ms 7
bonsaidb-ws 33.33ms 25.19ms 271.6ms 12.61ms 6
mongodb 505.0us 317.0us 2.232ms 106.9us 3
postgresql 4.832ms 3.961ms 18.21ms 903.9us 16
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 3929 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 33.15ms 22.92ms 238.9ms 7.490ms 44
bonsaidb-local+lz4 32.16ms 21.24ms 565.5ms 10.35ms 11
bonsaidb-quic 34.35ms 23.70ms 924.2ms 21.29ms 7
bonsaidb-ws 34.94ms 21.83ms 1.860s 34.01ms 18
mongodb 708.7us 448.3us 59.02ms 939.6us 2
postgresql 13.19ms 9.300ms 47.63ms 2.437ms 55