Batch Request API Benchmark
Having 100 items stored.
Tests:
- Getting 10000 objects
- 10000x
GET /items/54
- 10000x
POST /bra-v0
requestingGET /items/54
- 1000x
POST /bra-v0
requesting 10xGET /items/54
- 100x
POST /bra-v0
requesting 100xGET /items/54
- 10000x
- Getting 100000 objects
- 100000x
GET /items/54
- 100000x
POST /bra-v0
requestingGET /items/54
- 10000x
POST /bra-v0
requesting 10xGET /items/54
- 1000x
POST /bra-v0
requesting 100xGET /items/54
- 100x
POST /bra-v0
requesting 1000xGET /items/54
- 100000x
Tests will be run:
- Without concurrency
- With 10 concurrent threads
- With 100 concurrent threads
and
- On HashMap based repository (
/items
inSampleController
) - On Reactive MongoDB repository (
/mongo-items
inSampleMongoController
)
Before each test run docker containers will be recreated.
To recreate tests execute run.sh
bash script.
-
Without concurrency on HashMap repository
- 10k elements
- 10000x ORIG: Done in 7.320s
- 10000x1 BRA: Done in 12.255s
- 1000x10 BRA: Done in 1.558s
- 100x100 BRA: Done in 0.658s
- 100k elements
- 100000x ORIG: Done in 56.638s
- 100000x1 BRA: Done in 81.478s
- 10000x10 BRA: Done in 13.962s
- 1000x100 BRA: Done in 6.063s
- 100x1000 BRA: Done in 5.067s
- 10k elements
-
With 10 concurrent threads on HashMap repository
- 10k elements
- 10000x ORIG: Done in 3.841s
- 10000x1 BRA: Done in 8.347s
- 1000x10 BRA: Done in 1.134s
- 100x100 BRA: Done in 0.416s
- 100k elements
- 100000x ORIG: Done in 20.699s
- 100000x1 BRA: Done in 28.972s
- 10000x10 BRA: Done in 5.928s
- 1000x100 BRA: Done in 3.018s
- 100x1000 BRA: Done in 2.617s
- 10k elements
-
With 100 concurrent threads on HashMap repository
- 10k elements
- 10000x ORIG: Done in 3.018s
- 10000x1 BRA: Done in 6.854s
- 1000x10 BRA: Done in 1.230s
- 100x100 BRA: Done in 0.621s
- 100k elements
- 100000x ORIG: Done in 17.862s
- 100000x1 BRA: Done in 24.352s
- 10000x10 BRA: Done in 5.685s
- 1000x100 BRA: Done in 2.690s
- 100x1000 BRA: Done in 2.496s
- 10k elements
-
Without concurrency on MongoDB repository
- 10k elements
- 10000x ORIG: Done in 12.056s
- 10000x1 BRA: Done in 15.192s
- 1000x10 BRA: Done in 2.766s
- 100x100 BRA: Done in 1.571s
- 100k elements
- 100000x ORIG: Done in 100.900s
- 100000x1 BRA: Done in 125.835s
- 10000x10 BRA: Done in 25.682s
- 1000x100 BRA: Done in 15.231s
- 100x1000 BRA: Done in 14.134s
- 10k elements
-
With 10 concurrent threads on MongoDB repository
- 10k elements
- 10000x ORIG: Done in 5.763s
- 10000x1 BRA: Done in 8.559s
- 1000x10 BRA: Done in 2.099s
- 100x100 BRA: Done in 1.631s
- 100k elements
- 100000x ORIG: Done in 34.893s
- 100000x1 BRA: Done in 44.710s
- 10000x10 BRA: Done in 15.834s
- 1000x100 BRA: Done in 10.889s
- 100x1000 BRA: Done in 11.151s
- 10k elements
-
With 100 concurrent threads on MongoDB repository
- 10k elements
- 10000x ORIG: Done in 5.470s
- 10000x1 BRA: Done in 8.950s
- 1000x10 BRA: Done in 2.684s
- 100x100 BRA: Done in 1.920s
- 100k elements
- 100000x ORIG: Done in 27.902s
- 100000x1 BRA: Done in 37.519s
- 10000x10 BRA: Done in 15.109s
- 1000x100 BRA: Done in 11.024s
- 100x1000 BRA: Done in 10.889s
- 10k elements