Перейти к содержимому

Причудливые структуры данных, о которых должен знать каждый разработчик

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 #программирование #разработкапрограммногообеспечения