BonsaiDb Commerce Benchmark

medium, balanced, 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 2824
FindProduct 2760
CreateCart 723
AddProductToCart 1379
Checkout 200
RateProduct 96

Summary

Backend Total Time Wall Time Transport
bonsaidb-local 156.9s 39.23s None
bonsaidb-local+lz4 153.6s 38.39s TCP
bonsaidb-quic 147.2s 36.81s UDP with TLS
bonsaidb-ws 158.8s 39.71s TCP
mongodb 4.338s 1.085s TCP
postgresql 27.76s 6.939s 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 272.8ms 272.8ms 272.8ms 0s 0
bonsaidb-local+lz4 291.2ms 291.2ms 291.2ms 0s 0
bonsaidb-quic 281.8ms 281.8ms 281.8ms 0s 0
bonsaidb-ws 387.8ms 387.8ms 387.8ms 0s 0
mongodb 48.85ms 48.85ms 48.85ms 0s 0
postgresql 2.334s 2.334s 2.334s 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 2824 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 205.5us 40.47us 24.96ms 665.5us 2
bonsaidb-local+lz4 213.5us 46.86us 25.16ms 666.0us 3
bonsaidb-quic 692.8us 267.1us 30.34ms 810.0us 4
bonsaidb-ws 572.5us 210.3us 13.43ms 388.5us 5
mongodb 562.7us 226.8us 9.873ms 324.0us 22
postgresql 828.4us 185.6us 18.94ms 1.411ms 80
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 2760 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 348.0us 76.28us 24.99ms 684.6us 3
bonsaidb-local+lz4 364.4us 60.49us 24.76ms 678.7us 3
bonsaidb-quic 1.067ms 416.8us 29.62ms 826.0us 4
bonsaidb-ws 907.8us 337.4us 13.32ms 548.2us 12
mongodb 610.1us 271.7us 11.62ms 332.5us 20
postgresql 988.9us 203.9us 47.57ms 2.063ms 57
CreateCart

Measures the time spent creating a shopping cart.

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 57.14ms 15.20ms 397.1ms 17.97ms 5
bonsaidb-local+lz4 56.88ms 25.27ms 149.0ms 11.73ms 12
bonsaidb-quic 50.97ms 20.80ms 89.63ms 9.439ms 6
bonsaidb-ws 55.70ms 19.31ms 498.3ms 19.82ms 1
mongodb 272.3us 121.4us 1.193ms 128.5us 12
postgresql 7.700ms 3.948ms 348.1ms 17.21ms 4
AddProductToCart

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

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 60.68ms 22.17ms 640.9ms 35.85ms 8
bonsaidb-local+lz4 58.26ms 20.86ms 151.1ms 10.67ms 19
bonsaidb-quic 55.65ms 18.55ms 100.8ms 9.725ms 21
bonsaidb-ws 59.98ms 27.88ms 372.8ms 18.84ms 8
mongodb 363.8us 148.4us 19.81ms 553.1us 4
postgresql 8.371ms 3.796ms 300.9ms 12.91ms 13
Checkout

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

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 107.4ms 50.12ms 465.9ms 32.85ms 2
bonsaidb-local+lz4 107.0ms 52.68ms 187.8ms 17.71ms 5
bonsaidb-quic 99.75ms 56.16ms 141.3ms 12.92ms 3
bonsaidb-ws 111.9ms 64.51ms 425.3ms 36.28ms 4
mongodb 625.3us 276.2us 2.347ms 233.6us 3
postgresql 7.979ms 4.239ms 93.02ms 7.155ms 2
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 96 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 89.95ms 44.07ms 187.1ms 20.93ms 1
bonsaidb-local+lz4 91.68ms 60.89ms 134.6ms 14.85ms 0
bonsaidb-quic 88.60ms 59.22ms 135.7ms 14.40ms 1
bonsaidb-ws 93.16ms 57.16ms 140.2ms 16.01ms 0
mongodb 2.010ms 476.1us 54.60ms 7.574ms 2
postgresql 17.18ms 12.25ms 62.71ms 5.158ms 1