Default implementation of BinaryManager is 100% Synchronous.
This means the calling thread will wait for :
- copy steam to temporary location
- compute digest
- store in S3 (potentially with cypher)
- wait for S3 aknowledgment
This behavior is safe, but may slow down Write operations.
The goal is to provide a Async version of the S3BinaryManager that delegate the "S3 flush" to a Worker.
We now have 2 implementation classes for S3 BinaryManager
Normal S3 BinaryManager (Sync)
Async S3 BinaryManager
Using the Async mode :
- is not TX safe
- is not safe in cluster mode