BonsaiDb Commerce Benchmark

small, writeheavy, 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 2753
FindProduct 2883
CreateCart 988
AddProductToCart 5050
Checkout 894
RateProduct 4143

Summary

Backend Total Time Wall Time Transport
bonsaidb-local 24.07m 180.5s None
bonsaidb-local+lz4 24.52m 183.9s TCP
bonsaidb-quic 25.58m 191.9s UDP with TLS
bonsaidb-ws 24.41m 183.1s TCP
mongodb 17.64s 2.205s TCP
postgresql 337.3s 42.16s 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 83.38ms 83.38ms 83.38ms 0s 0
bonsaidb-local+lz4 87.10ms 87.10ms 87.10ms 0s 0
bonsaidb-quic 94.85ms 94.85ms 94.85ms 0s 0
bonsaidb-ws 79.69ms 79.69ms 79.69ms 0s 0
mongodb 5.474ms 5.474ms 5.474ms 0s 0
postgresql 375.9ms 375.9ms 375.9ms 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 2753 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 357.0us 74.86us 17.37ms 731.9us 6
bonsaidb-local+lz4 373.5us 86.56us 17.12ms 748.9us 7
bonsaidb-quic 1.021ms 390.4us 23.03ms 957.4us 6
bonsaidb-ws 860.6us 298.3us 17.10ms 765.3us 7
mongodb 900.6us 253.2us 9.871ms 613.3us 31
postgresql 21.50ms 241.7us 844.1ms 23.49ms 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 2883 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 571.7us 85.24us 17.42ms 573.6us 5
bonsaidb-local+lz4 590.6us 141.6us 17.18ms 558.2us 5
bonsaidb-quic 1.517ms 703.7us 22.99ms 740.3us 4
bonsaidb-ws 1.290ms 549.7us 17.05ms 576.3us 6
mongodb 965.2us 286.3us 18.26ms 701.5us 24
postgresql 21.55ms 301.1us 845.6ms 30.78ms 7
CreateCart

Measures the time spent creating a shopping cart.

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 88.77ms 16.42ms 598.4ms 30.06ms 6
bonsaidb-local+lz4 89.62ms 13.75ms 988.5ms 37.42ms 5
bonsaidb-quic 92.89ms 24.82ms 1.154s 46.34ms 9
bonsaidb-ws 89.63ms 16.18ms 278.4ms 20.92ms 7
mongodb 413.8us 118.7us 2.641ms 279.3us 17
postgresql 8.743ms 2.036ms 828.1ms 26.22ms 1
AddProductToCart

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

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 88.16ms 16.69ms 1.207s 38.61ms 21
bonsaidb-local+lz4 89.55ms 13.96ms 999.2ms 36.62ms 33
bonsaidb-quic 90.71ms 21.99ms 1.295s 42.24ms 36
bonsaidb-ws 86.53ms 22.56ms 875.5ms 27.80ms 21
mongodb 515.5us 158.3us 10.09ms 444.9us 60
postgresql 8.043ms 2.417ms 794.8ms 12.28ms 6
Checkout

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

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 161.3ms 48.21ms 1.295s 66.95ms 4
bonsaidb-local+lz4 160.4ms 58.40ms 1.016s 48.67ms 2
bonsaidb-quic 170.0ms 61.03ms 741.2ms 47.79ms 9
bonsaidb-ws 166.3ms 79.63ms 948.7ms 51.08ms 4
mongodb 963.2us 274.9us 11.89ms 650.0us 8
postgresql 9.020ms 4.342ms 248.1ms 8.419ms 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 4143 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 184.5ms 30.80ms 1.306s 58.27ms 35
bonsaidb-local+lz4 189.3ms 33.03ms 1.137s 60.11ms 22
bonsaidb-quic 199.3ms 28.65ms 1.382s 69.53ms 50
bonsaidb-ws 189.4ms 30.55ms 968.4ms 44.97ms 24
mongodb 2.051ms 396.5us 506.6ms 18.90ms 7
postgresql 38.21ms 9.831ms 853.0ms 23.59ms 11