Pull to refresh

Comments 8

Верно ли я понял, что сейчас у вас на каждом поде полная inmemory копия всей базы данных?

Какого размера сейчас эти кеши (например, в Мб) и что вы планируете делать, когда данные перестанут помещаться в память одного пода?

Я понял, что ответ на первый вопрос - да, все данные умещаются на одной реплике в памяти.

Если не будет хватать, то вижу единственный вариант при такой архитектуре - шардирование reader-ов. И новый компонент gateway на входе трафика.

Есть ещё варианты?

В статье речь о том, что вертикальное масштабирование - не выход, но предложенное решение принципиально не отличается от репликации того же редиса, который был забракован.

Интересное начинается когда нужно шардировать данные и в рантайме добавлять новые шарды, не увеличивая РТ сервиса и выдерживая slo по времени и гарантиям доставки обновлений в базу. Про тонкости практической реализации этой механики я бы почитал с удовольствием.

это больше 10% прироста на 99 перцентиле


...Представьте, что вы бьёте по базе данных или даже по инстансу Redis с частотой 1 миллион запросов в секунду (10^6 Req/s). Без серьёзных вложений это нежизнеспособно... традиционное вертикальное масштабирование (наращивание мощностей DB/Redis серверов) очень быстро превращается в крайне дорогую затею...

Очень странно про "традиционное вертикальное масштабирование" относительно redis, когда у него есть для read-нагрузки репликация, а для r/w кластерный режим. Да, один инстанс редис 1 MRPC на чтение не вывезет (https://habr.com/ru/articles/849264/) - поставь пяток (а не 20) RO реплик и проблема решена "из коробки".

А что за данные такие, которые не надо например чем-то обогащать. Это какой-то внутренний микросервис?

Sign up to leave a comment.

Articles