https://bugzilla.wikimedia.org/show_bug.cgi?id=33980

--- Comment #33 from kakrue...@gmail.com ---
What is the best way to comment on the individual issues raised by Brandon?
Inline comments in the wikipage? Discussing them here on the ticket, or as
comments at the bottom of the wikipage?

The two main issues I'd like to address though are:

1) Is there a realistic estimate of the load this system needs to actually
support? On the wiki page, the proposed load numbers range from 200 tiles per
second to 30000 tiles per second. It is hard to plan a system if the estimates
of what needs to be supported varies over two orders of magnitude. The 200
tiles per second estimate comes from the empirical numbers we are seeing on the
toolserver which is running the "in production" system for the OSM gadget which
is embedded in at least the German, Italian, Spanish and a bunch of other
Wikipedias and from the WMA, which is embedded in most of the "Desktop"
Wikipedias. I have no idea where the estimate of 30000 tiles/s comes from. As a
comparison all of osmf's tile serving infrastructure is on the order of 3000 -
4000 tile/s including everywhere where the osmf tiles are embedded in other
peoples site.

So it seems like we really need a better and more justified estimate of the
expected load. I.e. looking through the logs of the existing systems, both for
mobile (mapquest open) and desktop (toolserver) and figure out what access
patterns the pages have, where these tiles would be used in.

My impression is that we are trying to build a system that is potentially
orders of magnitude more potent than what is actually needed in the beginning.

One has to, however, also remember, that there are two types of scaling in a
typical tile server that are semi-independent and scale in different ways and
have rather different hardware demands: Scaling of serving of tiles and scaling
of rendering. Although rendering does to some degree scale with serving load,
to a good degree, it also scales with update frequency and editing frequency in
OSM, both of which are independent of the size of the serving site.

2) "direct PostgreSQL queries for rendering aren't going to scale well".
Although it depends on what exactly you mean, the OSM rendering stack has
proved in countless installations that it does scale pretty well. And really,
the system is the only way that is possible if you want an up-to-date map at
high zoom levels unless you throw a gigantic amount of hardware at it. And even
then, you wont be able to achieve the minutely updated map up to Z20, as you
can with the current OSM software stack without too much issues. It is also
follows the concept that is used in pretty much any other scaleable website
(including mediawiki). I.e. that you have a bunch of application servers in the
background that render pages from a database on request and then have multiple
levels of caching in front of that to achieve the necessary performance. That
is exactly what mod_tile / renderd do as well and only a tiny fraction of
requests actually need to be rendered on the fly.

E.g. looking at the setup on osm.org. Out of the 3000 tiles/s served, typically
only somewhere between 5 - 10 tiles/s are rendered on the fly. As most of those
are updates, only about 1 tile/s is not actually available in the master cache
(of about 1.5TB) and needs to be rendered on the fly. As nearly all of those
are high zoom tiles, they typically can be rendered in a few 100 milliseconds
and so a single multi-core server is usually quite capable of rendering 5 - 10
tiles/s. The master cache can also vary smoothly between 0 and the full set of
all tiles depending on where you want to put the trade off of between disk
space and rendering capacity. Empirically 1 - 2 TB have generally proven as
fairly good trade-offs. 

Furthermore, mod_tile / renderd are designed to very gracefully degrade once
they can't keep up with the rendering load anymore and simply some of the areas
won't be quite fully up-to-date for the duration of the overload. But pretty
much no one will notice if it shows "yesterday's" map instead of "today's" map.

Once you move over to trying to display many different map styles, things start
to look differently, as in the current setups you need to more or less
"duplicate" things per style. At that point you probably do want to move over
to "vector tiles" which get styled and rendered either on the client side, or
potentially on the fly server side for weak dumb clients. The software stack
for that is indeed not yet well developed and tested. But for a single style, I
would consider the current software stack as fairly mature, robust and
scalable.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
Wikibugs-l mailing list
Wikibugs-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikibugs-l

Reply via email to