mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-11-04 00:02:37 +01:00 
			
		
		
		
	speed up template download: don't sync io for each write
(cherry picked from commit 6de4dcb10a076671acc0f7486d493e914b59d1d4)
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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user