Size: a a a

Архитектура ИТ-решений

2020 October 19

AL

Alexander Luchkov in Архитектура ИТ-решений
В общем мне примерно понятно, где можно такие штуки применять, но от меня пока далековато)
источник

AT

Al T in Архитектура ИТ-решений
кешем мы боролись с тем чтобы бэк не падал если писать туда и туда синхронно, то будет консистентно но никому не нужно
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Alexander Luchkov
Эмм, но если решение занимает время, то мы получим то, против чего боролись кэшем. То есть в кэше и в бэке в некоторых случаях будут разные данные.

Ну и конечно нарушается принцип единого интерфейса доступа к одним и тем же данным.
Во-первых, надо смотреть на кейсы. Кэш нужен не всегда

Во-вторых, единый интерфейс нужен только к модели на запись. Моделей на чтение может быть несколько. Разным клиентам нужны разные срезы модели под разные сценарии запросов
источник

AL

Alexander Luchkov in Архитектура ИТ-решений
Gennadiy Kruglov
Во-первых, надо смотреть на кейсы. Кэш нужен не всегда

Во-вторых, единый интерфейс нужен только к модели на запись. Моделей на чтение может быть несколько. Разным клиентам нужны разные срезы модели под разные сценарии запросов
Я это к тому, что один и тот же запрос в одно и то же время к двум эндпоинтам  может дать разные результаты.
источник

AL

Alexander Luchkov in Архитектура ИТ-решений
Из кэша вытащить одно, из бэка другое. Но ты прав, это инженерная задача.
источник

N

Nikolay in Архитектура ИТ-решений
Это понятие консистентности.
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Alexander Luchkov
Из кэша вытащить одно, из бэка другое. Но ты прав, это инженерная задача.
Что такое бэк?)
источник

AL

Alexander Luchkov in Архитектура ИТ-решений
Gennadiy Kruglov
Что такое бэк?)
Условное хранилище данных.
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Alexander Luchkov
Условное хранилище данных.
Посмори CQRS, у репозитария (хранилища) много представлений. Кэш - это часто, одно из представлений на чтение (модель на чтение)
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Alexander Luchkov
Я это к тому, что один и тот же запрос в одно и то же время к двум эндпоинтам  может дать разные результаты.
Может, но с этим можно работать. У Клепмана много и подробно по это, например.
источник

AL

Alexander Luchkov in Архитектура ИТ-решений
Gennadiy Kruglov
Посмори CQRS, у репозитария (хранилища) много представлений. Кэш - это часто, одно из представлений на чтение (модель на чтение)
Вот и я за "кэш на чтение", со стороны пользовательского приложения.
источник

AL

Alexander Luchkov in Архитектура ИТ-решений
И да, я признаю, что можно и по другому.
источник
2020 October 20

PD

Phil Delgyado in Архитектура ИТ-решений
Alexander Luchkov
Вот и я за "кэш на чтение", со стороны пользовательского приложения.
А тут нет разницы между кешами и разными хранилищами. Вот у меня поток данных по пользователям. Я их складываю в oltp хранилище, в аналитическую БД (с обогащениями), в эластик (кусочки) для полнотекста. С какой-то точки зрения и аналитическая БД и эластик - это кеши (нужны для ускорения специфических операций). Могу и в какой-то редис ещё добавить.
Разве что не синхронно, конечно, добавляю.
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Phil Delgyado
А тут нет разницы между кешами и разными хранилищами. Вот у меня поток данных по пользователям. Я их складываю в oltp хранилище, в аналитическую БД (с обогащениями), в эластик (кусочки) для полнотекста. С какой-то точки зрения и аналитическая БД и эластик - это кеши (нужны для ускорения специфических операций). Могу и в какой-то редис ещё добавить.
Разве что не синхронно, конечно, добавляю.
Ну правильно, это разные модели чтения
источник

LV

Leonid Vygovskiy in Архитектура ИТ-решений
Sergey Bezrukov
Полностью разделяю данную точку зрения.  
Если вы используете экспериментальные или просто редко используемые другими функции продукта - всегда есть риск того, что они либо не работают как надо, либо не тянут нагрузку.  Поэтому и интересно услышать в каких конкретно кейсах не удалось применить Ignite - что примерно пытались сделать. Мы же тут вроде собрались для обмена премудростями?  Про историю с "золотой записью клиента" в Сбере я немного слышал, как по мне - это чистой воды авантюризм.
Про кейс, в котором не удалось применить, например, hazelcast, я рассказал - достаточно высокая нагрузка на запись, распределённый кэш.  Симптомы: блокировки, таймауты, повисшие треды, как результат - остановка приложений PoC под нагрузочными тестами. Тюнинг параметров хазелкаста и jvm результатов не дал, исследование исходников хазелкаста с целью обнаружения проблем в задачи не входило. Было это довольно давно, надеюсь с тех пор там всё починили. Ignite с той же нагрузкой справился без проблем.
Достаточна высокое - можете поделиться конкретными цифрами?
источник

LV

Leonid Vygovskiy in Архитектура ИТ-решений
Phil Delgyado
А тут нет разницы между кешами и разными хранилищами. Вот у меня поток данных по пользователям. Я их складываю в oltp хранилище, в аналитическую БД (с обогащениями), в эластик (кусочки) для полнотекста. С какой-то точки зрения и аналитическая БД и эластик - это кеши (нужны для ускорения специфических операций). Могу и в какой-то редис ещё добавить.
Разве что не синхронно, конечно, добавляю.
И все таки я бы это кэшами не назвал. Тут очень большая натяжка
источник

PD

Phil Delgyado in Архитектура ИТ-решений
А какая разница? Это разные хранилища, для которых нужно решать задачу корректности данных.
источник

LV

Leonid Vygovskiy in Архитектура ИТ-решений
Назначение. Кэш для меня замещение хранилища в кейсах самого хранилища или проще. В идеале кэш стоит между клиентом и хранилищем.
источник

SB

Sergey Bezrukov in Архитектура ИТ-решений
Leonid Vygovskiy
Достаточна высокое - можете поделиться конкретными цифрами?
Тысячи в секунду - стабильная нагрузка часами (не кратковременный пик), часть нагрузки - апдейты.
источник

LV

Leonid Vygovskiy in Архитектура ИТ-решений
Спасибо! А какой размер записи?
источник