Reputation: 35782
I'm currently architecting a system that must be capable of dealing with tens of thousands of writes per second. I am more-or-less settled on using Apache Cassandra for the persistence layer, and will be using Java for the application layer, but there are situations where I need to quickly access data in a way that picks up any changes within seconds.
Hitting Cassandra every single time I need to check this data for changes will be too slow, which means I need to use some kind of application layer caching.
To ensure that the cached data remains current, ideally it would support some kind of multicast-based cache invalidation.
What are my options?
Upvotes: 6
Views: 1249
Reputation: 20946
I would start by investigating if the cassandra key (avoid index scan) and/or row cache (avoid sstable lookup) is sufficient enough.
detailed information: http://wiki.apache.org/cassandra/API
Upvotes: 1
Reputation: 35341
I have used ehcache and it worked really nice. Nicely configurable outside the app and it supports multicast invalidation (and disk based persistence which I needed more than the invalidation).
Upvotes: 0