Hi Jochen, On 14 October 2012 06:17, Jochen Topf <joc...@remote.org> wrote:
> Very interesting work! > > How do you handle new incoming requests. They have to start from a known > point > so I guess you have to do an SQL query for each of them? Or do you just > read > the existing .osc files from disk and stream them out? This could take a > long > time... > It just reads existing .osc files. The server-side is made up of two processes. The first process extracts data from the database and writes .state.txt and .osc files in a similar way to existing replication but it runs continuously using a single database connection. The second process serves the data to clients. The two processes talk via an internal HTTP-based channel so that the extracter can notify the data server when new intervals have been processed. The two processes can be run in a single Osmosis process, but I usually run them separately. It could take a long time to download a long time interval, but it is perhaps faster than you'd expect. I suspect that in most cases the bottleneck will be client side trying to consume the data. I've thought about writing the data into a database instead, but it's more effort to both develop and manage. I'm planning to wait to see if it becomes an issue. Downloading bulk data should be relatively rare because most connected clients should be up to date and just waiting for new data to arrive. One other thing to note is that it supports a tree of servers where one master server feeds data to any number of slaves which in turn feed data to end users. Example commands are here: http://wiki.openstreetmap.org/wiki/Osmosis/Replication#Streaming_Caching Brett
_______________________________________________ osmosis-dev mailing list osmosis-dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/osmosis-dev