[OSM-dev] API 0.6: Changeset Access

Brett Henderson brett at bretth.com
Wed Jan 28 11:51:46 GMT 2009


Frederik Ramm wrote:
> Will the planet dump and/or diffs be extended so that they contain all 
> changesets too, or what should be the preferred mode of operation for a 
> third-party application that wants to track changesets? The only way I 
> can currently think of would be looking at diffs to find out which 
> changeset IDs were active and then download them individually. Have I 
> overlooked something?
>   
Replication of changesets is on my undocumented long term TODO list for 
osmosis (I should add it to trac) but I don't know when I'll be able to 
do it.  I had some discussions with Shaun and Matt a while back on how 
this might be done efficiently.  Identifying changesets for replication 
is a bit tricky and would probably involve two passes, first pass would 
identify all changesets created in a time interval, and the second pass 
would identify all changesets modified (ie. have entities referring to 
them) in a time interval.  Once identified they could be read and 
included in a changeset file just like any other entity.

The reason they're more difficult than other entities is twofold.
1. They don't have a history table so modifications are much harder to 
detect.
2. The bounding box information attached to each cannot be computed by 
osmosis in a "streamy" fashion which means they have to be re-replicated 
if they change.

The two stages of changeset identification cause other problems such as 
being able to retrieve changesets after identification in an efficient 
manner (ie. not one by one), and potentially having to store identifiers 
in memory which is problematic at least theoretically if long interval 
changesets are being extracted (not likely to be an issue for the 
current daily changesets).

Bit of a brain dump there but they're some of the reasons I'm holding 
off until I have a decent amount of time to invest in it.

However, if replicating into a database osmosis will "invent" 
changesets.  It will create one changeset per user per changeset 
interval which will approximate the real thing.  It won't help if you 
need the real changeset id though.

Brett





More information about the dev mailing list