[OSM-Devserver] Wie funktioniert tirex

Nop ekkehart at gmx.de
So Mär 14 13:39:11 CET 2010


Hallo!


Erstmal vorneweg: Durch die Umstellung auf tirex ist die Karte wohl erst 
mal völlig eingefroren. Ich kann weder Updates noch Änderungen am Stil 
machen oder den Server beeinflussen. Sämtliche Skripte und Abläufe 
müssen angepasst werden und ich habe grade wenig Zeit um das alles 
hopplahop umzustellen.

Können wir bitte das Ganze erst mal wieder auf rendered zurückdrehen, 
bis ich die Gelegenheit hatte, das alles zu verstehen, die Kartenskripte 
in Ruhe anzupassen und die nötigen Rechte habe, es überhaupt zu benutzen?

Am 14.03.2010 10:01, schrieb Jochen Topf:
>>> Wie funktioneren denn die analogen Operationen mit tirex?
>>> - Anhalten?
>>> - Fortsetzen?
>
> Wen oder was willst Du anhalten und fortsetzen? Das Rendering? Ausliefern der
> Tiles? Den ganzen Server?

Bisher habe ich renderd angehalten, um Änderungen an DB oder Stylesheets 
machen zu können.

> Es gibt die Init-Skripte /etc/init.d/tirex-master und tirex-renderd, damit
> wird das ganze System gestartet und gestoppt. Wenn Du nur das rendering
> anhalten willst, dann geht das mit

Habe ich die Rechte, dort was auszuführen? Für renderd mußte erst was 
eingerichtet werden, daß sudo funktioniert. Ist das analog für tirex 
auch erfolgt?

> tirex-send -w0 stop_rendering_bucket bucket=BUCKETNAME
>
> Starten wieder mit
>
> tirex-send -w0 continue_rendering_bucket bucket=BUCKETNAME

Das funktioniert nicht. Ich hab's ausprobiert, sehe aber keine Reaktion 
in tirex-status.

>
> Die Queue ist in mehrere Buckets aufgeteilt (Prioritätsklassen). Die kann man
> einzeln anhalten und laufen lassen. Damit kann man z.B.
> Hintergrundberechnungen vorübergehend unterbrechen, aber die live-Berechnungen
> laufen lassen.

Ich muß üblicherweise für ein Update alles anhalten. Geht das auch?

>>> - Was ist für einen Update der DB zu tun?
>
> Da hat sich nichts geändert.

Für ein Update der DB muß ich das rendering anhalten, den UPdate 
durchführen und hinterher alles wieder starten und ihm mitteilen, daß 
die alten Tiles jetzt expired sind. Die für renderd eingerichtete 
Prozedur ist es offensichtlich nicht mehr. Wie geht das jetzt?

>>> - Was muß man tun, um ein Neurendern von Tiles zu erzwingen?
>
> wie Sven schon sagt, müßte das weiter gehen:
>> mod_tile hat sich ja nicht geändert. Neu rendern sollte also wie
>> üblich über den Aufruf eine solchen URL laufen:
>>
>> http://topo.openstreetmap.de/topo/18/137260/90001.png/dirty

Da habe ich mich wohl mißverständlich ausgedrückt. Ich will nicht ein 
einzelnes Tile neurendern, sondern muß nach einem Update der 
Renderregeln mitteillen, daß alle Tiles veraltet sind und bei Anfragen 
neu gerendert werden sollen. Bisher mußte dafür 
/osm/tiles/planet-import-complete getoucht werden. Ist das mod_tile und 
somit gleich geblieben? Oder geht das jetzt auch anders?

> Von der Kommandozeile auch mit:
> tirex-batch --prio 10 map=base z=10 x=20 y=30
> oder sowas. Lies die Manpage von tirex-batch, das kann noch viel mehr.
>

Aber das alte render_list funktioniert weiterhin, oder?

>>> - Was muß man tun, um ein Neulesen des Kartenstyles auszulösen?
>
> SIGHUP schicken an den "tirex-renderd-starter". Der startet dann seine
> Kinder neu, die das eigentliche Rendering machen.

Was ist ein SIGHUP und wie schickt man sowas? Ich bin kein Unix-Experte.

>
>>> - Habe ich die nötigen Rechte?
>
> Die init-Skripte muss man als root aufrufen wie üblich. Das braucht man aber
> eigentlich im Betrieb nicht mehr anfassen. Außer man will die Konfiguration
> ändern.
>
> Tirex läuft als User "tirex". Zumindest für den SIGHUP musste root oder
> dieser User sein. Entweder machen wir da was mit sudo oder wir finden einen
> anderen Weg.

Das heißt ich kann momentan allein schon von den Rechten her keinerlei 
Updates oder Änderungen machen?

bye
           Nop