We’ve got some exciting preliminary results from the work on the FileSender Terabyte Challenge! With the report only a couple of weeks away I won’t write too much for now and let the screenshots speak for themselves. It looks like UvA System and Network Engineering students René Klomp and Edwin Schaap cracked the problem.
After confirming their hypothesis on the FileSender performance bottlenecks the students wrote a small library to demonstrate a solution. A standard FileSender 1.5 trunk code installation was modified to use this library. This installation was used today for a first full 1TB upload test over a 0 ms latency path. The file took a little under 3.5 hours to transfer from laptop to server. More testing with longer latency paths will follow. Congratulations René and Edwin!
Update 25.1.2013: I forgot to mention that during this test the external disk wouldn’t go faster than 800Mbit/s despite it being eSATA. One might imagine this has an impact on the transfer speed of the file.
Update 25.1.2013, #2: AARNet installed the prototype code on their standard service platform. and ran a quick test from Perth to Brisbane, a 67 ms rtt path, using a standard off the shelf employee’s laptop. Standard filesender code:162 MB file in 220 seconds. New webworker filesender code: 162MB file in 16 seconds.
Update 28.1.2013: we performed tests between Trondheim and Utrecht on a 40ms rtt path using the test installation set up by René and Edwin’s test installation in Utrecht and my Macbook Pro in Trondheim. The laptop is a November 2012 model with 8GB RAM, OS-X 10.8 and the latest FireFox. The network path has not been baseline-tested. A 2GB file took about 68 seconds to upload when the disk cache was purged first. If the entire file was cached, or if the file was read from a RAM disk, it took about 45 seconds to upload. René and Edwin are considering the feasibility of a read-ahead buffer. To compare: from the same desktop, disk cache purged, to Xander’s stock 1.5-rc1 FileSender installation in Amsterdam, on a 37 ms rtt path, it took a 2GB file ca. 340 seconds. The same upload repeated immediately afterwards without purging the disk cache, implying a read from disk cache, took about 330 seconds.