johnclara commented on a change in pull request #1767:
URL: https://github.com/apache/iceberg/pull/1767#discussion_r523400902
##########
File path: aws/src/main/java/org/apache/iceberg/aws/s3/S3OutputStream.java
##########
@@ -69,14 +132,54 @@ public void flush() throws IOException {
@Override
public void write(int b) throws IOException {
+ if (stream.getCount() >= multiPartSize) {
+ newStream();
+ uploadParts();
+ }
+
stream.write(b);
pos += 1;
}
@Override
public void write(byte[] b, int off, int len) throws IOException {
- stream.write(b, off, len);
+ int remaining = len;
+ int relativeOffset = off;
+
+ // Write the remainder of the part size to the staging file
+ // and continue to write new staging files if the write is
+ // larger than the part size.
+ while (stream.getCount() + remaining > multiPartSize) {
+ int writeSize = multiPartSize - (int) stream.getCount();
Review comment:
maybe also try to initialize the multipart upload up here so that the
individual parts can get kicked off immediately during the loop? or at the
beginning of the method?
(This loop's uploadParts currently returns immediately if this is before
initialization right?)
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]