mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
speed up template download: don't sync io for each write
This commit is contained in:
parent
9c56b3d4db
commit
6de4dcb10a
@ -26,6 +26,7 @@ import java.io.InputStream;
|
|||||||
import java.io.RandomAccessFile;
|
import java.io.RandomAccessFile;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.net.URISyntaxException;
|
import java.net.URISyntaxException;
|
||||||
|
import java.net.URL;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import org.apache.commons.httpclient.ChunkedInputStream;
|
import org.apache.commons.httpclient.ChunkedInputStream;
|
||||||
@ -233,9 +234,10 @@ public class HttpTemplateDownloader extends ManagedContextRunnable implements Te
|
|||||||
remoteSize = maxTemplateSizeInBytes;
|
remoteSize = maxTemplateSizeInBytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
InputStream in = !chunked ? new BufferedInputStream(request.getResponseBodyAsStream()) : new ChunkedInputStream(request.getResponseBodyAsStream());
|
URL url = new URL(getDownloadUrl());
|
||||||
|
InputStream in = url.openStream();
|
||||||
|
|
||||||
RandomAccessFile out = new RandomAccessFile(file, "rwd");
|
RandomAccessFile out = new RandomAccessFile(file, "rw");
|
||||||
out.seek(localFileSize);
|
out.seek(localFileSize);
|
||||||
|
|
||||||
s_logger.info("Starting download from " + getDownloadUrl() + " to " + toFile + " remoteSize=" + remoteSize + " , max size=" + maxTemplateSizeInBytes);
|
s_logger.info("Starting download from " + getDownloadUrl() + " to " + toFile + " remoteSize=" + remoteSize + " , max size=" + maxTemplateSizeInBytes);
|
||||||
@ -279,6 +281,8 @@ public class HttpTemplateDownloader extends ManagedContextRunnable implements Te
|
|||||||
done = true;
|
done = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
out.getFD().sync();
|
||||||
|
|
||||||
Date finish = new Date();
|
Date finish = new Date();
|
||||||
String downloaded = "(incomplete download)";
|
String downloaded = "(incomplete download)";
|
||||||
if (totalBytes >= remoteSize) {
|
if (totalBytes >= remoteSize) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user