[OSM-dev] Grumble, grumble

Matt Amos zerebubuth at gmail.com
Mon May 11 22:52:35 BST 2009

On Mon, May 11, 2009 at 5:44 PM, Stefan de Konink <stefan at konink.de> wrote:
> Matt Amos wrote:
>> at a current mapping party everything works just fine. frederik has
>> already explained how JOSM is going to deal with this and it doesn't
>> need bbox locking on the DB. i assume richard is planning something
>> similar for potlatch (?).
> I am still sure people would love to see XAPI requests to overcome the
> current information overload. But that is typically clientside.

the problem with xapi-style requests is that people only see a subset
of the data, making it much easier to enter duplicate information when
people disagree about tagging. e.g: i load all the amenities in an
area because i want to add an amenity=convenience_shop, but i won't
see that someone has already added a shop=convenience. or i won't see
anything that has been misspelt, e.g: maenity, sohp, whatever.

>> bbox locking has its own problems, including easy DDOS, lack of
>> concurrency, etc... but consider the mapping party example. if there
>> is a way intersecting two editors' bboxes and they both lock their
>> bboxes. now, neither of them can edit that way since it intersects the
>> other's locked bbox.
> API 0.7 will of course implement partial ways too ;) Having the bbox as a
> viewport. I don't see an easy way of DDOS unless you have a zillion of users
> all locking *=*. Concurrency is perfectly possible, what you don't edit is
> not locked (or if requested: hidden).

of course 0.7 will have partial ways, be a zillion times faster and
the moon on a stick. ;-)

the (D)DOS comes from someone locking [*=*][-180,-90,90,180]. so you
say, ok - lets let people only lock small areas, but then it just
takes more accounts to perform the DOS. also, a "small" area in rural
areas might be quite large in urban areas - can i continuously lock
the central areas of large cities? maybe you say i can't lock for more
than a certain period of time, but then i could script up something to
continuously relock an area. ok, you say there's a back-off period
where i can't relock, but then it just takes more accounts. ok, you
say only whats edited is locked, but i can just lock all the elements.
ok, you say there's a limit on how many things i can lock, but then it
just takes more accounts. also, offline editing becomes almost
impossible, as i can't hold the lock for long enough on many enough
elements over the offline period.

of course, optimistic locking also has DOS attacks (e.g: picking some
ways and continuously incrementing the version numbers), but nothing
is perfect ;-)

finally, partial ways don't solve the problem of overlapping bboxes -
sure, i can edit the geometry, but what if i change the tags?



More information about the dev mailing list