首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >了解Infinispan的完整架构?

了解Infinispan的完整架构?
EN

Stack Overflow用户
提问于 2022-02-06 10:42:01
回答 1查看 102关注 0票数 0

我正在使用一个客户端启动一个项目,其中一个中心部分是大型数据集的高性能缓存。目前,我正在研究各种开放源码软件项目,Infinispan看起来非常有趣。然而,我还没有找到一个良好的“体系结构”级别的概述,哪些缓存配置是可能的等等。我们的要求基本上是:

  1. 能够创建本地(库)堆(Java) L1缓存、堆外缓存或可能的持久化L2缓存,并可能创建分布式L3缓存。
  2. L1和L2缓存需要是“排他的”,即L1的条目不应该也存在于L2缓存中,因为这将花费太多的内存。
  3. L1缓存最好使用最新和最有效的驱逐算法之一(在我看来,TinyFLU是一个很好的候选算法)。

有人能提供一些指南,说明是否/如何用Infinispan归档这些东西,以及我在哪里可以阅读到如何创建一个多层组合库+分布式设置(是手动的资源,还是我也可以使用的其他更多的“体系结构”级资源)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-08 09:45:01

分布式缓存可能与大多数需求(分布式缓存文档)匹配。

在分布式缓存中,数据被分区并存储在不同的节点中。读取时,如果节点是该键的所有者,则从本地内存(堆上或堆外)读取,否则它将对该键的所有者执行RPC操作。(因此,您的L3缓存)。

关于L2需求,它可以通过启用钝化的持久性存储(持久化存储文档)来实现。钝化将确保您的数据驻留在内存或磁盘中。只有当驱逐策略从内存(驱逐文件)中删除数据时,数据才会存储在磁盘中。

L1需求可以通过启用L1缓存((用于分布式缓存文档的L1缓存) )来部分实现。从远程节点读取数据时,数据存储在本地内存中。这个L1数据永远不会进入持久性存储,当驱逐需要释放一些空间或者数据由本地或远程节点更新时,它就会被删除。

另一种选择是复制缓存(复制缓存文档)。复制缓存在所有节点中保留完整数据集的副本。通过驱逐和持久性存储,它确保您的读取将在内存或磁盘中找到数据,并且不需要RPC来获取数据。缺点是写操作,它必须同步所有节点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71006344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档