问题标签 [infinispan]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
caching - Infinispan+kyro/Google Protocol Buffers 实现更多空间和时间效率的序列化?
如果我理解正确的话,Infinispan/JBoss Cache 使用 Java 自己的序列化机制,它可能会很慢并且占用相对更多的存储空间。我一直在寻找可以实现以下目标的替代方案:
- 自动缓存管理,换句话说,使用更频繁的对象会自动加载到内存中
- 更有效的序列化(可能是对象 --> 紧凑的二进制存储)。主要目标是在不牺牲太多性能的情况下减少磁盘/内存空间消耗
是否有实现两者的框架或库?
hibernate - SQL 异常导致 Hibernate 二级缓存以 Infinispan 作为提供者的数据过时
我们在基于 JPA(Hibernate)的应用程序中使用 Infinispan(使用 JGroups 集群)作为我们的二级缓存。当数据库操作失败时,我们会看到二级缓存是陈旧的。例如:
1) 尝试使用登录名“joe”创建用户。2) 调用persist(user);3) 由于数据库唯一性约束,持久化失败。4) 在 login=joe 上按 id 查找(假设 login 是 PK)。5) Hibernate 从 Infinispan 缓存返回 joe 用户,即使数据库没有它。
在这种情况下,配置 XA 事务并让 Infinispan 参与 XA 似乎有点矫枉过正。XA 是解决这个问题的唯一方法吗?
java - 使用 Infinispan 在同一过程中进行隔离
我正在围绕 Infinispan 缓存和 Atomikos 事务管理器构建应用程序。我发现事务隔离不适用于在同一 JVM 上的两个不同线程中打开的事务。
使用以下代码实例化缓存:
Withthis.tmLookup
是org.infinispan.transaction.lookup.TransactionManagerLookup
返回配置 Atomikos 事务管理器的简单实现。
我通过使用单个值填充缓存来设置一个小测试,然后在两个线程中启动一个读取器和一个写入器,每个线程都在一个单独的事务中。基本上,写入器将获取存储在缓存中的值,更改值并将其保存到缓存中。另一方面,使用 get 读取并在不同阶段显示值:在 writer 执行任何更改之前,在 writer 更改 pojo 之后,在 writer 保存更新的 pojo 之后,最后在 writer 事务提交之后.
编写器代码是:
阅读器代码为:
为了跟踪缓存返回的实体,我这样实现了 Pojo toString()
:
由于缓存被配置为隔离,我希望在读取器和写入器之间有不同的 pojo 实例,并且只有在写入器的事务提交后才能看到更改。
但是我得到了以下输出:
所以基本上,缓存就像一个哈希图一样执行,因为它为两个线程返回相同的 pojo 实例。
问题是:我是否错过了配置或预期行为中的某些内容?
我很确定事务管理器正在工作,因为我可以从 Atomikos 获取日志消息,指示读取器和写入器上不同事务的开始。
但是,我使用 Ehcache 而不是 Infinispan 尝试了相同的测试,得到了预期的结果。比较两个测试之间的日志,我发现了类似的消息,唯一明显的区别是 Infinispan 没有事务 ID:
对比
java - Infinispan as Hibernate 2LC: NamedCacheNotFoundException
I currently use JBossCache 3.2 as a Hibernate 2nd level cache for clustered caching of entities in a EJB3 environment (GlassFish 2) which runs fine. Now I'm evaluating using Infinispan 4.2.1 instead and to my surprise I get NamedCacheNotFoundException
s.
I use annotations at entity level like
and the exeptions are like
Looking via jmx I can see a corresponding MBean but it's CacheName
is like myRegion(invalidation_sync)
. The suffix (invalidation_sync)
seems to be added by Infinispan.
Is this the root cause of my problem? How to come around it? My Infinispan config is largely the one that comes with hibernate-infinsipan but with jmx enabled.
spring - Atomikos + Infinispan + Jetty 错误
我在码头上使用带有休眠、atomikos 和 infinispan 的 Spring。将任何实体注释为 @Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL) 后出现以下错误
似乎问题在于 atomikos 和 infinispan 之间。我的配置基于文档示例。但是在https://docs.jboss.org/author/display/ISPN/Implementing+standalone+JPA+JTA+Hibernate+application+outside+J2EE+server+using+Infinispan+2nd+level+cache他们说要添加 2要配置的属性,但hibernate.jndi.class
我可以在码头下设置什么?
lucene - Katta vs Lucene + Infinispan
Lucene 可以使用受干扰的 infinispan 缓存。我想知道基于 hadoop 从 lucene + infinispan 迁移到 Katta 的时刻是什么时候?什么时候我会更有效地使用 Katta,什么时候使用 Lucene+infinispan?我读过 hadoop 不适合实时系统,但是 Katta 呢?
java - Infinispan MVCC 与“put”
我今天想在某种可能不熟悉的事情上使用 Infinispan。我想保存一个变量,让我们在缓存中多次调用它 - 同时能够将它作为 X 寻址。
普通的,旧的 MVCC。但是,似乎 infinispan 在后端使用了 MVCC——但我无法在我的小测试应用程序中使用它。
这是对应的代码:
果然, acTest 包含密钥 - 但我无法处理该密钥的值“blubber” - 当我提高“nothing”的数值时 foo 持有“nothing”......但我想获得第一个版本“foo” - 因此是“鲸脂”
我希望能够解决不同版本的test。我认为我可以在put操作中使用不同的参数创建不同版本的“测试” - 但是 eclipse 绝对没有关于这件事的文档......
有人可以帮我吗?
infinispan - 注释 JCacheResult 在 Infinispan 和 Glassfish 3.1.1 中不起作用
我正在尝试将来自 Infinispan 的 JCache 集成到我现有的 EJB 项目中。
我已将 Infinispan 5.0.1 CDI 和 Core 包添加到 Maven pom。在 beans.xml 中添加了 Infinispan 拦截器,并且能够使用 CacheResult 注释。
我正在 Glassfish 3.1.1 中部署该应用程序。我检查了 Weld jar 版本,即 Module : org.jboss.weld.osgi-bundle:1.1.1.Final
在运行时,CacheResult 方法拦截器不会缓存方法结果,它总是被调用。
我的代码看起来像这样,
greet() 方法被调用,但它永远不会将方法结果添加到测试缓存中。我觉得我错过了一些配置还是......我不知道。请帮助我。
当我注入类时,它们不会被构造并且它们是空的。代码是这样的,
这些会在没有任何错误的情况下执行,但不会被初始化。
我不知道......但我可以很容易地在这个类中注入其他 EJB。顺便说一句,我正在尝试在其中一个 EJB 中添加 Jcache 功能。
我会很感激你的帮助...
谢谢...拉吉小号
hibernate-search - Infinispan 中的复制超时
我正在使用一个用作 Hibernate Search 后端的 10 节点 Infinispan 集群。我们的服务器在 Java 1.6_24 上运行 TC server 2.5 (tomcat 6.0.32)。我们使用 jGroups 2.12.1.3 来处理来自每个节点的集群缓存写入,以及多播 UDP 传输。
当我们在集群中启动 3 个以上的节点时,最终其中一个节点开始记录复制超时。无论我们将 Infinispan 配置为复制还是分发缓存模式,我们都观察到了相同的结果。尽管集群的其余部分保持稳定,但故障节点基本上无法进行搜索。
我们的配置:
英菲尼斯潘:
jGroups(UDP):
我们观察到的错误:
因为无论我们的拓扑或缓存模式如何,这个错误都非常普遍,我们相信我们一定是在某个地方配置错误。任何人都可以推荐一个修复?
hibernate - Glassfish with infinispan second level caching
I want to use Infinispan with hibernate second level cache. My application is running in a glassfish 3 application server and I use hibernate JPA. The hibernate library already contains infinispan so I didn't added to my project. I use jta transaction. To do that I modify my persistence.xml:
When I redeploy the application I get the following exception:
Should I try to add the infinispan library to the project?
I tried to set:
but didn't worked.
Thanks in advance.