[OSM-dev] Minute Diffs Broken

Frederik Ramm frederik at remote.org
Tue May 5 01:21:55 BST 2009


Brett Henderson wrote:
> I'm not reading any of the changeset table data so the behaviour of the 
> closed_at field doesn't affect osmosis.  The changeset table is 
> effectively useless to osmosis processing because changesets aren't 
> atomic.

Thinking about possible solutions:

1. When updating things in a transaction, set the timestamp to the 
commit time of the transaction. I don't believe PostgreSQL can do it.

2. As you said, introduce changes to the database, like dirty bits or 
change logs or so.

3. Make a semantic change to the way we handle diffs: Let the diff for 
interval X not be "all changes with timestamp within X" but instead "all 
changes that happened in a changeset that was closed within X". 
Changesets not being atomic should pose no problem for this (because 
when it's closed, it's closed). This would adversely affect downstream 
systems in that some changes are held back until the changeset is closed 
(whereas they are passed on immediately now), but on the other hand you 
could afford to generate the minutely diff at 5 seconds past the minute 
because you do not have to wait for transactions to settle (the actual 
changeset close never happens inside a transaction).


Frederik Ramm  ##  eMail frederik at remote.org  ##  N49°00'09" E008°23'33"

More information about the dev mailing list