diff options
author | Simon Rettberg | 2023-05-24 16:25:37 +0200 |
---|---|---|
committer | Simon Rettberg | 2023-05-24 16:25:37 +0200 |
commit | 870ed89ca71e65f0d365d929bd2d447f3b3342c0 (patch) | |
tree | beebfdc3353f6eafc2ca41b3290269d9581bd5b6 /src/main/java/org/openslx/filetransfer/Uploader.java | |
parent | ThiriftHelper: Discard connections from pool after idling for too long (diff) | |
download | master-sync-shared-870ed89ca71e65f0d365d929bd2d447f3b3342c0.tar.gz master-sync-shared-870ed89ca71e65f0d365d929bd2d447f3b3342c0.tar.xz master-sync-shared-870ed89ca71e65f0d365d929bd2d447f3b3342c0.zip |
BFTP: Minor cleanup, comments, refactor
Diffstat (limited to 'src/main/java/org/openslx/filetransfer/Uploader.java')
-rw-r--r-- | src/main/java/org/openslx/filetransfer/Uploader.java | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/main/java/org/openslx/filetransfer/Uploader.java b/src/main/java/org/openslx/filetransfer/Uploader.java index ed6e972..a1ad313 100644 --- a/src/main/java/org/openslx/filetransfer/Uploader.java +++ b/src/main/java/org/openslx/filetransfer/Uploader.java @@ -66,6 +66,10 @@ public class Uploader extends Transfer return upload( filename, null ); } + /** + * Compressing output stream that will either write LZ4-compressed data, or if the data + * doesn't compress well, just the original uncompressed data. + */ private class Lz4OutStream extends OutputStream { @@ -73,7 +77,7 @@ public class Uploader extends Transfer private byte[] buffer; - private long compressed, uncompressed; + private long bytesSentTotal, bytesDecompressedTotal; private int chunksCompressed, chunksUncompressed; @@ -96,16 +100,17 @@ public class Uploader extends Transfer if ( buffer == null || buffer.length < maxCompressedLength ) { buffer = new byte[ maxCompressedLength ]; } - uncompressed += decompressedLength; + bytesDecompressedTotal += decompressedLength; int compressedLength = compressor.compress( data, off, decompressedLength, buffer, 0, maxCompressedLength ); parentStream.writeInt( decompressedLength ); + // Only send compressed data if we got down to at least ~88% the original size if ( ( compressedLength * 9 / 8 ) < decompressedLength ) { - compressed += compressedLength; + bytesSentTotal += compressedLength; chunksCompressed++; parentStream.writeInt( compressedLength ); parentStream.write( buffer, 0, compressedLength ); } else { - compressed += decompressedLength; + bytesSentTotal += decompressedLength; chunksUncompressed++; parentStream.writeInt( decompressedLength ); parentStream.write( data, off, decompressedLength ); @@ -114,10 +119,10 @@ public class Uploader extends Transfer public void printStats() { - if ( compressed == 0 ) + if ( bytesSentTotal == 0 ) return; - log.info( "Sent bytes: " + compressed + ", decompressed bytes: " + uncompressed ); - log.info( "Sent compressed: " + chunksCompressed + ", uncompressed: " + chunksUncompressed ); + log.info( "Bytes sent: " + bytesSentTotal + ", decompressed to: " + bytesDecompressedTotal ); + log.info( "Chunks sent compressed: " + chunksCompressed + ", uncompressed: " + chunksUncompressed ); } } |