System Design - теория кэширования | Как кэшировать данные
ฝัง
- เผยแพร่เมื่อ 27 มิ.ย. 2024
- Курсы по программированию: clck.ru/37iG2b
Потренироваться проходить собеседования: it-interview.io
Присоединиться к моему сообществу: boosty.to/vladimir_balun
Консультации:
getmentor.dev/mentor/vladimir...
solvery.io/ru/mentor/vladimir...
Таймкоды:
00:00 - План занятия
01:03 - Что такое кэширование
03:18 - Основные термины кэширования
04:55 - Какие данные кэшировать
06:02 - Кэширование ошибок
07:13 - Как предотвратить cache miss attack
10:34 - Эффективность кэширования
12:56 - Внутреннее кэширование
14:41 - Внешнее кэширование
19:23 - Cache Aside
21:32 - Cache Through
23:16 - Cache Ahead
29:33 - Алгоритмы вытеснения данных из кэша
30:01 - Random алгоритм
30:23 - FIFO алгоритм
30:49 - LIFO алгоритм
31:16 - LRU алгоритм
32:06 - MRU алгоритм
32:29 - LFU алгоритм
37:11 - Алгоритм Белади (OPT)
38:13 - Second Chance алгоритм
39:56 - Clock алгоритм
40:40 - 2Q алгоритм
41:42 - SLRU алгоритм
42:49 - TLRU алгоритм
43:17 - LRU-k алгоритм
47:24 - Инвалидация данных в кэше
47:41 - Инвалидация по TTL
48:35 - Jitter
49:40 - Thundering herd problem
51:13 - Инвалидация по событию
52:41 - Версионирование кэша
56:11 - Тегирование кэша
1:03:37 - Многомерный кэш
1:05:46 - Курс по System Desing
VK: vladimir_balun_program...
Telegram: t.me/vladimir_balun_programming
Instagram: / vladimir_balun_program...
TH-cam: / @vladimir_balun_progra...
YandexZen: zen.yandex.ru/id/623b6c964da9...
RuTube: rutube.ru/channel/25079714/
Кэширование. Алгоритмы кэширование. Кэширование в программировании. Кэширование данных. Прогрев кэша. Холодный кэш. Когда использовать кэширование. Как написать кэш для базы данных.
#айти #программирование #программист #systemdesign
Используете ли вы в своих задачах кэширование, если да - то что именно вам приходит кэшировать?
это лучшее видео на ютубе про кэш!!! спасибо!
Спасибо! По работе с кэшированием мало работал. Поэтому было полезно и интересно хотя бы теорию послушать.
Не за что!
Кратко и информативно. Респект)
Спасибо!
Добрый день Влад, желаю приятного отпуска)
Ты в конце видео сказал что скинешь материалы, бесплатные ресурсы, где лучше подготовиться по систем дизайну.
Спасибо большое)
Спасибо! Ты лучший! ❤
Большое спасибо за видео! А будет ли такое же видео, но про брокеры сообщений? Было бы очень полезно
Подумаю на счет этого)
Безоговорочно лайк и подписка
Спасибо огромное за большой урок
Не за что!
всё верно!@@vladimir_balun_programming
Для Thundering Herd Problem. Еще можно так. Модуль кеша хранит два ключа - первый инвалидируется как нужно, например 30 sec, второй никогда или редко. Когда несколько процессов идут в кеш, а первого значения там уже нет, то только один начинает обновлять первый ключ, остальные получают второе значение. Когда первый закончит - он положит в кеш актуальное значение. Для примера со страницей Рональндо, какой-то небольшой процент не получит последние фото, но зато не за аффектит скорость работы сервисов.
Уууф, чувствую, что будет жарко! Еще не глянул, но уже понимаю, что это час сплошного кайфа. Благодарю! И давай больше систем десигна
Спасибо)
Благодарю за материал! Это был максимально полезный стрим (хоть и смотрю его в записи)!
У меня лишь небольшое замечание по поводу вычисления эффективности кеширования на 11-й минуте. Мне кажется тут берётся формула так, чтобы спустя N запросов к приложению, суммарное время отклика от приложения с кешированием было как можно меньше чем к такому же приложению без кеширования. Правильно ли я понял?
Например мы 10 раз ходим в приложение:
Приложение без кеширования это 10 * 100 = 1000 милисекунд (всегда идём в бд)
Приложение с кешированием (при CacheMissRate = 0,8) это 0,8 * 10 * 100 + 10 * 20 = 1000 милисекунд (800 мс на БД и всегда перед этим идём в кеш - 200 мс)
То есть при сравнении получается что при CacheMissRate = 0,8 ничего не меняется а при увеличении этого показателя, он будет не очень эфективен. Правильно ли я улавливаю мысль?
Spasibo Balun!
Поток - это сколько человек в группе? И второй вопрос. По уровням стандартный и ВИП. Домашки на ВИПе проверяются преподавателем, а на стандартном получается никто не проверяет?
Объясните, откуда берется формула об среднем времени доступа к данным через три переменные?
Имеется ввиду, что когда к кэшу обращаемся, мы уже потратили 20мс, не попали в кэш, пошли в базенку, ещё 100мс. Итого 120мс. Если таких запросов много, кэш вреден. И это еще не считая денег и времени на поддержку этого кэша
Имеется ввиду, что когда к кэшу обращаемся, мы уже потратили 20мс, не попали в кэш, пошли в базенку, ещё 100мс. Итого 120мс. Если таких запросов много, кэш вреден. И это еще не считая денег и времени на поддержку этого кэша
Подумал что про кэширование на процессоре.
Это пересказ статьи "[По полочкам] Кэширование" с хабра?)
Описано ли там много алгоритмов вытеснения данных (Second Chance, Clock, ...), Тегирование кэша, Версионирование кэша, Многомерный кэш и многое другое, что есть в видео? Я вижу, что нет
Если даже это пересказ статьи, то ничего плохого в этом нет. Автору спасибо
@@stepanmikhailiuk4571 В этом и правда ничего такого нет, если изначально об этом сказать и дать ссылку например на источник)
А так, Владимир поменял местами некоторые блоки из статьи. И у меня это вызвало больше вопросов чем ответов)
Ошибки в структурировании привели меня к первоисточнику. Где я получил все ответы на вопросы.
@@eugenefedoryachenko8793 Понял вас, спасибо за ответ. Тоже теперь прочту!
100 кэшхит / 10 кэшмис = 10% попадания по твоим словам
Ага, тоже обратил на это внимание. Правильно должно быть (cache hists) / ((cache hists) + (cache misses)). Тогда в данном случае получим 0.9 или 90%
Думаю у меня глюк или в видео дети кричат на заднем фоне
Не глюк, все норм. Ничего страшного в этом нет, что бывает что-то на фоне. Ты когда видос смотришь у тебя сейчас идеальная тишина?))
Когда глотаешь знания ничего не мешает, т.к. Автор видео красавчик!))
Слишком растянутая информация. Как стрим наверное нормально. Для видео лучше по 15 минут по конкретной теме
Отличное видео как всегда)Кстати у Криштиану Рональду 612 млн подписчиков)
Буду знать)