Фундаментальные кейсы: разбор по памяти
Свободный отзыв по фундаментальным кейсам. Реконструируй каждый дизайн по памяти — три блока KV-хранилища, путь чтения сокращателя, frontier и дедуп краулера, лог очереди — до раскрытия образца.
Отзыв бьёт перечитывание. Для каждого запроса реконструируй полный дизайн по памяти — компоненты, числа, компромисс — до того, как откроешь образец. Усилие пересборки архитектуры и есть то, что переносит паттерны на следующий кейс, который тебе выдадут.
Пересобери каждый дизайн без подглядывания: три идеи, что складывает Dynamo-подобное хранилище, почему сокращатель URL — задача чтения, что делают frontier и слои дедупа краулера, и как партиционированный лог доставляет порядок, надёжность и реплей.
- 01Реконструируй Dynamo-подобное KV-хранилище: центральный компромисс и три строительных блока.
- 02Почему сокращатель URL — задача чтения и как чеканить код?
- 03Реконструируй краулер: что делают frontier и два слоя дедупа.
- 04Реконструируй очередь сообщений: лог против ящика, партиции, ISR и семантика доставки.
Если ты смог пересобрать каждый дизайн по памяти, ты держишь стержень юнита: четыре кейса — те же ходы, переформованные. KV-хранилище выбирает доступность над согласованностью и складывает кольцо хеширования, кворум (R + W > N) и версионирование, с gossip и anti-entropy под ними. Сокращатель URL — задача ~100:1 на чтение, решаемая счётчиком/KGS для кодов и кешем для редиректа, с 302-против-301, меняющим аналитику на нагрузку. Краулер — двухступенчатый frontier (приоритет + вежливость) плюс два слоя дедупа (bloom filter для URL, хеш контента для байтов), сделанный непрерывным перекраулом по свежести и закалённый против ловушек. Очередь сообщений — партиционированный лог только на дозапись: партиции для параллелизма и порядка, ISR с acks=all для надёжности, время коммита оффсета для семантики доставки. Переносимый урок — что каждый новый запрос «спроектируй X» раскладывается на требования, оценку, выбирающую форму, несколько сложных компонентов и узкие места, что ты называешь до постройки.
Что-то непонятно?
Задай вопрос по этому уроку. Вопросы анонимны и попадают напрямую автору — урок станет лучше.