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

Фундаментальные кейсы: разбор с выбором ответа

Multiple-choice синтез по фундаментальным кейсам: кворум KV-хранилища, отношение чтений/записей и статус редиректа сокращателя, frontier и дедуп краулера, порядок и семантика доставки очереди сообщений.

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

Шесть вопросов, режущих сквозь четыре кейса. Каждый — решение, что ты принимаешь у доски: какая настройка кворума, какая схема короткого кода, почему frontier двухступенчатый, какая семантика доставки — а не определение для зубрёжки.

Подтверди, что умеешь выбрать кворум, дающий read-your-write, прочесть отношение чтений/записей сокращателя и выбрать статус редиректа, объяснить, почему frontier краулера разделяет приоритет и вежливость, и назвать семантику доставки по тому, где коммитится оффсет.

Викторина

Dynamo-подобное хранилище на N=3. Клиент должен уметь прочитать обратно только что записанное значение, на строгом кворуме. Какая настройка R/W — минимальная, что это гарантирует?

Викторина

Твой сокращатель URL зарабатывает на аналитике кликов. Инженер переключает редиректы на 301, чтобы «срезать нагрузку сервера». Что ломается и какой статус верен?

Викторина

Краулер тянет URL строго по приоритету из одной очереди и продолжает делать DDoS отдельным сайтам. Почему и что чинит это?

Викторина

Нужно обработать события пользователя по порядку в Kafka-подобном логе с многими партициями. Что это гарантирует и в чём ловушка?

Викторина

Консьюмер коммитит оффсет ПОСЛЕ обработки каждого сообщения. Процесс падает после побочного эффекта, но до коммита. Что произойдёт при перезапуске?

Викторина

Точное множество виденных URL краулера потребовало бы ~1 ТБ RAM. Ты ставишь bloom filter. Какое утверждение верно?

Вспомните перед уходом
  1. 01
    Какой кворум даёт read-your-write при N=3 и почему?
  2. 02
    Почему frontier краулера двухступенчатый и что at-least-once навязывает консьюмеру?
Итог

Стержень сквозь четыре кейса в том, что каждый — те же несколько ходов, применённые к новой форме. KV-хранилище — решение о кворуме: R + W > N (например W=2,R=2 при N=3) гарантирует пересечение чтения с последней записью. Сокращатель URL — чтение отношения чтений/записей: ~100:1 значит, что путь редиректа — это всё, а статус 301-против-302 меняет нагрузку на аналитику/контроль (302, когда клики — продукт). Краулер — двухступенчатый frontier (приоритет спереди, вежливость по одному-хосту-на-заднюю-очередь сзади) плюс bloom filter (без ложно-отрицательных, с настраиваемыми ложно-положительными) и хеш контента для дублей, которые URL не ловят. Очередь сообщенийпартиционированный лог: стабильный ключ партиции держит события пользователя упорядоченными (порядок лишь на партицию), а время коммита оффсета задаёт семантику доставки — коммит после обработки это at-least-once, так что консьюмеры обязаны быть идемпотентными. Узнай ход — и дизайн напишется сам.

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

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

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

Trademarks belong to their respective owners. Editorial reference only.