Highload++ 2017 завершён!

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

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

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

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

Зачем знать алгоритмы
Основная секция

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

Пишет код на всём подряд, показывает другим как. В удачные дни код удается сносить, это обязательно показывает другим и заставляет "точно так же" втройне сильнее. Всю сознательную жизнь из этого выходят разные движки, прямо проклятие какое-то.

Тезисы

Синопсис

Исходник можешь ты не знать, но алгоритмы знать обязан. Это потому, что даже минимальные познания о том, как что устроено внутри разных серверных программных систем позволяют ловко оптимизировать всякое, проводить правильные бенчмарки, принимать осознанные решения о разработке или неразработке своего велосипеда, и т.д. и т.п.

Тезисы:

1. О чем вообще доклад: как довольно-таки базовые знания всякого помогают понять происходящее в чужих (!) системах, с которыми приходится работать, типа СУБД.

2. Пронзаем мозгом базу данных.

2.1. Теория. Потроха любой SQL базы на пальцах за 10 минут: хранение rows (тупое и кластерное); индексы (вечный Btree и как он устроен); covering индексы; вычисление запросов с точки зрения банальной эрудиции (row lookup, WHERE, ORDER, GROUP); зачем и как бывают буфера.

2.2. Практика. Как внутри работает выборка по PK, по индексу, по covering индексу, как примерно может работать JOIN. Как идеал, бывает, расходится с реальностью на примере MySQL (LIMIT, выбор индекса, subselect). Отчего иногда случается fullscan и отчего иногда это хорошо. Полубоевые примеры "как по книжке" про разгон запросов при помощи covering index, форсирования fullscan, итд.

3. Пронзаем мозгом полнотекстовый поиск.

3.1. Теория. Потроха любого поиска на пальцах за 10 минут: что такое инвертированный индекс; как, в принципе, могут храниться атрибуты; вычисление запросов с точки зрения банальной эрудиции (пересечение списков, прыжки по чекпойнтам, row lookup).

3.2. Практика. Отчего и почему FT индекс нельзя хранить в базе, как и почему для него НЕ работает Btree. Отчего, почему, и как в Sphinx работают ловкие трюки про замену ключевых слов фильтрами и наоборот. Отчего не обязаны хорошо работать где-то еще. Почему нужны стоп-слова. Откуда взялся max_matches и почему оно влияет на скорость поиска.

4. Бонус-трек: пронзаем мозгом компилятор. "Зачем ассемблеру второй проход", чего нельзя ожидать от скриптовой среды типа PHP, почему в идеальном мире победит Java, а в реальном C++.

5. Выводы. Зачем же таки знать алгоритмы. Какие конкретно, те, что остались за бортом доклада. На какой позиции или в какой стране можно не знать.

Другие доклады секции
Основная секция

Rambler's Top100