А и Б

Недавно в рассылке talk@ спросили, зачем мы используем для тайлов адреса вида a.tile.osm.org, с тремя префиксами. Если бы они вели на разные серверы, это было бы логично, но они ведут на один. На деле это сделано не для снижения нагрузки, а для браузеров: когда-то у них стояло ограничение на количество одновременных соединений с сайтом (что-то около двух). Это ограничение, вероятно, уже снято, но традиция осталась. Richard Z. предположил, что добавление префиксов к адресам тайлов ломает кэширование, на что Грант Слейтер, наш главный администратор, ответил письмом, которое стоит перевести.

Нет. Альтернативное название сервера (a, b, c) выбирается так, чтобы для каждого тайла всё время подставлять один и тот же сервер (см. исходник Leaflet, в OpenLayers так же).

Давно пора рассказать, как работает наш тайловый CDN:

У нас 16 распределённых серверов оконечного кэширования по всему миру (список, карта, требования). За работоспособностью этих серверов почти в реальном времени следит Pingdom. Мы используем GeoDNS для доменов [a|b|c].tile.openstreetmap.org, который перенаправляет запрос на ближайший или предпочтительный для страны пользователя кэширующий сервер.

Как только Pingdom замечает падение одного из серверов, мы перестраиваем GeoDNS, и посетители пойдут на другой сервер, как только обновится их таблица DNS (в течение 5 минут). Кэширующие серверы прикрывают два сервера рендеринга (orm и yevaud), один из которых — главный. За ними мы тоже следим в Pingdom и когда нужно, перестраиваем GeoDNS.

На кэширующих серверах работает алгоритм равнодоступности (маркерная корзина), который не даст какому-то одному клиенту или подсети ухудшить качество сервиса для остальных.

Оба сервера рендеринга постоянно перегружены, особенно когда обновляется картостиль. Быстрым решением было бы добавить ещё один сервер для рендеринга, но более долговременным — перейти на модель, в которой тайлы (картинки png) производят оконечные кэширующие серверы, а базовые серверы готовят векторные тайлы, которые и рассылают кэширующим узлам. Такие технологии развивают несколько организаций, но полноценного работающего решения с открытым кодом пока нет. Некоторые из нас, операционной команды OSM и команды из викимедии, пристально следят за разработками.

Картостиль OpenStreetMap обновляется нерегулярно, примерно раз в месяц, и после каждого обновления два дня серверы рендеринга работают на пределе. В последней версии стиля целиком переделали отображение болот (теперь оно зависит от типа), добавили значки для памятников, судов, скамеек, урн, 11 видов магазинов, и подписи для деревьев, почты, банкоматов. Грядущая версия пока только легчает: с 6-го масштаба пропадут железные дороги.

Поделиться
Отправить
2015   osm.org
12 комментариев
Ilis

Всё понятно теперь. Только почему a, b и c?

Илья Зверев

Почему однобуквенные, или почему только три? Видимо, для удобства и потому что хватает.

freeExec

Давно хотеть векторные тайлы.

Tesla

Интересная екскурсия за кулисы, спасибо :)

Антон

На деле это сделано не для снижения нагрузки, а для браузеров: когда-то у них стояло ограничение на количество одновременных соединений с сайтом (что-то около двух).

Ограничения браузеров можно посмотреть тут:
http://www.browserscope.org/?category=network&v=top

NDA

«с 6-го масштаба пропадут железные дороги» ну и где ТЕПЕРЬ можно их будет посмотреть с такого масштаба??

freeExec

На 7-мом масштабе Россия всего 10 экранов в поперечнике, смотри не хочу.

NDA

«всего 10 экранов в поперечнике» очень удобно! мне и 6 не хватало ((

freeExec

Не хватало для чего? И потом всегда можно поднять свой рендер :)

NDA

Не хватало для наглядности. Протяжённость ж/д путей нашей страны очень большая и иногда хочется видеть весь маршрут целиком на экране а не елозить туда сюда!

«можно поднять свой рендер» может ещё предложите, альтернативный OSM, проект запустить?! делов то!

Илья Зверев

http://osmz.ru/veloroad.html#6/57.190/37.299
Пока не на всю страну, к сожалению.

Денис

Кто хотел векторные тайлы ?
https://www.mapbox.com/mapbox-gl-js/examples/

freeExec

Кто хотел векторные тайлы ?

Сам их смотрел? А то до этого когда я искал, у МБ были самы дермовые, не было даже номеров домов. А я хочу full_osm, а не скудную выжимку в виде только дома и дороги.

Денис

Так может тогда maps.me сделает web-версию на основе своего переработанного вектора ?