2010-06-18 2 views
6

В настоящее время я разрабатываю систему, которая должна быть способна обрабатывать десятки тысяч записей в секунду. Я более или менее решил использовать Apache Cassandra для слоя persistence и будет использовать Java для прикладного уровня, но бывают ситуации, когда мне нужно быстро получить доступ к данным таким образом, чтобы в любое время получать какие-либо изменения.Какие варианты кэширования клиента хорошо работают с Cassandra и Java?

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

Чтобы обеспечить сохранение кэшированных данных, в идеале это будет поддерживать недействительность кэширования на основе многоадресной рассылки.

Какие у меня варианты?

+1

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

ответ

0

Я использовал ehcache, и он работал очень хорошо. Удобно настраивается вне приложения и поддерживает многоадресную недействительность (и сохранение на основе дисков, которое мне нужно больше, чем недействительность).

1

Я бы начал с изучения того, достаточно ли ключа ксерокопии (исключить сканирование индекса) и/или кеша строки (избегать поиска sstable).

подробная информация: http://wiki.apache.org/cassandra/API

+0

Эти кэшируются в клиенте? Можете ли вы дать мне ссылку на более подробную информацию об этом? – sanity

+1

это кеширование на стороне сервера – Schildmeijer