On Sun, Jun 26, 2011 at 2:01 PM, Shaun McDonald
<sh...@shaunmcdonald.me.uk> wrote:
>

> If you use the diff uploads, then it is already the case that a changeset 
> could be called a collection of transactions, though the transaction id is 
> never exposed or stored. (Technically the transaction ids and status are used 
> internally for the generation of the diffs).

You're right Shaun. Let me clarify a bit.

In a hypothetical .07, the transaction IDs would be exposed.This would
have two clear benefits.

First, it would provide a simple mechanism by which one could "play
the events".Each transaction could be played and then run in sequence.
Based on a number of users who come to the project this is the
"expected behavior".

Our current behavior is one that grew out of the project's history,
but new developers often get tripped up on what exactly a changeset
is, and why it's not atomic. A transaction could be assumed to be
atomic,

Another benefit of that would be the ability to have asynchronous
transactions, which could lead to a better editing experience.

An API call could happen quickly, the client could be given a
transaction ID and then optionally not need to wait for the
transaction to happen before letting the user move on.

This isn't something that comes up often, but we do have instances
where an upload takes a long time because the database is doing some
validation- eg deletion of nodes requires that those nodes be checked
against ways and relations which may contain that node, which makes
that very expensive.

Rejected uploads don't come up often, but because there's no concept
of a transaction id to refer to after the call, an editor needs to
block while the transaction takes place.

If this could be eliminated, then the editing process could be made
more smooth. It's a minor benefit, but not insignificant.

- Serge
>
> Shaun
>
>

_______________________________________________
talk mailing list
talk@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk

Reply via email to