Hey,<br><br>Dave I'd just like to say thanks for spending so much time on this. Since the topic was raised at Wherecamp and work subsequently began you have been by far the greatest contributor to this project. You're awesome.
<br><br>Regarding Ruby on rails: there's huge amount of overhead involved with catching a request and routing it to the appropriate controller. I'm going to guess this is doing the lion's share of the work you're seeing 'ruby code' do. What would really improve performance is allowing a single post request to contain a payload of several, ideally millions, of OSM elements all at once. This would eliminate the round trip through the rails controller routing framework and leave only the round trip between the controller and the database, which by my estimation ain't too bad at all. It wouldn't even be that hard to implement, though you'd have to upload each chunk within the confines of a transaction. And as the OSM database doesn't support transactions, you'd just have to fake them out using some sort of high-level transaction ID.
<br><br>That's my proposal.<br><br>-B<br><br><div><span class="gmail_quote">On 8/28/07, <b class="gmail_sendername">Dave Hansen</b> <<a href="mailto:dave@sr71.net">dave@sr71.net</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I've been very painfully uploading the TIGER-generated data through<br>JOSM.  At the rate I'm going it will probably take 5 or 10 years to<br>upload the entire US.  Literally.  I'm uploading one or two counties a
<br>day, and there are 3,234 counties in the country.<br><br>So, I installed the rails port on my laptop, and sicked JOSM on it.  The<br>uploads are maybe twice as fast as they are to the main OSM server.  So,<br>the round-trip-time actually isn't that _huge_ of a performance
<br>bottleneck.<br><br>The thing that *IS* on my laptop is the ruby code.  It is responsible<br>for 90% of the CPU time, and the CPUs are maxed out.  mysql, on the<br>other hand, is responsible for ~3% of total cpu time.  Even with my
<br>piddly notebook hard drive, the I/O wait time is under 1%.<br><br>People have been saying that we should write the import code in ruby to<br>run on the server and use the existing rails code.  If the ruby code<br>itself is the bottleneck and not the round-trip time or the disk, is
<br>doing the import through the ruby code going to even help?<br><br>-- Dave<br><br><br>_______________________________________________<br>dev mailing list<br><a href="mailto:dev@openstreetmap.org">dev@openstreetmap.org</a>
<br><a href="http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/dev">http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/dev</a><br></blockquote></div><br>