BonsaiDb Commerce Benchmark

large, writeheavy, 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 2678
FindProduct 2803
CreateCart 987
AddProductToCart 4942
Checkout 874
RateProduct 3902

Summary

Backend Total Time Wall Time Transport
bonsaidb-local 26.98s 3.372s None
bonsaidb-local+lz4 27.85s 3.482s TCP
bonsaidb-quic 50.68s 6.335s UDP with TLS
bonsaidb-ws 42.28s 5.285s TCP
mongodb 85.36s 10.67s TCP
postgresql 417.5s 52.19s 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.617s 1.617s 1.617s 0s 0
bonsaidb-local+lz4 1.530s 1.530s 1.530s 0s 0
bonsaidb-quic 1.878s 1.878s 1.878s 0s 0
bonsaidb-ws 1.454s 1.454s 1.454s 0s 0
mongodb 318.8ms 318.8ms 318.8ms 0s 0
postgresql 18.99s 18.99s 18.99s 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 2678 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 245.6us 60.08us 1.922ms 141.0us 44
bonsaidb-local+lz4 233.2us 73.92us 1.654ms 110.4us 37
bonsaidb-quic 1.077ms 512.9us 12.90ms 512.3us 15
bonsaidb-ws 853.2us 354.3us 5.736ms 343.1us 19
mongodb 1.435ms 440.0us 12.49ms 648.0us 44
postgresql 33.73ms 543.1us 146.3ms 21.76ms 32
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 2803 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 465.6us 138.3us 6.525ms 241.1us 27
bonsaidb-local+lz4 457.9us 172.0us 5.007ms 228.6us 24
bonsaidb-quic 1.756ms 798.1us 15.69ms 725.8us 17
bonsaidb-ws 1.399ms 640.3us 6.139ms 400.3us 32
mongodb 1.518ms 487.9us 12.23ms 693.8us 42
postgresql 34.30ms 522.0us 241.4ms 21.95ms 28
CreateCart

Measures the time spent creating a shopping cart.

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 1.209ms 147.4us 5.555ms 550.0us 13
bonsaidb-local+lz4 1.278ms 187.1us 3.874ms 486.2us 14
bonsaidb-quic 1.954ms 436.0us 11.03ms 748.2us 8
bonsaidb-ws 1.666ms 431.5us 5.953ms 585.5us 11
mongodb 6.171ms 2.409ms 36.34ms 2.489ms 7
postgresql 4.581ms 2.141ms 36.68ms 2.450ms 12
AddProductToCart

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

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 1.300ms 183.5us 25.77ms 763.7us 23
bonsaidb-local+lz4 1.373ms 259.7us 15.20ms 586.8us 39
bonsaidb-quic 2.472ms 702.4us 13.70ms 858.8us 34
bonsaidb-ws 2.076ms 625.6us 15.81ms 774.4us 28
mongodb 6.186ms 2.528ms 37.99ms 2.184ms 62
postgresql 4.389ms 1.879ms 160.5ms 2.990ms 21
Checkout

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

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 2.448ms 677.8us 29.07ms 1.362ms 6
bonsaidb-local+lz4 2.494ms 749.8us 9.546ms 786.8us 4
bonsaidb-quic 4.544ms 1.471ms 19.95ms 1.321ms 8
bonsaidb-ws 3.821ms 1.184ms 24.35ms 1.333ms 6
mongodb 12.52ms 6.696ms 30.49ms 2.647ms 12
postgresql 1.740ms 613.8us 8.407ms 763.7us 17
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 3902 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 3.496ms 824.9us 37.91ms 1.606ms 13
bonsaidb-local+lz4 3.637ms 866.1us 34.09ms 1.364ms 8
bonsaidb-quic 5.862ms 1.097ms 20.10ms 1.583ms 25
bonsaidb-ws 4.966ms 1.396ms 25.82ms 1.359ms 28
mongodb 7.520ms 988.9us 41.22ms 3.302ms 28
postgresql 47.25ms 9.804ms 231.1ms 17.40ms 11