Как спиратить планету

Две недели назад появился новый способ скачать огромные (от полусотни гигабайт) файлы планеты: через торренты. Все файлы в каталогах planet и pbf — выгрузки в bzip2 и pbf, полная история и пакеты правок — сопровождаются ссылками на файлы torrent, которые легко открыть в µTorrent или Transmission. Советую забыть про прямые ссылки и качать планету только так.

Хотя торренты ассоциируются с пиратством, их используют ещё и для распространения крупных файлов: например, дистрибутивов Linux. В отличие от обычного скачивания с сайта, через торренты вы загружаете файл сразу с нескольких источников — среди них зачастую даже нет исходного. То есть, ваш файл планеты будет скачиваться с компьютеров тех, кто уже его скачал, а серверы OSM освободятся. Учитывая пропускную способность серверных каналов и нередкие ограничения трафика, скачивать через торренты обычно быстрее, чем напрямую.

Сайт planet.osm.org встречает предупреждением, что скорость ограничена четырьмя мегабайтами в секунду: скачивание планеты в pbf должно занять четыре часа. На практике — дольше: запросы на крупные файлы отправляются на вспомогательный сервер gwdg.de. В эксперименте он отдавал файл на 100-300 килобайтах в секунду, так что расчётное время скачивания превышало двое суток. Впору поискать пиратку.

Кристиан Квест из французского OSM занялся торрентизацией планеты в январе этого года. Как он объяснил в анонсе, файл торрента создаётся через пару часов после публикации планеты, и затем данные раскладываются по нескольким серверам. Также подключается функция web seed, доступная в некоторых клиентах, с помощью которой исходные файлы тоже становятся частью сети. Всё это позволяет скачать планету за полчаса — а через пару дней, когда скачавших прибывает, можно управиться и за 15 минут.

Ограничение скорости на нашем сервере ввели в том же январе. Причиной была узость канала: всего гигабит в секунду. Обычные 30-60 одновременных скачиваний планеты забивали его так, что начинали сыпаться другие сервисы, включая DNS и API. Тогда скорость порезали до 400 кБ/с, а в феврале, когда канал расширили до десяти гигабит, ограничение ослабили. Но проблема с тысячью скачивавших каждый файл планеты сразу после его публикации (четверть из них — в формате bz2) осталась: зачем, когда есть диффы? И как ослабить нагрузку на сервер, чтобы не мешать нормальным людям?

Чтобы не зависеть от французского сервера и ускорить создание торрента, весь процесс нужно было перенести на сервер OSMF. Этим Грант Слейтер занимался с августа. Оказалось, что торренты делал ещё и Матия Налис из Хорватии: его скрипты легли в основу официальных. 23 ноября торренты появились в списке файлов сервера, и несколько дней спустя они охватили и дампы с полной историей. Теперь пора и нам переключиться на скачивание торрентов вместо прямых ссылок.

Как видно, инфраструктура OSM не стоит на месте: новые технологии, пусть и с десятилетней задержкой, приходят на наши серверы. Что дальше? Репликация. Диффы сейчас создаются программой Osmosis. Два года назад её автор Бретт заявил, что хватит с него, программе 11 лет и есть другие варианты. Обновлять базу теперь можно с PyOsmium (пример для тайлов), а вот создавать диффы из живой базы — увы. Osmosis использовал какую-то устаревшую магию, заменить которую безуспешно пытаются с 2017 года. Но решение, кажется, появилось: Йохен Топф летом написал замену, и две недели назад началось тестирование новых диффов. Когда основные ошибки отловят, Osmosis окончательно выкинут с серверов. Пока же Майк Мигурски подхватил его поддержку и время от времени выпускает заплатки.

Поделиться
Отправить
Запинить
2020   osm.org

Мнения, высказанные на этом сайте, отражают точку зрения лично автора сайта и ничью больше: ни его бывших или настоящих работодателей, ни семьи и знакомых.

3 комментария
pfg21 2020

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

надеюсь потом еще появится resilio-шара (али иная п2п) с дневными, часовыми, а может и минутными дифами. ибо потребителей сего контента навалом, пусть способствуют в обмене :)

bopoh13 2020

Автоматическое обновление торрент-файла в массы не пошло. Страдают все.

Илья Зверев 2020

Не очень понял вопрос по ссылке, но сегодня Грант сделал симлинк planet-latest.torrent, который обновляется каждый раз, когда публикуют новую планету. RSS, правда, он не спешит делать.

Darafei Komяpa Praliaskouski 2020

Однострочник для ваших скриптов:

aria2c —seed-time=0 https://planet.openstreetmap.org/pbf/planet-latest.osm.pbf.torrent; mv planet*.osm.pbf planet-latest.osm.pbf

Популярное