А и Б

Недавно в рассылке 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 2015

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

Илья Зверев 2015

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

freeExec 2015

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

Tesla 2015

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

Антон 2015

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

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

NDA 2015

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

freeExec 2015

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

NDA 2015

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

freeExec 2015

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

NDA 2015

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

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

Илья Зверев 2015

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

Денис 2015

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

freeExec 2015

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

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

Денис 2015

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

Популярное