Data-Oriented Design в бэкенде: как уплощение структур и SoA экономят сотни ядер CPU
Программный комитет ещё не принял решения по этому докладу
Целевая аудитория
Тезисы
В бэкенд-разработке принято ставить во главу угла удобство поддержки кода и принципы Domain-Driven Design (DDD). Мы упаковываем бизнес-сущности в структуры и гибкие графы объектов. Для 95% задач это единственный правильный подход. Но когда система перешагивает порог в сотни тысяч RPS, изящный ООП-код начинает жестко воевать с физикой современного процессора.
На этом выступлении мы без эмоций разберем, почему классический подход Array of Structs (AoS) разрушает механическую симпатию (убивает L1/L2 кэши CPU) и заставляет процессор простаивать в ожидании данных из RAM, и как адаптация структур под архитектуру железа (Data-Oriented Design) позволяет кратно снизить утилизацию CPU.
О чем поговорим и что разберем:
Границы применимости: где DOD действительно необходим (in-memory скоринг, матчинг, агрегация), а где он станет избыточным оверхедом (I/O-bound сервисы).
AoS vs SoA на пальцах: почему обращение к одному полю структуры User вымывает кэш-линию L1 метаданными, и как переход к Structure of Arrays (SoA) обеспечивает 100% плотность данных.
Цена указателя и Pointer Chasing: как ссылки на объекты фрагментируют память и превращают работу процессора в постоянные остановочные такты (CPU Stalls).
Пакетная обработка и ECS: запуск микро-батчинга и принципов Entity-Component-System на бэкенде для обработки массивов данных за один проход CPU.
Контроль аллокаций: от проблем с деградацией sync.Pool до использования Bump-аллокаторов (Memory Arenas) под Request-Scoped данные.
Иван Синицын — технический лидер в Ozon Tech с более чем 8-летним опытом в IT. Он строил высоконагруженные системы, разрабатывал масштабируемые микросервисы для управления складскими процессами и создавал feature store для рекомендательной системы крупного ритейлера. Иван специализируется на Golang, оптимизации производительности, распределённых системах и эффективной обработке больших объёмов данных. Увлекается марафонами и садоводством.
Видео
Другие доклады секции
Архитектура и масштабируемость