Benchmark & Load Test EncryptedFS #50
Labels
procedure
Action that must be executed
r&d:polykey:core activity 2
Cross Platform Cryptography for JavaScript Platforms
Right now we only have benchmarks for crypto operations and the DB operations.
To properly assess what is the optimal block size to use (probably more than 4 KiB, but definitely less than 1 MiB), we have to do a proper load test on the EFS instance.
This requires performing a sequential set of operations vs parallel set of operations.
With the tests done in MatrixAI/Polykey#209, we can see that due to the speed for encryption/decryption, using a worker thread will always be slower cause calling workers have 1.5ms overhead.
The speed up can only happen when the there are multiple worker threads being used, so when there are multiple parallel operations occurring either through batching and/or multiple EFS reads/writes.
Benny is not the right tool to do load testing, but we may be able to adapt it for proper load testing.
Otherwise we can use a better load testing tool like artillery, but it needs to be easy to integrate, and not go through the network. This is not an HTTP server. It's a library.
Remember as long as the main thread is doing other things, and that the work is more expensive than call overhead divided by the number of workers, then we should have a profitable use of worker threads.
Additional Context
Tasks
WorkerManager
insideEncryptedFS
The text was updated successfully, but these errors were encountered: