Причудливые структуры данных, о которых должен знать каждый разработчик
Vexorium
0:00 / 0:00
Причудливые структуры данных, о которых должен знать каждый разработчик
5 452 просмотра · 2 месяца назад
Vexorium
178 подписчиков
5 452 просмотра · 2 месяца назад
Стандартные структуры CS101 (массивы, хэш-карты, деревья) предполагают мир с бесконечным объемом оперативной памяти и нулевой задержкой. В производственной среде эти структуры ломаются из-за промахов кэша и времени поиска на диске. В масштабах Discord или YouTube «идеальная точность» становится узким местом.
В этом видео рассматриваются вероятностные структуры и структуры с добавлением данных, которые обеспечивают горизонтальное масштабирование и высокопроизводительную запись. Мы выходим за рамки учебника и рассматриваем инженерные компромиссы, используемые в реальных распределенных системах.
Фильтры Блума: Вероятностная проверка принадлежности с помощью битовых массивов отпечатков. Как Chrome фильтрует вредоносные URL-адреса за O(1) без сетевого вызова.
Эскиз Count-Min: Оценка частоты с использованием многострочного хеширования. Логика подсчета просмотров в реальном времени на YouTube.
Хеширование Кукушки: Наихудшая скорость поиска O(1) через цепочки вытеснения. Почему аппаратные маршрутизаторы предпочитают это цепочке.
LSM-деревья (логарифмически структурированные деревья слияния): Преобразование случайных операций записи в последовательные добавления. Основной механизм Cassandra и RocksDB.
Согласованное хеширование: Использование хеш-пространственного кольца и виртуальных узлов для минимизации миграции данных при масштабировании кластеров.
HyperLogLog: Оценка мощности множества путем наблюдения за ведущими нулями. Подсчет 10^9 уникальных элементов в 12 КБ.
#структурыданных #информатика #технологии #ИИ #алгоритмы #кибербезопасность #развлечения #образование #хеширование #деревья #бинарноедерево #dsa #python #программирование #разработкапрограммногообеспечения