BonsaiDb Commerce Benchmark

large, readheavy, 8 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 8 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 108.2s 13.53s None
bonsaidb-local+lz4 107.6s 13.45s TCP
bonsaidb-quic 105.1s 13.13s UDP with TLS
bonsaidb-ws 104.6s 13.07s TCP
mongodb 4.138s 517.3ms TCP
postgresql 21.23s 2.654s 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.312s 1.312s 1.312s 0s 0
bonsaidb-local+lz4 1.315s 1.315s 1.315s 0s 0
bonsaidb-quic 1.228s 1.228s 1.228s 0s 0
bonsaidb-ws 1.107s 1.107s 1.107s 0s 0
mongodb 160.0ms 160.0ms 160.0ms 0s 0
postgresql 10.90s 10.90s 10.90s 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 205.3us 45.47us 24.30ms 1.029ms 5
bonsaidb-local+lz4 219.1us 36.50us 27.65ms 1.176ms 5
bonsaidb-quic 641.4us 261.0us 31.68ms 1.331ms 5
bonsaidb-ws 535.2us 177.3us 22.57ms 935.2us 6
mongodb 619.5us 183.7us 7.652ms 383.6us 28
postgresql 734.6us 206.3us 21.14ms 982.7us 18
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 302.1us 68.19us 23.97ms 805.3us 7
bonsaidb-local+lz4 320.9us 71.85us 28.23ms 921.6us 4
bonsaidb-quic 955.0us 396.8us 32.18ms 1.115ms 12
bonsaidb-ws 800.5us 287.9us 26.69ms 827.3us 9
mongodb 683.3us 218.6us 6.438ms 416.0us 35
postgresql 837.2us 222.8us 22.75ms 1.068ms 24
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 103.5ms 13.62ms 238.7ms 15.75ms 9
bonsaidb-local+lz4 102.5ms 13.97ms 160.4ms 13.78ms 10
bonsaidb-quic 95.92ms 36.65ms 128.8ms 11.71ms 4
bonsaidb-ws 95.77ms 15.01ms 142.8ms 12.70ms 8
mongodb 327.1us 93.76us 2.596ms 278.5us 6
postgresql 5.722ms 1.690ms 18.66ms 1.905ms 4
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 107.2ms 27.43ms 243.5ms 17.91ms 10
bonsaidb-local+lz4 106.1ms 55.81ms 162.8ms 12.00ms 9
bonsaidb-quic 101.9ms 40.63ms 149.0ms 11.90ms 7
bonsaidb-ws 102.2ms 32.20ms 145.3ms 12.64ms 7
mongodb 417.1us 135.6us 6.301ms 405.6us 4
postgresql 6.551ms 1.824ms 12.80ms 1.781ms 5
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 201.5ms 174.3ms 310.3ms 23.42ms 1
bonsaidb-local+lz4 208.0ms 179.2ms 286.3ms 19.16ms 1
bonsaidb-quic 192.8ms 150.2ms 232.4ms 16.46ms 0
bonsaidb-ws 199.7ms 161.6ms 241.4ms 19.18ms 0
mongodb 699.2us 286.5us 1.383ms 225.8us 1
postgresql 6.840ms 2.889ms 12.07ms 2.120ms 0
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 183.1ms 163.5ms 204.0ms 16.55ms 0
bonsaidb-local+lz4 182.2ms 169.5ms 204.0ms 15.42ms 0
bonsaidb-quic 199.9ms 171.9ms 219.1ms 20.25ms 0
bonsaidb-ws 196.4ms 189.5ms 203.9ms 5.900ms 0
mongodb 15.74ms 1.816ms 43.54ms 19.65ms 0
postgresql 15.75ms 14.55ms 17.09ms 1.041ms 0