Open wikiocity opened 3 years ago
I just wanted to add some clarification for others now that I've gone through the code and done some testing to better understand this.
A tile is only considered empty when it is completely devoid of any styles. This mainly falls into land in Antarctica on the default style. The problem with checkZoom is that if you have a blank tile at a higher level that gains details at a lower level, then that tile will not be rendered. This is OK if you are using an autogen source, as the tile will be rendered from postgresql if it does not exist. The tile numbers listed on the linked generation report above are not accurate though, and I assume they use a filtered source starting at zoom 10, as opposed to empty tiles. Filtering actually looks like a better way to go, and is what we're doing now. With filtering we expect to see around 78% reduction in tiles needing pre-rendering. The tile generation report shows much larger savings, but that's because of the more detailed lower levels getting missed, which is demonstrated in the note about zoom 15 growing 26%. That missing 17% is probably not viewed very often though. In the end it comes down to user choice as to whether it's better to pre-render all now, or to render less viewed tiles later on the fly.
@wikiocity you are very proficient in the stack, that's awesome! I wonder if you have these benchmarks available.
I would like to ask you to move this issue as well to the phabricator board, it would be good to document it for the Wikipedia community there too.
Hey @thesocialdev , I'm having trouble wrapping my head around the checkZoom feature, and I was hoping you could help me? I was also wondering if there was a better place to ask these questions? I have a lot of modifications I'd like to share with the team, as well as fixes and upgrades. I do keep an eye on the gerrit and phabricator pages, but I'm not sure if you guys are cool with posting general suggestions and questions there?
Anyway, after working for a long time to render zoom 14 in full quickly, and now 15, I realized that I actually rendered every tile and that checkZoom wasn't reducing them at all. I had thought when running tilerator I could render zooms 1-10 in full, and then use zoom 10 as the checkZoom for 11 and so on. It seems like instead you have to start at level 3 and then work your way down using checkZoom from there. When I do that I can see that Cassandra holds around the same number of tiles showed in the (01-08-2019) table on the tile generation report .
I have no problem doing this going forward, but I was wondering about how it all works? Basically, what is it kartotherian using to determine that a tile will be blank going from zoom 3-15+? Is it using the ocean outline? If so, is there any chance of missed tiles on small islands or simplified geometries that don't show up in zoom 3? Also, how does kartotherian know how to fill in the missing tiles? If my guess about ocean is true, then I'd assume it just fills it in as a blue tile?
Thanks!