[OSM-dev] Hourly diffs are missing edits (too)

Peter Körner osm-lists at mazdermind.de
Fri Oct 9 17:17:37 BST 2009



John Smith schrieb:
> 2009/10/7 Lennard <ldp at xs4all.nl>:
>> John Smith wrote:
>>
>>> I'm trying to work out how to know how many diffs per day there are so
>>> that can be used to figure out how to keep up to date when things
>>> flick over between days etc.
>> The state.txt files hold a timestamp field, so see if that's all you
>> need for your needs.
> 
> That gives you the last file, I'm just asking about the directory structure...

Each diff has a simple numeric id, that is incremented by one each time 
a diff is created. [1] gives you the id of the last diff created, 
acually it's 42957. This number is padded with zeros to the left until 
it's 9 digits long: 000042957. Then it's split at each three digits: 
000/042/957. The last diff is .../000/042/958.osc.gz [2].

So what you need to do to keep an up2date db the procedure could be sth. 
like this:

  1. download a planet-dump, e.g. planet-091007.osm.bz2 which is of
     09-Oct-2009 03:37

  2. fetch the id of the last diff on the servers (remote_last) by
     looking at [1]

  3. count from 0 to remote_last and for each loop
  3.1. fetch the state-file and check the timestamp against the
       creation date of the planet-dump
  3.2. if they are close enough you got the diff-id you should start with
  3.3. save this id in local_last

  4. start the update loop
  4.1 fetch the id of the last diff on the servers and save it to
      remote_last.
  4.2 If it's > then local_last count from local_last up to remote_last
      and for each id
  4.2.1 fetch the osc-file and try to merge it into the db using osmosis
  4.3 sleep a minute


If your server is going to sleep and you want to restart some time late, 
just restore local_last e.g. from disk (this is the last diff id you 
imported successfully and restart with 4.)

I never did sth. like this but this is what i think the diffs are meant 
to be used.

Peter


[1] http://planet.openstreetmap.org/minute-replicate/state.txt
[2] http://planet.openstreetmap.org/minute-replicate/000/042/959.osc.gz




More information about the dev mailing list