BonsaiDb Commerce Benchmark

small, writeheavy, 1 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 1 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 119.0s 119.0s None
bonsaidb-local+lz4 120.9s 120.9s TCP
bonsaidb-quic 131.4s 131.4s UDP with TLS
bonsaidb-ws 127.7s 127.7s TCP
mongodb 7.768s 7.768s TCP
postgresql 46.90s 46.90s 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 44.43ms 44.43ms 44.43ms 0s 0
bonsaidb-local+lz4 49.87ms 49.87ms 49.87ms 0s 0
bonsaidb-quic 83.62ms 83.62ms 83.62ms 0s 0
bonsaidb-ws 62.87ms 62.87ms 62.87ms 0s 0
mongodb 7.053ms 7.053ms 7.053ms 0s 0
postgresql 270.2ms 270.2ms 270.2ms 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 213.7us 72.75us 714.8us 55.79us 26
bonsaidb-local+lz4 225.1us 68.57us 3.019ms 83.94us 6
bonsaidb-quic 759.2us 283.7us 3.536ms 154.0us 12
bonsaidb-ws 596.9us 220.6us 2.691ms 134.7us 9
mongodb 472.3us 292.8us 923.7us 67.63us 51
postgresql 615.1us 193.3us 10.38ms 313.1us 4
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 395.6us 95.71us 7.873ms 231.1us 10
bonsaidb-local+lz4 425.2us 109.4us 11.13ms 294.7us 5
bonsaidb-quic 1.219ms 402.0us 11.26ms 334.7us 9
bonsaidb-ws 985.7us 351.3us 12.53ms 326.7us 11
mongodb 511.9us 341.8us 2.022ms 74.08us 37
postgresql 720.0us 211.2us 1.919ms 304.4us 2
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 6.965ms 5.638ms 52.98ms 2.157ms 10
bonsaidb-local+lz4 6.947ms 5.734ms 72.27ms 2.522ms 8
bonsaidb-quic 7.317ms 5.945ms 22.73ms 1.547ms 30
bonsaidb-ws 7.114ms 5.811ms 17.68ms 1.417ms 29
mongodb 229.4us 146.7us 1.152ms 47.36us 10
postgresql 2.154ms 1.607ms 18.00ms 862.1us 29
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 7.123ms 5.651ms 350.7ms 5.232ms 6
bonsaidb-local+lz4 7.204ms 5.617ms 137.8ms 4.354ms 15
bonsaidb-quic 7.765ms 6.141ms 263.7ms 4.244ms 9
bonsaidb-ws 7.527ms 5.919ms 327.9ms 4.968ms 9
mongodb 278.9us 167.3us 733.2us 45.05us 118
postgresql 2.053ms 1.506ms 16.65ms 707.3us 132
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 14.15ms 11.68ms 91.88ms 3.817ms 9
bonsaidb-local+lz4 14.36ms 11.94ms 138.8ms 6.807ms 3
bonsaidb-quic 15.46ms 12.55ms 253.3ms 8.437ms 2
bonsaidb-ws 14.79ms 12.25ms 38.00ms 2.682ms 23
mongodb 499.6us 318.4us 1.022ms 70.42us 16
postgresql 2.449ms 1.826ms 7.631ms 612.9us 32
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 14.89ms 11.92ms 92.30ms 3.449ms 78
bonsaidb-local+lz4 15.19ms 12.26ms 609.1ms 11.33ms 15
bonsaidb-quic 15.79ms 12.68ms 234.4ms 4.461ms 27
bonsaidb-ws 15.66ms 12.60ms 313.7ms 7.605ms 8
mongodb 700.9us 415.2us 41.26ms 654.2us 2
postgresql 6.801ms 4.204ms 559.3ms 9.294ms 6