BonsaiDb Commerce Benchmark

medium, writeheavy, 8 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 8 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 23.44m 175.8s None
bonsaidb-local+lz4 24.86m 186.4s TCP
bonsaidb-quic 24.40m 183.0s UDP with TLS
bonsaidb-ws 23.89m 179.1s TCP
mongodb 16.06s 2.008s TCP
postgresql 391.7s 48.97s 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.9ms 290.9ms 290.9ms 0s 0
bonsaidb-local+lz4 260.9ms 260.9ms 260.9ms 0s 0
bonsaidb-quic 303.9ms 303.9ms 303.9ms 0s 0
bonsaidb-ws 290.3ms 290.3ms 290.3ms 0s 0
mongodb 41.97ms 41.97ms 41.97ms 0s 0
postgresql 2.122s 2.122s 2.122s 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 379.2us 97.25us 17.62ms 847.1us 7
bonsaidb-local+lz4 414.8us 66.11us 26.58ms 1.233ms 6
bonsaidb-quic 1.030ms 327.4us 27.46ms 1.226ms 6
bonsaidb-ws 900.6us 307.0us 21.80ms 974.5us 7
mongodb 797.3us 260.5us 7.519ms 426.8us 38
postgresql 27.49ms 356.4us 649.8ms 27.88ms 8
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 589.7us 180.9us 17.66ms 483.0us 2
bonsaidb-local+lz4 648.2us 148.8us 27.23ms 885.8us 9
bonsaidb-quic 1.496ms 610.5us 27.99ms 765.1us 2
bonsaidb-ws 1.331ms 487.4us 21.18ms 589.0us 6
mongodb 866.2us 298.8us 9.755ms 472.6us 39
postgresql 27.88ms 361.4us 635.1ms 23.14ms 20
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 90.88ms 14.11ms 886.6ms 34.97ms 6
bonsaidb-local+lz4 97.73ms 16.41ms 1.327s 74.45ms 11
bonsaidb-quic 93.09ms 17.32ms 794.7ms 43.15ms 7
bonsaidb-ws 90.09ms 17.49ms 1.347s 44.67ms 1
mongodb 369.1us 99.15us 2.245ms 251.2us 14
postgresql 8.345ms 3.985ms 34.07ms 2.828ms 12
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 88.71ms 16.70ms 887.8ms 30.39ms 28
bonsaidb-local+lz4 94.74ms 22.75ms 1.300s 57.69ms 51
bonsaidb-quic 90.16ms 26.79ms 788.7ms 39.49ms 21
bonsaidb-ws 88.56ms 27.25ms 1.303s 40.44ms 9
mongodb 454.7us 141.3us 6.731ms 327.0us 73
postgresql 8.481ms 3.803ms 614.2ms 12.74ms 3
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 162.0ms 45.34ms 768.6ms 52.90ms 7
bonsaidb-local+lz4 169.6ms 55.39ms 1.441s 94.92ms 7
bonsaidb-quic 171.2ms 75.96ms 834.9ms 56.07ms 5
bonsaidb-ws 165.6ms 53.90ms 340.5ms 34.52ms 5
mongodb 883.5us 298.5us 6.040ms 508.6us 18
postgresql 9.448ms 4.291ms 103.0ms 4.009ms 4
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 186.7ms 46.86ms 1.007s 58.78ms 25
bonsaidb-local+lz4 197.3ms 29.24ms 1.586s 102.8ms 57
bonsaidb-quic 195.8ms 31.89ms 975.9ms 52.80ms 31
bonsaidb-ws 192.2ms 34.80ms 1.499s 50.19ms 11
mongodb 2.063ms 393.5us 524.4ms 20.84ms 8
postgresql 45.92ms 12.71ms 652.8ms 21.32ms 8