2012/8/31 Vincent Privat <[email protected]>: > A la question "pourquoi" c'est facile, les changesets ne sont pas atomiques: > http://wiki.openstreetmap.org/wiki/API_v0.6#Changesets_2
Euh, En fait, ça ne répond pas à la question. Un changeset n'est pas une transaction. C'est vrai que ça n'est pas atomique. Mais chaque PUT vers le serveur est atomique. Ce qui manque, ce sont des commit en double phases (2PC) ou autres techniques pour la création de nouveaux objets (pour les updates, il y a l' "optimistic lock" qui gère les éventuels conflits de versions). Sans entrer dans les détails, le protocole entre ta machine et le serveur OSM est ultra-simple. Ce problème de dupplication ne peut arriver que pour de nouveaux éléments ajoutés dans ton éditeur : lorsque tu crées un nouvel noeud par exemple, JOSM lui assigne un ID négatif temporaire (l'OSM_ID, c.a.d un numéro identifiant unique pour chaque élément dans la base). Quand tu fais "upload", il envoie un message vers le seveur avec cet ID négatif (que le serveur ignore superbement) et reçoit en retour un message du serveur qui donne l'OSM-ID officiel dans la base de données. Quand tout se passe bien, JOSM continue de fonctionner avec l'ID officiel. Si ça se passe mal, c'est soit que la réponse du serveur est trop tardive, ou que l'utlisateur a interrompu l'upload (abort, cancel) ou que un truc s'est mal passé à l'intérieur du serveur OSM (c'est alors un bug, heureusement, ça arrive de moins en moins souvent). JOSM conserve alors l'ID négatif temporaire pour ce noeud puisqu'il n'a pas reçu la réponse correcte du serveur. Si tu relances l'upload, JOSM considère que ce noeud est encore nouveau et répète le même message de création vers la base. C'est comme ça qu'on peut se retrouver avec deux ou trois fois le même élément dans la base. Pour éviter ce genre de désagréments, il faut faire un download quand l'upload se passe mal. Comme ça, on voit ce qui est effectivement dans la base de données. En lançant une vérification avec Validator, on détectera les noeuds et ways superposés (mais peut-être pas les nouvelles relations). Bien sûr, ce que je viens de dire pourrait aussi être fait automatiquement par JOSM. Ca viendra peut-être un jour. Pieren _______________________________________________ Talk-fr mailing list [email protected] http://lists.openstreetmap.org/listinfo/talk-fr

