nastra commented on code in PR #12799: URL: https://github.com/apache/iceberg/pull/12799#discussion_r2047154559
########## aws/src/main/java/org/apache/iceberg/aws/s3/S3FileIO.java: ########## @@ -98,14 +100,12 @@ public class S3FileIO private String credential = null; private SerializableSupplier<S3Client> s3; private SerializableSupplier<S3AsyncClient> s3Async; - private S3FileIOProperties s3FileIOProperties; private SerializableMap<String, String> properties = null; - private transient volatile S3Client client; - private transient volatile S3AsyncClient asyncClient; private MetricsContext metrics = MetricsContext.nullMetrics(); private final AtomicBoolean isResourceClosed = new AtomicBoolean(false); private transient StackTraceElement[] createStack; private List<StorageCredential> storageCredentials = ImmutableList.of(); + private transient volatile Cache<String, PrefixedS3Client> s3ClientCache; Review Comment: I'm not really familiar with `ExecutionInterceptor` so I'll have to do some digging on how a potential solution would look with this. But generally speaking, we're only expecting a handful of different storage credentials in practice, so the cost of maintaining < 5 different client instances should be quite low. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For additional commands, e-mail: issues-h...@iceberg.apache.org