Библиотека
214 разборов. Все материалы входят в какое-нибудь направление, но читать их можно и по отдельности — каждый написан так, чтобы быть законченным текстом.
Март 2026
Трёхстороннее рукопожатие TCP: что происходит до первого байта данных
SYN, SYN-ACK, ACK — три пакета, про которые все слышали. Зачем нужен каждый, откуда берутся начальные номера последовательности, что такое SYN-флуд и SYN cookies, почему half-open соединения живут минутами и как это связано с таймаутами вашего HTTP-клиента.
Почему ваш индекс не используется
Шесть причин, по которым планировщик игнорирует индекс: функция над колонкой, неявное приведение типа, низкая селективность, устаревшая статистика, слишком большая доля выборки и неудачный порядок колонок в составном индексе. Каждая — с планом запроса до и после.
Амортизированная сложность на пальцах
Почему добавление в динамический массив — это O(1), хотя иногда оно копирует весь массив. Метод усреднения, метод бухгалтерского учёта и метод потенциалов на одном и том же примере, чтобы было видно, что это три взгляда на одну вещь.
Raft: выборы лидера, шаг за шагом
Разбор алгоритма по оригинальной статье Онгаро и Остерхаута, но с человеческими объяснениями. Термы, таймауты выборов, расщепление голосов и почему случайная задержка решает проблему, которую не решает ничего более умного.
Февраль 2026
Что на самом деле делает fork()
Копирование при записи и таблицы страниц. Что наследует дочерний процесс и что нет: дескрипторы, сигналы, таймеры, блокировки. Зомби-процессы и зачем нужен wait(). Почему fork в многопоточной программе — почти всегда ошибка, и что делать вместо него.
Ретрай, который ломает больше, чем чинит
Три реальных сценария, где автоматический повтор превратил деградацию в отказ: шторм повторов, повтор неидемпотентной операции и повтор поверх уже исчерпанного бюджета времени. С расчётом нагрузки для каждого.
Хеш-таблица: от идеи до реализации на 120 строк
Хеш-функция, коллизии, две стратегии разрешения, коэффициент заполнения и рехеширование. Пишем вместе простую таблицу, замеряем её против стандартной и разбираем, откуда берётся разница.
Уровни изоляции: какие аномалии они разрешают
Грязное чтение, неповторяющееся чтение, фантомы, аномалия записи. Что из этого допускает каждый уровень по стандарту и что на самом деле делают три популярные СУБД — с запросами, которые это показывают в двух сессиях.
Январь 2026
TLS 1.3: что осталось от рукопожатия
Один round-trip вместо двух, отказ от RSA key exchange, шифрсьюты без «лишних» вариантов, 0-RTT и его опасность для неидемпотентных запросов. Что именно удалили из 1.2 и почему это было сделано.
Виртуальная память: четыре уровня таблиц
Как адрес в вашей программе превращается в физический. Страницы, таблицы страниц, TLB и промахи по нему. Подкачка и почему swap на SSD всё равно в сто раз медленнее памяти. Прозрачные огромные страницы: когда помогают, когда мешают.
Среднее время ответа вам врёт
Почему avg скрывает именно те случаи, ради которых вы смотрите метрики. Перцентили и как их нельзя усреднять. Гистограммы и квантили по ним. Почему p99 одного сервиса превращается в p90 страницы, собранной из десяти вызовов.
Динамическое программирование: как увидеть подзадачу
Главная трудность динамики не в коде, а в том, чтобы заметить структуру. Пять задач по возрастанию сложности, и в каждой мы сначала ищем подзадачу вслух, а потом уже пишем рекуррентное соотношение.
Показаны 12 из 214 материалов. Архив за 2022–2025 годы доступен внутри направлений: каждый модуль содержит полный список своих разборов.
Три правила редакции
Проверяемость. Любое утверждение о производительности сопровождается замером с описанием стенда. Если замера нет, формулировка меняется на «обычно» или исчезает.
Никаких аналогий без механики. Сравнение индекса с оглавлением книги допустимо один раз во вступлении. Дальше идёт B-дерево и то, как по нему ходит планировщик.
Ссылки на первоисточники. RFC, стандарты, оригинальные статьи и исходный код — в конце каждого разбора. Пересказывать чужой пересказ мы стараемся не делать.