通过消息传递使Terracotta L2缓存失效

时间:2012-11-21 14:42:18

标签: caching terracotta invalidation

我正在尝试使用ehcache评估Terracotta Disctributed Cache。我有以下查询。有20多个应用程序将使用TAS分布式缓存。据我所知,每个应用程序中都会有一个L1缓存,而群集中会有一个L2。群集缓存数据面向数据库,数据库将由我们无权访问的其他应用程序更新。所以我们只读这个DB。但是数据库更新需要流向缓存。

通过DB触发器的方式,更新的(仅键)存储在临时表中。在特定的时间间隔内,作业会监视此表并收集缓存中需要过期的密钥。这是一个单独的批处理作业。

从这里我需要帮助。如何通知TAS L2缓存过期/逐出这些密钥?兵马俑有哪些选择?此到期事件是否会从L2流向所有单个应用程序?什么是时滞?我不想将到期密钥发送到所有个人应用程序。这可以实现吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

也许我错过了一些东西,但我不确定你为什么要过期/逐出这些密钥而不是简单地调用cache.removeAll(keys)。此删除将自动传播到所有L1节点,这些节点在其本地缓存中具有这些条目。

时间延迟取决于分布式缓存的一致性设置。