Skip to content

Commit

Permalink
HDFS-17391:Adjust the checkpoint io buffer size to the chunk size
Browse files Browse the repository at this point in the history
  • Loading branch information
Lei313 committed Mar 4, 2024
1 parent 03d9aca commit 595e396
Showing 1 changed file with 15 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -311,7 +311,7 @@ private static void uploadImage(URL url, Configuration conf,
ImageServlet.setVerificationHeadersForPut(connection, imageFile);

// Write the file to output stream.
writeFileToPutRequest(conf, connection, imageFile, canceler);
writeFileToPutRequest(conf, connection, imageFile, canceler, chunkSize);

int responseCode = connection.getResponseCode();
if (responseCode != HttpURLConnection.HTTP_OK) {
Expand All @@ -330,15 +330,16 @@ private static void uploadImage(URL url, Configuration conf,
}

private static void writeFileToPutRequest(Configuration conf,
HttpURLConnection connection, File imageFile, Canceler canceler)
HttpURLConnection connection, File imageFile, Canceler canceler,
int bufferSize)
throws IOException {
connection.setRequestProperty(Util.CONTENT_TYPE, "application/octet-stream");
connection.setRequestProperty(Util.CONTENT_TRANSFER_ENCODING, "binary");
OutputStream output = connection.getOutputStream();
FileInputStream input = new FileInputStream(imageFile);
try {
copyFileToStream(output, imageFile, input,
ImageServlet.getThrottler(conf), canceler);
ImageServlet.getThrottler(conf), canceler, bufferSize);
} finally {
IOUtils.closeStream(input);
IOUtils.closeStream(output);
Expand All @@ -352,13 +353,14 @@ private static void writeFileToPutRequest(Configuration conf,
public static void copyFileToStream(OutputStream out, File localfile,
FileInputStream infile, DataTransferThrottler throttler)
throws IOException {
copyFileToStream(out, localfile, infile, throttler, null);
copyFileToStream(out, localfile, infile, throttler, null, -1);
}

private static void copyFileToStream(OutputStream out, File localfile,
FileInputStream infile, DataTransferThrottler throttler,
Canceler canceler) throws IOException {
byte buf[] = new byte[IO_FILE_BUFFER_SIZE];
Canceler canceler, int bufferSize) throws IOException {
int bufSize = bufferSize > 0 ? bufferSize : IO_FILE_BUFFER_SIZE;
byte[] buf = new byte[bufSize];
long total = 0;
int num = 1;
IOException ioe = null;
Expand All @@ -369,13 +371,13 @@ private static void copyFileToStream(OutputStream out, File localfile,
.aboutToSendFile(localfile);

if (CheckpointFaultInjector.getInstance().
shouldSendShortFile(localfile)) {
// Test sending image shorter than localfile
long len = localfile.length();
buf = new byte[(int)Math.min(len/2, IO_FILE_BUFFER_SIZE)];
// This will read at most half of the image
// and the rest of the image will be sent over the wire
infile.read(buf);
shouldSendShortFile(localfile)) {
// Test sending image shorter than localfile
long len = localfile.length();
buf = new byte[(int) Math.min(len / 2, bufSize)];
// This will read at most half of the image
// and the rest of the image will be sent over the wire
infile.read(buf);
}
while (num > 0) {
if (canceler != null && canceler.isCancelled()) {
Expand Down

0 comments on commit 595e396

Please sign in to comment.