You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2023/04/13 07:23:09 UTC
[james-project] 05/07: [PERF] S3BlobStoreDAO: Open/close inout streams on elastic threads
This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 57f1f7a979307577d5188aa32b99415262ccde6c
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Wed Apr 12 13:45:11 2023 +0700
[PERF] S3BlobStoreDAO: Open/close inout streams on elastic threads
Blocking operations where performed on the Cassandra driver event loop.
---
.../java/org/apache/james/blob/objectstorage/aws/S3BlobStoreDAO.java | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/server/blob/blob-s3/src/main/java/org/apache/james/blob/objectstorage/aws/S3BlobStoreDAO.java b/server/blob/blob-s3/src/main/java/org/apache/james/blob/objectstorage/aws/S3BlobStoreDAO.java
index 564a8a8381..ba85e2375e 100644
--- a/server/blob/blob-s3/src/main/java/org/apache/james/blob/objectstorage/aws/S3BlobStoreDAO.java
+++ b/server/blob/blob-s3/src/main/java/org/apache/james/blob/objectstorage/aws/S3BlobStoreDAO.java
@@ -305,10 +305,9 @@ public class S3BlobStoreDAO implements BlobStoreDAO, Startable, Closeable {
return Mono.fromCallable(content::size)
.flatMap(contentLength ->
- Mono.using(content::openStream,
+ Mono.usingWhen(Mono.fromCallable(content::openStream).subscribeOn(Schedulers.boundedElastic()),
stream -> save(resolvedBucketName, blobId, stream, contentLength),
- Throwing.consumer(InputStream::close),
- LAZY))
+ stream -> Mono.fromRunnable(Throwing.runnable(stream::close))))
.retryWhen(createBucketOnRetry(resolvedBucketName))
.onErrorMap(IOException.class, e -> new ObjectStoreIOException("Error saving blob", e))
.onErrorMap(SdkClientException.class, e -> new ObjectStoreIOException("Error saving blob", e))
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org