Согласованность данных для распределенного кэша NoSQL + в очень параллельной среде
На слайде вы можете увидеть очень грубую архитектуру системы бронирования. Это очень параллельная среда, в которой сразу несколько пользователей могут попытаться забронировать один и тот же отель / номер.
Внизу у нас есть база данных NoSQL, для быстрого ответа / запроса есть распределенный кеш и приложение, которое запрашивает данные.
Идея этого слайда заключается в том, что когда вы используете NoSQL + Distributed Cache, у вас возникают проблемы с синхронизацией, что означает проблемы согласованности данных. Вам необходимо синхронизировать распределенный кеш с NoSQL db.
Вопрос: Какие решения / методики уже существуют для такого случая, кроме IMDG? Это могут быть как основы, так и / или лучшие практики. Существуют ли конкретные распределенные кэши, которые решают эту проблему?
Вопрос2[обновлено]: По каким причинам мы пишем в базу данных NoSQL вместо кэша? Это транзакции, возможность отказа узла или что-то еще?
PS Это не мой слайд, и автор заявил, что это отличный пример использования IMDG.
1 ответ
Вам действительно нужен распределенный кеш? Решения NoSQL по своей природе очень производительны, приближаясь к производительности автономных кэшей (таких как memcached).
Я могу получить ~10 мс времени доступа из Кассандры, что не намного медленнее, чем у большинства кешей.
Держу пари, что к тому времени, когда вы добавите накладные расходы на проверку кэша и сетевые накладные расходы на пропущенные попадания в кеш, вам будет лучше перейти прямо к своей базе данных.
Вы все еще можете использовать кеши для вещей, которые являются менее переходными, таких как типы номеров, цены и т. Д.