2015-08-19 1 views
0

Наше приложение генерирует короткоживущую строку, около десятка символов, которая, как предполагается, будет потребляться нашими клиентами позже только один раз. После потребления он ушел. Или он становится недействительным за 10 минут без потребления. Хранение этой строки должно быть глобальным, поскольку запросы, потребляющие строку, не имеют состояния.Лучшее место для хранения временной строки?

Мы уже использовали глобальный кеш для хранения этой строки. Он работает отлично функционально. Однако он не подходит семантически. Раньше были случаи, когда сервер кеша отключен, наше приложение не может работать правильно. Мы ищем альтернативы глобальному кешу для хранения этой короткой временной строки. это должно быть

global 
fast write 
fast read 
fast delete 
supports timeout 

Обновление не является проблемой. NoSQL звучит лучше, чем RDBMS, но я не совсем уверен. Любые рекомендации/предложения/подсказки глубоко оценили

ответ

0

Для Кассандры:

высокая доступность - да

глобальный - да

быстро написать - да

быстро читать - да

быстрое удаление - да, но остерегайтесь создания надгробных камней. Если вы ищете глобальную очередь, то это анти-шаблон в Кассандре. Если вы просто хотите, чтобы каждый клиент получал последнюю строку (то есть перезаписывал последнее значение при вставке), тогда все будет в порядке.

поддерживает таймаут - да, если вы говорите о данных. Когда данные вставляются, Cassandra может установить TTL (Time To Live). Но опять же, остерегайтесь создания надгробных камней.

+0

Привет, Джим, благодарю вас за ответ. Нет очереди, она похожа на карту, если для одной и той же пары клиент-пользователь создается новая строка, предыдущая должна быть перезаписана. Что касается чтения/записи, считаете ли вы, что производительность cassandra сопоставима или лучше, чем MySQL? Просто хочу быть уверенным – gigi2

+0

Фактически Если для одной и той же пары клиент-пользователь создаются несколько строк, в зависимости от того, какой из них потребляется, другие просто естественно тайм-аут. – gigi2

+0

Я бы предположил, что Cassandra выполняет также или лучше, чем MySQL, но все зависит от того, как настроены настройки, используемое оборудование и т. Д. Когда вы говорите, что строка «потребляется», это означает, что очередь. Если это не очередь, вы просто скажете «читать», так как вы читаете значение определенного ключа, не удаляя это значение. –