BonsaiDb Commerce Benchmark

large, writeheavy, 1 agent(s)

Configuration

Initial Data Set
Type Count
Products 5000
Categories 100
Customers 5000
Orders 5000
Shopping Plans

This run executed 1000 shopping plans across 1 worker(s). All total, the workers will execute the following breakdown of operations:

Operation Invocations
Load 1
LookupProduct 2678
FindProduct 2803
CreateCart 987
AddProductToCart 4942
Checkout 874
RateProduct 3902

Summary

Backend Total Time Wall Time Transport
bonsaidb-local 214.3s 214.3s None
bonsaidb-local+lz4 207.6s 207.6s TCP
bonsaidb-quic 220.8s 220.8s UDP with TLS
bonsaidb-ws 216.8s 216.8s TCP
mongodb 7.846s 7.846s TCP
postgresql 102.7s 102.7s 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 1.296s 1.296s 1.296s 0s 0
bonsaidb-local+lz4 1.112s 1.112s 1.112s 0s 0
bonsaidb-quic 1.574s 1.574s 1.574s 0s 0
bonsaidb-ws 1.255s 1.255s 1.255s 0s 0
mongodb 168.7ms 168.7ms 168.7ms 0s 0
postgresql 11.03s 11.03s 11.03s 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 2678 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 251.6us 72.97us 9.839ms 215.1us 4
bonsaidb-local+lz4 250.1us 68.21us 619.4us 65.38us 13
bonsaidb-quic 858.9us 296.1us 3.145ms 171.1us 13
bonsaidb-ws 669.4us 253.5us 3.217ms 159.6us 10
mongodb 493.7us 303.0us 1.046ms 72.85us 40
postgresql 1.054ms 348.1us 2.881ms 327.0us 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 2803 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 458.8us 117.4us 25.44ms 487.2us 3
bonsaidb-local+lz4 471.0us 133.4us 25.17ms 483.0us 3
bonsaidb-quic 1.371ms 498.5us 24.44ms 505.3us 5
bonsaidb-ws 1.073ms 392.7us 23.41ms 470.9us 4
mongodb 532.9us 322.6us 1.042ms 75.85us 46
postgresql 1.254ms 405.6us 2.646ms 403.6us 4
CreateCart

Measures the time spent creating a shopping cart.

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 12.97ms 5.962ms 38.05ms 3.144ms 10
bonsaidb-local+lz4 12.49ms 5.972ms 34.26ms 2.987ms 11
bonsaidb-quic 13.34ms 6.265ms 95.53ms 4.795ms 7
bonsaidb-ws 13.17ms 6.150ms 108.7ms 4.373ms 6
mongodb 236.3us 138.4us 562.6us 40.62us 20
postgresql 4.413ms 1.691ms 482.5ms 15.28ms 1
AddProductToCart

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

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 13.15ms 5.688ms 228.7ms 6.560ms 23
bonsaidb-local+lz4 12.85ms 5.902ms 210.3ms 5.043ms 15
bonsaidb-quic 13.57ms 6.549ms 86.19ms 3.139ms 46
bonsaidb-ws 13.43ms 6.412ms 587.1ms 10.27ms 4
mongodb 285.8us 169.5us 2.240ms 55.90us 51
postgresql 3.855ms 1.535ms 108.8ms 1.899ms 15
Checkout

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

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

Backend Avg Min Max StdDev Outliers
bonsaidb-local 27.28ms 13.11ms 691.8ms 24.58ms 7
bonsaidb-local+lz4 25.93ms 13.44ms 609.6ms 20.40ms 1
bonsaidb-quic 27.08ms 13.31ms 214.6ms 8.213ms 3
bonsaidb-ws 26.63ms 15.35ms 289.9ms 9.951ms 1
mongodb 517.7us 314.4us 1.266ms 88.18us 10
postgresql 4.352ms 1.844ms 19.25ms 1.332ms 7
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 3902 time(s) across each backend.

Backend Avg Min Max StdDev Outliers
bonsaidb-local 28.04ms 13.93ms 704.9ms 15.95ms 27
bonsaidb-local+lz4 27.16ms 13.03ms 820.4ms 14.85ms 7
bonsaidb-quic 27.99ms 15.04ms 511.5ms 10.67ms 14
bonsaidb-ws 27.70ms 14.15ms 542.1ms 12.27ms 10
mongodb 708.1us 423.2us 49.85ms 796.0us 1
postgresql 14.88ms 7.506ms 326.1ms 7.485ms 18