2010-06-18 46 views
6

我目前正在构建一个必须能够处理每秒数万次写入的系统。我或多或少地使用Apache Cassandra作为持久层,并将Java用于应用程序层,但在某些情况下,我需要快速访问数据,以便在几秒钟内完成任何更改。客户端缓存选项与Cassandra和Java可以很好地配合使用吗?

每次碰到卡桑德拉我需要检查这些数据的变化会太慢,这意味着我需要使用某种应用层缓存。

要确保缓存的数据保持最新,理想情况下它会支持某种基于多播的缓存失效。

我有什么选择?

+1

我不认为你应该假定打卡桑德拉这个数据将是太慢了。如果您访问的数据是新鲜或热门的,无论如何都会记忆在您的记忆中,您只需通过再次缓存来浪费更多的记忆。你应该试验和测试,而不是假设。 – 2010-06-20 18:21:27

回答

0

我已经使用ehcache,它的工作非常好。在应用程序外部进行了良好的配置,它支持多播失效(以及我所需要的比失效更多的基于磁盘的持久性)。

1

我会先研究cassandra键(避免索引扫描)和/或行缓存(避免sstable查找)是否足够。

的详细信息:http://wiki.apache.org/cassandra/API

+0

这些缓存在客户端?你能给我提供更详细的信息吗? – sanity 2010-06-18 14:36:43

+1

多数民众赞成纯服务器端缓存 – Schildmeijer 2010-06-18 22:50:08