BonsaiDb Commerce Benchmark

small, readheavy, 8 agent(s)

Configuration

Initial Data Set
Type Count
Products 100
Categories 10
Customers 100
Orders 125
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 2763
FindProduct 2868
CreateCart 433
AddProductToCart 588
Checkout 38
RateProduct 5

Summary

Backend Total Time Wall Time Transport
bonsaidb-local 59.08s 7.385s None
bonsaidb-local+lz4 59.28s 7.410s TCP
bonsaidb-quic 57.13s 7.141s UDP with TLS
bonsaidb-ws 58.66s 7.333s TCP
mongodb 4.962s 620.3ms TCP
postgresql 6.646s 830.7ms 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 54.12ms 54.12ms 54.12ms 0s 0
bonsaidb-local+lz4 57.44ms 57.44ms 57.44ms 0s 0
bonsaidb-quic 52.02ms 52.02ms 52.02ms 0s 0
bonsaidb-ws 70.08ms 70.08ms 70.08ms 0s 0
mongodb 7.992ms 7.992ms 7.992ms 0s 0
postgresql 276.6ms 276.6ms 276.6ms 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 2763 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 149.5us 29.60us 8.921ms 336.7us 5
bonsaidb-local+lz4 147.8us 32.33us 8.539ms 315.0us 4
bonsaidb-quic 591.2us 225.9us 35.51ms 965.3us 4
bonsaidb-ws 451.6us 170.0us 11.70ms 413.7us 6
mongodb 755.5us 240.2us 12.98ms 483.9us 31
postgresql 519.8us 136.8us 23.90ms 906.9us 22
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 2868 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 237.7us 46.60us 8.998ms 339.0us 7
bonsaidb-local+lz4 246.0us 50.69us 8.554ms 330.7us 8
bonsaidb-quic 884.8us 356.3us 22.28ms 804.8us 4
bonsaidb-ws 701.9us 290.2us 10.97ms 438.2us 9
mongodb 820.8us 257.9us 9.982ms 534.8us 36
postgresql 578.5us 149.5us 22.11ms 789.0us 30
CreateCart

Measures the time spent creating a shopping cart.

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 51.43ms 10.82ms 91.24ms 8.022ms 11
bonsaidb-local+lz4 51.47ms 10.74ms 88.27ms 8.002ms 10
bonsaidb-quic 46.33ms 11.16ms 88.02ms 8.316ms 8
bonsaidb-ws 48.50ms 10.86ms 96.37ms 9.857ms 11
mongodb 354.5us 116.6us 2.900ms 266.9us 9
postgresql 2.950ms 1.718ms 16.62ms 1.051ms 5
AddProductToCart

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

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 53.74ms 12.84ms 83.54ms 7.559ms 11
bonsaidb-local+lz4 53.91ms 11.74ms 91.53ms 8.306ms 16
bonsaidb-quic 49.44ms 13.96ms 89.38ms 7.518ms 8
bonsaidb-ws 51.70ms 13.38ms 95.80ms 8.891ms 9
mongodb 487.2us 148.0us 7.096ms 467.4us 7
postgresql 3.068ms 1.654ms 7.646ms 751.7us 16
Checkout

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

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 97.07ms 60.36ms 125.9ms 12.85ms 0
bonsaidb-local+lz4 98.67ms 55.44ms 128.5ms 13.91ms 1
bonsaidb-quic 90.36ms 66.60ms 125.2ms 12.27ms 0
bonsaidb-ws 94.86ms 69.02ms 171.9ms 16.50ms 1
mongodb 990.0us 384.9us 3.371ms 516.5us 1
postgresql 3.942ms 2.045ms 7.023ms 1.306ms 0
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 5 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 74.37ms 24.84ms 93.30ms 25.33ms 0
bonsaidb-local+lz4 73.22ms 13.42ms 103.9ms 31.17ms 0
bonsaidb-quic 69.20ms 19.73ms 91.80ms 26.13ms 0
bonsaidb-ws 65.83ms 22.90ms 82.85ms 22.28ms 0
mongodb 7.018ms 935.6us 29.57ms 11.28ms 0
postgresql 8.483ms 6.240ms 11.40ms 2.050ms 0