BonsaiDb Commerce Benchmark

medium, readheavy, 4 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 4 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 60.93s 15.23s None
bonsaidb-local+lz4 62.73s 15.68s TCP
bonsaidb-quic 59.80s 14.95s UDP with TLS
bonsaidb-ws 60.40s 15.10s TCP
mongodb 3.832s 957.9ms TCP
postgresql 11.48s 2.871s 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 285.8ms 285.8ms 285.8ms 0s 0
bonsaidb-local+lz4 286.8ms 286.8ms 286.8ms 0s 0
bonsaidb-quic 346.6ms 346.6ms 346.6ms 0s 0
bonsaidb-ws 344.6ms 344.6ms 344.6ms 0s 0
mongodb 48.39ms 48.39ms 48.39ms 0s 0
postgresql 1.971s 1.971s 1.971s 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 159.6us 30.35us 15.74ms 427.4us 3
bonsaidb-local+lz4 154.0us 36.09us 17.05ms 459.3us 2
bonsaidb-quic 559.3us 201.3us 26.31ms 691.1us 5
bonsaidb-ws 479.4us 179.5us 17.83ms 486.9us 3
mongodb 590.0us 281.8us 3.470ms 231.8us 41
postgresql 476.2us 156.6us 24.01ms 596.3us 13
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 261.2us 55.13us 15.76ms 436.8us 2
bonsaidb-local+lz4 259.9us 62.22us 17.87ms 482.7us 3
bonsaidb-quic 867.2us 322.6us 24.80ms 705.3us 6
bonsaidb-ws 758.1us 295.6us 17.51ms 512.2us 5
mongodb 640.3us 296.9us 3.893ms 252.1us 42
postgresql 550.7us 175.9us 24.45ms 913.3us 14
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 56.61ms 25.05ms 93.55ms 8.674ms 12
bonsaidb-local+lz4 58.55ms 23.56ms 102.9ms 9.683ms 9
bonsaidb-quic 51.20ms 17.39ms 125.5ms 10.95ms 5
bonsaidb-ws 52.42ms 18.26ms 93.55ms 9.810ms 9
mongodb 294.7us 133.6us 1.927ms 179.4us 8
postgresql 5.994ms 3.645ms 22.28ms 1.945ms 8
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 59.69ms 29.29ms 241.8ms 16.60ms 4
bonsaidb-local+lz4 61.28ms 28.00ms 98.07ms 8.968ms 9
bonsaidb-quic 56.77ms 28.95ms 136.4ms 10.44ms 7
bonsaidb-ws 57.85ms 24.35ms 103.2ms 10.10ms 12
mongodb 381.4us 169.9us 1.787ms 177.0us 9
postgresql 7.311ms 3.757ms 25.36ms 2.408ms 11
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 105.8ms 79.07ms 130.2ms 10.20ms 0
bonsaidb-local+lz4 110.1ms 85.17ms 143.3ms 11.60ms 0
bonsaidb-quic 102.7ms 68.38ms 172.9ms 15.30ms 1
bonsaidb-ws 102.7ms 75.75ms 127.7ms 11.32ms 0
mongodb 624.1us 423.4us 1.111ms 158.2us 1
postgresql 7.015ms 4.705ms 15.31ms 1.903ms 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 84.32ms 70.86ms 100.8ms 13.02ms 0
bonsaidb-local+lz4 84.66ms 71.11ms 107.6ms 14.45ms 0
bonsaidb-quic 74.85ms 57.17ms 93.05ms 12.88ms 0
bonsaidb-ws 85.09ms 70.71ms 112.2ms 16.71ms 0
mongodb 15.43ms 862.1us 58.49ms 24.86ms 0
postgresql 15.80ms 15.02ms 17.49ms 1.002ms 0