mirror of https://github.com/apache/cloudstack.git
speed up template download: don't sync io for each write
(cherry picked from commit 6de4dcb10a)
This commit is contained in:
parent
fa5c42c409
commit
ae0bf7db5f
|
|
@ -26,6 +26,7 @@ import java.io.InputStream;
|
|||
import java.io.RandomAccessFile;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
import java.util.Date;
|
||||
|
||||
import org.apache.commons.httpclient.ChunkedInputStream;
|
||||
|
|
@ -233,9 +234,10 @@ public class HttpTemplateDownloader extends ManagedContextRunnable implements Te
|
|||
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);
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
out.getFD().sync();
|
||||
|
||||
Date finish = new Date();
|
||||
String downloaded = "(incomplete download)";
|
||||
if (totalBytes >= remoteSize) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue