Comments 12
Но вы же при 2м RPS как раз получите +- тот самый 0.1% невалидных кэшей, если время время окна инвалидации в районе 200мс
Система стала сложнее и надёжнее. Два взаимоисключающих фактора в одном предложении
Мы как минимум перешли с Memcached на Valkey, благодаря чему у нас данные реплицированны. Это как раз про сложность которая дает надежность. Но в общем случае да, согласен чем проще тем надежнее. Но есть же история, что сначала риск принимается, так как он небольшой, а минимизировать его сложно, а потом делается какой-то механизм для снижения этого риска
Когда сделали "невелосипед" и он поехал, при чём очень даже хорошо.
В статье сделан сильный упор на инвалидацию. Как будто это последняя оставшаяся главная проблема в программировании. Можно также упомянуть про проблему когда кэш был инвалидирован, далее несколько параллельных ридеров пытаются обновить кэш Valkey параллельно апдейту записи в мастер системе. В этом случае в кэш можно записать старое значение и без новых обновлений оно уйдёт только после TTL. В этой ситуации у нас как будто есть гарантия от кафки что сообщение про инвалидацию мы не потеряем, но в итоге по факту апдейт данных мы потеряем.
Это реально большая проблема, но мы стараемся проектировать системы таким образом, чтобы событие из мастер системы уходило только после того как данные в ней реально обновились
Ну в ней то данные обновились допустим но у нас всё равно читатель мог прочитать старую версию и затупить. А потом её уже записать в кэш. В Memcached есть lease и это можно порешать с помощью т.н. fencing token'ов
Не является ли случаем эта машина по перекладыванию кэшей единой точкой отказа? Что-то думали в этом направлении?
Если вопрос про инвалидатор, то нет, так как если он сломается, то у нас все еще есть ttl, который мы можем если что быстро понизить его до того значения, которое было до инвалидатора. А если речь про фасад, то да, является, но тут намечается холивар на тему: что лучше единая надежная точка отказа, которой фултайм занимается команда профессионалов или 300 маленьких, которые делаются по остаточному принципу, а если учесть, что вполне вероятна ситуация, когда нужно доработать все 300, то скоуп любой задачи улетает в космос
Миссия выполнима: как мы добились актуальности двух тысяч кешей