Revision [4972]
This is an old revision of Renderovanie made by MiMiNo on 2015-05-25 19:19:24.
Popis renderovania na freemap.sk
Renderovanie dát je rozdelené na dve oblati:1. denné renderovanie
Každé ráno sa vykonáva postupnosť krokov, ktoré zabezpečia spracovanie cca 99% OSM dát (t.j. všetky, ktoré nespracovávajú neskôr).Časový posun | Názov procesu: jeho popis |
+0min | osmparser: Stiahnutie zmien z OSM.org servera za prechádzajúci deň, orezanie dát na BBOX Slovenska |
+10min | osmparser: Naimportovanie súboru so zmenami do databázy |
+20min | osmparser: Spracovanie relácií (turistických, cyklistických, MHD, ...) |
+35min | osmparser: Export nových/zmenených dát z databázy do súboru vo formáte pre TRAPI |
+40min | trapi/trapilow: TRAPI+LowTRAPI nachádza vo svojom vstupnom adresári nový subor a začína s jeho importom |
+45min | osmparser: Výpočet z/x/y koordinátov zmenených tiles a ich označenie (ako "dirty") na prerenderovanie DiSK klientmi |
+1h10min | osmparser: Ukončenie procesu |
+1h0min až +1h30min | trapi/trapilow: Ukončenie procesu |
+1h45min | disk: Začatie renderovania DiSK klientmi. |
+4h až +12h | disk: Ukončenie renderovania, závisí od počtu tiles, ich komplexnosti a počte/výkone renderujúcich DiSK klientov |
Na serveri bežia nepretržite nasledujúce procesy:
- po uploade vyrenderovaných obrázkov DiSK klientom, sú tieto rozbalené do preddefinovaného adresára
- vyrenderované obrázky sú porovnané s existujúcimi na serveri, a ak sa líšia, sú posunuté na ďalšie spracovanie
- proces LayerAllInOne AllInOne načíta všetky potrebné vrstvy (podkladový tile, reliéf, vrstevnice, názvy, turistické/cyklistické trasy, ...) a vygeneruje finálny tile pre A+C+T vrstvy.
Priorita spracovania tiles: najprv sa spracovávajú tiles na z8, potom z9 ... až nakoniec z16. Pre každú vrstvu sa začína na najmenšej súradnici X (západna strana mapy), pre ktorú sa prechádza od najmenšej súradnice Y (sever) až po maximálnu súradnicu Y (juh). Následne sa nájde ďalšia súradnica X (kde sú zmenené tiles) a postup sa opakuje. Na jednu iteráciu sa spracuje 32 tiles. Ak počas spracovania týchto tiles napr. na z15, pribudnú do fronty prioritnejšie tiles (z14 a menej), tak v ďalšej iterácii sa proces vráti späť a spracuje ich prednostne. Príklad SQL príkazu by mohol byť:
SELECT z, x, y FROM tiles WHERE state="needs_merge" ORDER BY z, x, y LIMIT 0,32;
- proces TileDistribution DPC načíta 128 tiles, spraví balíček, ten rozdistribuuje na cieľové servery a/b/c/d.freemap, kde sa rozbalí. Ak nemá vo fronte k dispozícii 128 tiles, tak sa zastaví na 15 minút.