-
Type: Improvement
-
Status: Resolved
-
Priority: Major
-
Resolution: Won't Fix
-
Affects Version/s: None
-
Fix Version/s: QualifiedToSchedule
-
Component/s: Core
-
Tags:
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)
nuxeo.core.binarymanager=org.nuxeo.ecm.core.storage.sql.S3BinaryManager
Async S3 BinaryManager
nuxeo.core.binarymanager=org.nuxeo.ecm.core.storage.sql.AsyncS3BinaryManager
Using the Async mode :
- is not TX safe
- is not safe in cluster mode