open atlas
↑ К треку
Разборы System Design SDC · 04 · 06

Локация и реальное время: обзор со свободным припоминанием

Промпты на свободное припоминание по кейсам локации и реального времени. Отвечай по памяти первым — выбор индекса, фикс границы, слой фанаута, предобработка маршрутизации, структура ранга — затем открой образец и сравни.

SDC Senior ◷ 14 min
Уровень
ОсновыJuniorMiddleSenior

Припоминание бьёт перечитывание. Для каждого промпта восстанови полный ответ по памяти — механизм, не только название — прежде чем открыть образец. Усилие пересборки пространственного индекса, фанаута по региону и отсортированного множества — то, что заставляет их закрепиться.

Восстанови каждый кейс по памяти, не подглядывая: как индексировать пространство и увернуться от ловушки границы, почему «друзья рядом» write-heavy и как pub/sub по региону ограничивает фанаут, почему наивный Dijkstra проваливается и что чинит, и структура, делающая обновление, top-k и ранг дешёвыми разом.

Вспомните перед уходом
  1. 01
    Сравните geohash, quadtree и S2/H3, и объясните проблему границы ячейки и её фикс.
  2. 02
    Почему «друзья рядом» write-heavy, и как WebSocket и pub/sub по региону заставляют это работать?
  3. 03
    Почему наивный Dijkstra проваливается на маршрутизации Maps, и как contraction hierarchies и живой трафик сочетаются?
  4. 04
    Почему отсортированное множество — верная структура для лидерборда, и как работают top-k, мой-ранг, ничьи и шардинг?
  5. 05
    Какое единое озарение связывает все четыре кейса, и где каждый расходится?
Итог

Если смог пересобрать каждый ответ по памяти, держишь спину юнита. Близость индексирует пространство (geohash/quadtree/S2-H3) и запрашивает ячейку плюс соседей как грубый фильтр, ранжируя уцелевших по точному расстоянию и кэшируя по ячейке. «Друзья рядом» инвертируют это в поток записи эфемерных пингов, толкаемых по WebSocket из TTL-хранилища и маршрутизируемых через pub/sub по региону с фильтром друг-и-радиус на краю-подписчике. Maps определяется предвычислением — пирамида тайлов на CDN и маршрутизация через contraction hierarchies — с живым трафиком как отдельным оверлеем весов, чтобы он не вынуждал пересжатие. Лидерборд использует отсортированное множество, делая обновление, top-k и ранг-одного все O(log n), где SQL делает ранг счётом O(n), и шардит по диапазону очков с глобальным рангом из по-шардовых счётчиков. Объединяющая идея: каждая схема следует паттерну доступа и превращает «сравни со всем» в «трогай лишь осколок».

Что-то непонятно?

Задай вопрос по этому уроку. Вопросы анонимны и попадают напрямую автору — урок станет лучше.

хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.