Как и почему Netflix построила... Заметка

Как и почему Netflix построила распределенный граф в реальном времени: Часть 3 — Запросы к графу с помощью gRPC…

Netflix создала распределенный граф в реальном времени для предоставления аналитики в реальном времени своим внутренним партнерам, а третья часть этой серии статей посвящена эффективному запросу к графу. Граф представляет собой сложную сеть из миллиардов узлов и ребер, и для запроса к нему требуется быстрый и гибкий слой обслуживания. Авторы обсуждают проблемы запроса к графу, включая обработку широкого спектра шаблонов доступа и поддержку как "мелких-широких", так и "глубоких-узких" запросов. Они объясняют, как спроектировали слой обслуживания для эффективного запроса к графу, используя обход в ширину и асинхронную композицию для минимизации задержки. Авторы также обсуждают важность кэширования, опциональных обогащений и конечной согласованности при проектировании слоя запросов. Слой запросов состоит из трех уровней: Сервис запросов к графу, Слой абстракции хранения и Слой обогащения, которые работают вместе для эффективного выполнения запросов. Авторы подробно рассматривают пример запроса, чтобы продемонстрировать, как слой запросов работает на практике, подчеркивая важность чтения и интерпретации запроса, эффективного чтения из хранилища, выполнения обхода с уровнями обхода в ширину, параллельного выполнения многих операций, умной фильтрации и ускорения повторных запросов с помощью кэширования. Цель слоя запросов — завершать запросы менее чем за 100 мс, и авторы демонстрируют, как их дизайн достигает этой цели. Слой запросов разработан для обработки десятков тысяч запросов в секунду, каждый из которых потенциально отличается, и авторы обсуждают компромиссы, на которые они пошли при проектировании слоя запросов для достижения такого уровня производительности. В целом, авторы предоставляют подробный обзор проектирования и реализации слоя запросов, подчеркивая проблемы и компромиссы, связанные с созданием высокопроизводительного слоя запросов для крупномасштабного распределенного графа. Слой запросов является критически важным компонентом распределенного графа в реальном времени, а дизайн и реализация авторов позволили Netflix предоставлять аналитику в реальном времени своим внутренним партнерам.
CdXz5zHNQW_1lL53FS8TQ.png