BonsaiDb Commerce Benchmark

medium, readheavy, 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 2758
FindProduct 2727
CreateCart 416
AddProductToCart 531
Checkout 37
RateProduct 4

Summary

Backend Total Time Wall Time Transport
bonsaidb-local 118.4s 14.80s None
bonsaidb-local+lz4 122.4s 15.29s TCP
bonsaidb-quic 118.2s 14.77s UDP with TLS
bonsaidb-ws 133.7s 16.72s TCP
mongodb 5.102s 637.7ms TCP
postgresql 12.51s 1.563s 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 273.4ms 273.4ms 273.4ms 0s 0
bonsaidb-local+lz4 337.5ms 337.5ms 337.5ms 0s 0
bonsaidb-quic 275.3ms 275.3ms 275.3ms 0s 0
bonsaidb-ws 288.7ms 288.7ms 288.7ms 0s 0
mongodb 42.00ms 42.00ms 42.00ms 0s 0
postgresql 1.798s 1.798s 1.798s 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 173.7us 33.85us 17.43ms 644.1us 4
bonsaidb-local+lz4 211.0us 36.65us 39.53ms 1.484ms 4
bonsaidb-quic 607.1us 237.2us 24.44ms 915.5us 4
bonsaidb-ws 524.1us 196.0us 24.76ms 933.6us 4
mongodb 798.6us 228.7us 6.374ms 425.5us 45
postgresql 607.0us 141.2us 24.62ms 1.098ms 25
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 275.6us 62.07us 17.30ms 650.2us 4
bonsaidb-local+lz4 321.5us 71.66us 39.33ms 1.488ms 4
bonsaidb-quic 944.7us 381.0us 24.22ms 971.6us 12
bonsaidb-ws 811.8us 291.5us 25.51ms 971.0us 7
mongodb 849.3us 279.3us 10.45ms 459.9us 32
postgresql 679.6us 161.0us 22.84ms 1.044ms 26
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 112.5ms 20.22ms 152.6ms 12.29ms 4
bonsaidb-local+lz4 116.6ms 36.44ms 258.5ms 18.75ms 9
bonsaidb-quic 106.8ms 36.16ms 175.4ms 14.66ms 6
bonsaidb-ws 118.1ms 16.16ms 371.7ms 33.48ms 8
mongodb 411.8us 120.9us 3.863ms 307.5us 6
postgresql 6.641ms 3.917ms 17.77ms 1.961ms 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 115.3ms 45.90ms 178.2ms 11.31ms 8
bonsaidb-local+lz4 118.7ms 27.55ms 265.9ms 18.02ms 8
bonsaidb-quic 114.1ms 68.33ms 197.8ms 13.89ms 12
bonsaidb-ws 133.8ms 76.81ms 521.5ms 60.28ms 23
mongodb 515.8us 178.7us 2.730ms 355.0us 12
postgresql 7.670ms 3.879ms 18.28ms 1.602ms 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 215.7ms 169.6ms 251.8ms 17.13ms 0
bonsaidb-local+lz4 220.4ms 194.1ms 272.6ms 15.00ms 1
bonsaidb-quic 212.2ms 176.4ms 284.5ms 19.98ms 1
bonsaidb-ws 237.0ms 198.3ms 623.4ms 66.73ms 1
mongodb 1.046ms 427.0us 2.275ms 427.2us 0
postgresql 7.416ms 5.177ms 15.44ms 1.820ms 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 228.5ms 205.1ms 279.5ms 29.71ms 0
bonsaidb-local+lz4 223.7ms 217.1ms 234.6ms 7.195ms 0
bonsaidb-quic 194.6ms 169.5ms 232.9ms 23.40ms 0
bonsaidb-ws 209.1ms 186.1ms 219.7ms 13.36ms 0
mongodb 14.28ms 857.4us 53.37ms 22.57ms 0
postgresql 17.63ms 16.34ms 19.47ms 1.262ms 0