Skip to content

Executor factory on transfer manager vs max connection on s3 client? #1696

Closed
@abbccdda

Description

@abbccdda

Hey there,

I'm trying to understand two similar configs when doing the s3 download performance tuning:
My current code looks like:

ClientConfiguration conf = new ClientConfiguration()
.withMaxConnections(THREAD_POOL_SIZE).withSocketTimeout(3600_000);

AmazonS3 clientS3 = AmazonS3ClientBuilder
    .standard()
    .withClientConfiguration(conf)
    .build();

TransferManager transferManager = TransferManagerBuilder
    .standard()
    .withS3Client(clientS3)
    .withMultipartCopyPartSize(500_000_000L)
    .withExecutorFactory(() -> Executors.newFixedThreadPool(THREAD_POOL_SIZE))
    .withMultipartCopyThreshold(1_000_000_000L)
    .build();

I have a question on what's the relation between transfer manager executor factory and s3client max connections? If I set them to different values, will each thread open more TCP connections overall?

Thanks for your time and let me know if my question makes sense.

Metadata

Metadata

Assignees

No one assigned

    Labels

    guidanceQuestion that needs advice or information.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions