2013-05-09 96 views
0

集羣失效鍵值緩存僅通過網絡發送刪除命令。如果在一個節點上更改或刪除密鑰的值,則會將該密鑰的remove命令與其他節點一起發送,以便他們在下次需要時從持久存儲中獲取該數據(或重新計算該數據)。JCache API使用失效集羣緩存

我的問題是:它是如何基於javax.cache.Cache接口定義的?在那裏放置,putIfAbsent,替換......功能。

使用Infinispan-jcache當兩個不同的節點上存在相同的密鑰時,我無法採取行爲。我在他們的用戶論壇上提出了同樣的問題https://community.jboss.org/thread/228039但是我認爲這是一個更常見的問題,所有的JSR-107實現都受到影響。

我檢查了規範草案,但我找不到有關羣集和失效的任何信息。

回答

1

Infinispan的工作方式是正確的。無效意味着當一個節點接收到put/replace/putIfAbsent/remove調用時,它將向其他節點發送消息以刪除該條目。因此,當條目存儲在cache2中時,它將從cache1中刪除。它不驗證值是否相同。

JSR-107未指定緩存在集羣中的行爲方式。 JSR-107只專注於本地緩存。 Infinispan緩存,即使在JCache API下,對於無效,分佈式和複製緩存的行爲都是Infinispan特有的。

+0

我標記的答案是正確的,因爲它包含我真正需要的信息。不過,我將在https://community.jboss.org/thread/228039上提供有關無效緩存可用性的更多問題 – 2013-10-25 08:55:59

0

JCache標準現已終止。請參閱:https://jcp.org/en/jsr/detail?id=107

你可以找到的代碼:https://github.com/jsr107

如果你需要的JCache的實現,是唯一一個我所知道的是當今的Oracle Coherence的;請參閱:http://docs.oracle.com/middleware/1213/coherence/develop-applications/jcache_part.htm

爲了充分披露,我在Oracle工作。本文所表達的意見和觀點屬於我自己的觀點,並不一定反映我的僱主的意見或看法。