Рейтинг@Mail.ru
Highload++ 2017 завершён!

Профессиональная конференция разработчиков высоконагруженных систем

СКОЛКОВО, Москва 7 и 8 ноября

11-я ежегодная конференция для разработчиков highload-систем, которая соберет   2 700 участников из разных регионов России и мира. Мероприятие направлено на обмен знаниями о технологиях, позволяющих одновременно обслуживать многие тысячи и миллионы пользователей.

Программа охватывает такие аспекты веб-разработок, как архитектуры крупных проектов, базы данных и системы хранения, системное администрирование, нагрузочное тестирование, эксплуатация крупных проектов и другие направления, связанные с высоконагруженными системами.

  • Главная
  • Бэкенд, теория программирования

Хочу всё сжать
Бэкенд, теория программирования

Доклад принят в Программу конференции
Sphinx

Всю жизнь пишет низкоуровневый код, в 2018 все еще делает поисковый движок Sphinx.

Тезисы

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

Как работает магия сжатия в целом? Как она работает более конкретно в очень разных продуктах: "просто базах" типа MySQL или Mongo; в поисковиках типа Lucene или Sphinx (или даже веб-поисках); в колоночных хранилищах типа Vertica или Clickhouse; в конце концов, внутри апдейтов Chrome? Обсудим это, пробежимся по всем важным ключевым словам от замшелых Huffman до моднейших Snappy - и, важнее, по ещё паре десятков других ключевых слов. Подробно разберем несколько особо интересных методов и трюков про сжатие и прочую перепаковку данных. Посмотрим пример на 100 строк кода со сжатием в 6 раз и одновременным ускорением работы в 5 раз (читерством, конечно), причем успешно написанный не специально обученным монстром, а совершенно обычными разработчиками. Посмотрим на скорость разных готовых кодеков, попытаемся понять, когда какой можно применять, а где нельзя.

Бонус-трек в коридоре, если кому интересно, как устроено внутри сжатие картинок, видео и прочего такого. Условно прикинем на пальцах, как написать свой простенький игрушечный JPEG-декодер в сотню-другую строк; можно на JavaScript или Python. Или не JPEG!

Другие доклады секции
Бэкенд, теория программирования

Rambler's Top100