BonsaiDb Commerce Benchmark

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

Summary

Backend Total Time Wall Time Transport
bonsaidb-local 787.5s 196.9s None
bonsaidb-local+lz4 784.8s 196.2s TCP
bonsaidb-quic 801.2s 200.3s UDP with TLS
bonsaidb-ws 798.7s 199.7s TCP
mongodb 9.846s 2.462s TCP
postgresql 206.4s 51.61s 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 290.3ms 290.3ms 290.3ms 0s 0
bonsaidb-local+lz4 272.8ms 272.8ms 272.8ms 0s 0
bonsaidb-quic 344.8ms 344.8ms 344.8ms 0s 0
bonsaidb-ws 376.3ms 376.3ms 376.3ms 0s 0
mongodb 42.15ms 42.15ms 42.15ms 0s 0
postgresql 2.143s 2.143s 2.143s 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 365.6us 67.13us 26.72ms 916.9us 5
bonsaidb-local+lz4 383.3us 78.87us 22.89ms 818.7us 6
bonsaidb-quic 988.5us 333.0us 22.96ms 793.0us 4
bonsaidb-ws 827.8us 272.9us 17.77ms 593.9us 5
mongodb 583.6us 227.5us 5.350ms 270.8us 40
postgresql 8.853ms 303.3us 1.216s 24.34ms 1
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 573.5us 153.4us 24.93ms 502.2us 3
bonsaidb-local+lz4 625.2us 155.2us 23.06ms 689.1us 10
bonsaidb-quic 1.467ms 570.3us 22.53ms 520.6us 4
bonsaidb-ws 1.254ms 450.4us 19.58ms 522.2us 5
mongodb 621.3us 270.2us 6.271ms 272.6us 37
postgresql 8.515ms 363.2us 156.7ms 7.946ms 16
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 49.46ms 14.22ms 633.1ms 23.91ms 6
bonsaidb-local+lz4 47.83ms 13.18ms 170.3ms 14.52ms 4
bonsaidb-quic 49.20ms 16.20ms 1.150s 37.63ms 3
bonsaidb-ws 49.76ms 13.75ms 1.880s 59.36ms 1
mongodb 275.6us 106.0us 2.139ms 153.0us 20
postgresql 7.205ms 3.848ms 35.11ms 2.305ms 14
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 51.60ms 13.53ms 660.1ms 21.05ms 25
bonsaidb-local+lz4 51.83ms 13.16ms 1.152s 26.37ms 26
bonsaidb-quic 51.19ms 15.44ms 1.152s 32.34ms 13
bonsaidb-ws 51.16ms 13.89ms 1.356s 27.30ms 12
mongodb 339.1us 127.4us 5.263ms 199.2us 78
postgresql 7.434ms 2.332ms 235.5ms 5.207ms 14
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 88.94ms 35.66ms 711.4ms 33.01ms 5
bonsaidb-local+lz4 89.11ms 35.72ms 345.8ms 25.73ms 8
bonsaidb-quic 93.62ms 46.37ms 1.196s 55.25ms 3
bonsaidb-ws 91.49ms 47.15ms 239.8ms 19.20ms 3
mongodb 606.9us 248.7us 4.231ms 266.8us 10
postgresql 8.622ms 4.249ms 224.4ms 7.534ms 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 3929 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 102.6ms 28.46ms 509.5ms 32.02ms 37
bonsaidb-local+lz4 101.9ms 30.63ms 1.370s 45.99ms 16
bonsaidb-quic 104.5ms 32.43ms 1.386s 51.96ms 14
bonsaidb-ws 104.5ms 31.20ms 1.947s 53.78ms 10
mongodb 1.029ms 356.3us 216.9ms 6.278ms 4
postgresql 26.89ms 11.84ms 1.167s 32.87ms 11