Stress testing SwayDB.
Multiple User Actors concurrently & repeatedly perform CRUD operations for a specified period of time by
- creating 1000 products repeatedly with put and batchPut.
- updating & deleting random products with put,
batchPut, remove & batchRemove - asserting the expected state of the User's products
This test was successfully run for 6 hours with 100 concurrent Users performing CRUD operations resulting in a 15 GB database with 500 million entries.
sbt clean 'testOnly simulation.SimulationSpec'
Then follow the prompts in the console
Select number of concurrent Users (hit Enter for 100):
How many minutes to run the test for (hit Enter for 10 minutes):
Concurrently writes 1 million WeatherData entries as single put operations and batch operations and then concurrently reads the inserted data by performing various Read API operations multiple times.
APIs used in this tests are -
- put
- batch
- batch random
- get
- foldLeft
- foreach
- takeWhile
- head & last
- mapRight
- take
- drop
- takeRight
- count
- remove