【问题标题】:Infinispan many-to-one cache using pool of objects rather than creating new ones?Infinispan 使用对象池而不是创建新对象的多对一缓存?
【发布时间】:2019-09-04 20:59:56
【问题描述】:

我有一个用例,我经常收到一些需要使用 Infinispan 缓存的数据(在库模式/进程中的复制集群中),其中数据通常非常相似,但不同键的数量要大得多而不是可能的不同关联数据的数量。

我担心不必要地创建/复制的数据对象的数量,这些数据对象在不同的​​键下大多是相互重复的。

我唯一的选择是将缓存分成两部分吗?例如

key -> data hash -> data

我唯一的问题是key -> data hash 可能会在data has -> data 缓存之前复制到集群的其余部分。我需要 data 在复制 key 时出现(当我处理该事件时)。

或者是否有任何其他可用选项,例如拦截缓存插入以使用这些数据对象的池?

【问题讨论】:

    标签: caching replication infinispan


    【解决方案1】:

    没有可以让您对数据进行重复数据删除的功能,所以是的,您需要将其分成两个缓存。你可以写your own interceptor,但有狮子。您会遍历所有本地条目以找到匹配项吗?

    如果您将非事务缓存与同步复制一起使用,您可以先更新dataId -> data 缓存,然后再更新key -> dataId。到第二个操作被调用时,第一个写入被复制到所有节点。

    【讨论】:

      猜你喜欢
      • 2012-04-24
      • 2017-04-12
      • 2020-09-27
      • 2017-04-23
      • 2015-07-26
      • 2019-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多