没有任何数据库的 Infinispan 持久性?

Posted

技术标签:

【中文标题】没有任何数据库的 Infinispan 持久性?【英文标题】:Infinispan persistence without any database? 【发布时间】:2013-02-10 08:54:43 【问题描述】:

作为 Infinispan 的新手,我正在探索同时使用 Infinispan 5.1.5 的选项 分布式缓存以及数据存储。

因此,我们的想法是不要有一个单独的数据存储,即。数据库,而不是仅使用“Infinispan Cache Stores”将应用程序数据持久化到磁盘文件中。

应用数据应包括但不限于事件、流程等历史数据。

我可以只使用 Infinispan 来实现数据持久性而不使用数据库吗? w.r. 是否有任何限制?到 Infinispan 上的数据量、检索、排序等?

任何输入都会有很大帮助吗?

【问题讨论】:

【参考方案1】:

您可以这样做,但要准备好管理序列化格式的更改。如果您自己的类定义发生更改(假设您存储 Java 对象),您要么必须定义知道如何处理类更改的自定义 *Externalizer*s,要么必须转储数据并在升级后恢复它。此外,如果您需要升级 Infinispan 本身,您可能需要转储数据并恢复或查看 rolling upgrades,目前需要 Hot Rod 客户端并至少使用 5.2 版。

它可以通过 Infinispan 查询 进行排序,但请记住您没有 Join 或类似操作:对某些问题非常有效,但对所有问题都无效。此外,Infinispan 查询 使查询方面非常强大,但在更新索引的写入操作上会降低性能:如果您可以重新考虑您的模型以使用 put/get 操作,它会更快地工作。

您可以查看 Hibernate OGM 在 Infinispan 中映射结构化实体,包括关系,仅使用 put/get 操作。这应该是最实用的接口,因为它使用众所周知的 JPA 映射,并且可以通过 Hibernate Search 使用查询(尽管与 Infinispan Query 的限制非常相似,因为它们使用基于相同的索引技术Lucene)。

【讨论】:

以上是关于没有任何数据库的 Infinispan 持久性?的主要内容,如果未能解决你的问题,请参考以下文章

Infinispan CacheEntryCreated 没有在重新平衡时触发 primaryOnly = true?

JBoss EAP 6.4 Infinispan 集群缓存网络问题

如何在 Wildfly 23 中浏览 Infinispan 缓存数据

缓存值对象的Infinispan限制

带有 Infinispan 目录提供程序的 Hibernate Search 6

细粒度与粗粒度域模型在内存数据网格中