[Talk-de] T at H furchtbar langsam
Frederik Ramm
frederik at remote.org
So Jul 27 22:48:48 UTC 2008
Hi,
Dirk Stöcker wrote:
> Dann fühle ich mich einfach mal angesprochen. Ich habe OSM vor
> vielleicht anderthalb bis 2 Jahren kennengelernt, hielt es für
> unausgereift und habe es ignoriert.
Ging mir beim Erstkontakt auch so. Karte war leer, Projekt uninteressant.
[Arbeit an Merkaartor, JOSM, Tagwatch...]
Find ich prima, so soll es sein. Und von jemandem, der Probleme
normalerweise anpackt, wo er sie sieht, laesst man sich auch eher mal
auf eines hinweisen, das er nicht loesen zu koennen glaubt.
> Die nicht funktionierende OSMX-API stört mich und ich dachte darüber
> nach vielleicht eine zweite Variante davon aufzusetzen. Aber oh Wunder,
> findet sich natürlich nichts dazu im SVN (vielleicht ist es ja sogar
> irgendwo drin, aber zu finden ist nichts).
Warum schreibst Du "oh Wunder...natuerlich"? Das klingt so, als ob Du
annimmst, dass Dir da jemand absichtlich was vorenthalten will?
OSMXAPI ist von Etienne Cherdlu geschrieben, der auch Osmarender
verbrochen hat. Es ist ein einer Programmiersprache gemacht, die
angeblich ein moderner Dialekt von MUMPS ist. MUMPS ist eine
Datenbank-Programmiersprache aus den 70er Jahren. Ich habe 80n gefragt,
ob ich die Sourcen haben kann, und er sagte: "Gerne, aber Du muesstest
Dir ca. eine Woche Zeit nehmen, um Dich von mir in eine etwas exotische
Programmiersprache einweisen zu lassen". Warum es nicht im SVN ist,
weiss ich nicht - 80n ist politisch ein sehr grosser GPL-Freund, also
wird er bestimmt nichts geheimhalten wollen. Ich habe dann aber
abgewunken und gedacht, so kompliziert ist es nun auch wieder nicht, das
OSMXAPI vernuenftig in C auf einem PostGIS-Backend nachzubauen. Hab ich
dann aber nie getan; anderes schien mir wichtiger.
> Und Grundvoraussetzung
> des ganzen Projekts ist der stabile Betrieb der zentralen Infrastruktur.
> Und Du wirst mir ja wohl kaum sagen wollen, dass ich gleich die zentrale
> API auch klonen soll? Oder meinst Du das?
Naja. Die zentrale API ist in Ruby gemacht, und jeder, inkl. dem Admin,
sagt, dass Ruby fuer diesen Betrieb - Daten aus SQL-Datenbank
rausschaufeln, XML draus machen, ueber die Leitung schicken - absolut
ungeeignet ist (wegen der schlechten String-Implementierung vor allem).
Ich habe daher neulich, als ein nach eigenem Bekunden erfahrener
C++-Programmierer fragte, was er sinnvolles tun koennte, empfohlen, er
sollte doch mal den "map"-Call als Apache-Modul reimplementieren, und
siehe da, er hats tatsaechlich gemacht, die Sache ist 10-15x so schnell
und braucht einen Bruchteil des Speichers. (Das ist eines der Probleme
im Moment, dass wir nur eine begrenzte Anzahl an parallelen API-Daemons
laufen lassen koennen, weil man immer damit rechnen muss, dass ein
speicheraufendiger map-Call kommt.) Ich habe das nicht genau verfolgt,
aber ich rechne damit, dass diese Entwicklung in ein paar Monaten live
gehen wird.
Ich weiss, dass Du viele andere sinnvolle Sachen machst, aber da Du so
konkret fragst: Fuer diese C++-Implementierung hat der Typ auch
keinerlei Hilfe bekommen, er war einfach ein Aussenseiter, der sich da
reingefressen hat, und das haettest Du sicherlich auch tun koennen, wenn
Du es hinreichend wichtig gefunden haettest.
Eine weitere Sache, die die Arbeitsgeschwindigkeit deutlich erhoehen
wuerde, waere die Einrichtung von OSMXAPI-aehnlichen Mirrors, die aber
(im Gegensatz zu OSMXAPI) die gesamte Palette der API-Leserequests
koennen. Also einfach eine leicht modifizierte Version der normalen API
aufsetzen, einen Job dahinter, der die minuetlichen Updates per Osmosis
in die MySQL-Datenbank einspielt - alles kein Hexenwerk, "muss nur
jemand machen" - und dann passen wir den JOSM so an, dass er seine
Leserequests grundsaetzlich nicht aus der Masterdatenbank befriedigt,
sondern aus einem der vorhandenen Mirrors. Die Datenbankperformance der
Zentrale stuende dann hauptsaechlich fuer die Update-Requests zur
Verfuegung. Warum wird das nicht gemacht? Nicht etwa, weil irgendein
finsterer Neinsager in der OSM-Zentrale dagegen waere; nicht etwa, weil
es politisch nicht gewuenscht waere oder technisch schwierig... es hat
sich einfach bislang nicht "der richtige" dafuer gefunden, der die Zeit
und die Initiative dafuer aufbringt.
An wessen Adresse soll man also die Kritik daran richten, dass es solche
Mirror-Server nicht gibt? "Die unfaehigen Admins sollten halt einfach
sagen, was sie brauchen?" - "Die Foundation sollte jemanden einstellen,
der das macht?" - Meiner bescheidenen Ansicht nach gibt es solche Server
halt einfach nicht, weil es nicht *so* wichtig ist. Diejenigen im
Projekt, die sowas machen *koennten*, tun es im Moment nicht, weil ihnen
andere Sachen wichtiger erscheinen. Ist doch auch ihr gutes Recht. Ich
kann doch nicht zu Dir sagen "verschwende doch keine Zeit mit
Uebersetzungen von JOSM, wenn Du stattdessen einen API-Mirror bauen
koenntest". Wenn die Performance der API wirklich *so* schlecht waere,
dann wuerdest Du vermutlich von selber auf die Idee kommen.
Bye
Frederik
--
Frederik Ramm ## eMail frederik at remote.org ## N49°00'09" E008°23'33"
Mehr Informationen über die Mailingliste Talk-de