[OSM-dev-fr] mod_tile / render_list "recursif"

Christophe Merlet redfox at redfoxcenter.org
Dim 20 Juil 11:07:21 UTC 2014


Le 20/07/2014 11:49, Christian Quest a écrit :
> Ca me titillait depuis longtemps... j'ai modifié render_list,
> l'utilitaire de mod_tile qui sert à prégénérer les tuiles.
> 
> 
> Le but de la modif:
> 1- profiter au mieux des caches lors du process de prégénération
> 
> render_list procédait jusqu'aujourd'hui niveau de zoom par niveau de zoom.
> génération du zoom n, puis n+1, puis n+2
> 
> Du coup, les requêtes postgis chargeaient les données d'une zone, puis
> les dévait les recharger au zoom suivant car le reste du rendu les avait
> forcément supprimé des caches. Du coup ceci généère un grand nombre
> d'I/O... nerf de la guerre avec de telles volumes de données.
> 
> Désormais, render_list peut immédiatement calculer les tuiles du zoom
> suivant, tirant parti du fait que les données utiles sont encore en
> cache... et donc réduisant les I/O et donc le temps de rendu.
> 
> Mais bon... où arrêter la récursion ?

Et comment parcours tu les tuiles a générer ?
Un scan en zig-zag (style DCT du MPEG) serait sans doute aussi une bonne
chose pour le cache
http://www.bretl.com/mpeghtml/zigzag.HTM
http://www.cs.cf.ac.uk/Dave/Multimedia/node238.html



> 2- prégénérer uniquement ce qui vaut le coup de l'être
> 
> Deuxième apport... une limite de temps de génération.
> 
> Si une metatile a pris moins de temps que cette limite, on peut se
> passer de la prégénérer, elle pourra l'être rapidement si jamais elle
> est demandée.
> 
> 
> Pour utiliser cette nouvelle fonctionnalité, j'ai juste ajouté l'option
> de temps maximum de rendu (en ms), qui déclenche et contrôle la
> récursion. Sans elle, le fonctionnement est inchangé.
> 
> Exemple:
> render_list -m osm -a -f -z 9 -Z 9 --max-time 5000
> 
> A faire:
> - pour un rendu multi-niveau (-z 9 -Z 12) prévoir de tester si une
> metatile a déjà été rendue en testant son heure de génération par
> rapport à l'heure de démarrage de render_list
> - ajouter une limite sur le zoom maxi pour la récursion (pour l'instant
> ça descend jusqu'au 18 codé en dur)
> 
> La modif est sur github, commentaires bienvenus !
> 
> https://github.com/cquest/mod_tile/commit/652ec90c7d1293a4b049ee0b58be53c01a602e75
> -- 
> Christian Quest - OpenStreetMap France
> 
> 
> _______________________________________________
> dev-fr mailing list
> dev-fr at openstreetmap.org
> https://lists.openstreetmap.org/listinfo/dev-fr
> 


-- 
Christophe Merlet (RedFox)



Plus d'informations sur la liste de diffusion dev-fr