Torquebox Infinispan Cache - 打开的文件过多

时间:2014-03-16 22:32:30

标签: ruby caching jboss7.x infinispan torquebox

我环顾四周,显然Infinispan对将数据保存到FileStore时可以存储的密钥数量有限制。我得到“太多打开文件”的例外。

我喜欢使用torquebox的想法,并且急于减少堆栈,只使用Infinispan而不是Redis。我有一个需要缓存分配数据的应用程序。这些查询的计算成本很高,需要每天重新计算(电话和其他生产力指标由呼叫中心的代理商提供)。

虽然我知道如果我至少运行了一个应用程序,缓存仍会存在,我不会运行群集。我宁愿保留缓存。有没有人遇到这个问题并有解决方法?

2 个答案:

答案 0 :(得分:0)

我也在实时应用程序中使用infinispan缓存。

基本上我们将数据库查询及其结果存储在缓存中,用于表格数据大小不大且数据量较小的表格。

设计它有两种方法:

  • 将查询用作关键字,将数据用作值

    当放入如此多的不同查询时,它会导致缓存中的条目过多。

  • 使用xyz作为键,Map作为值(Map包含查询作为键及其数据作为值)

    只要使用密钥Map首先检索xyz,然后在Map本身找到查询,就会导致在缓存中单个条目进入缓存(我称之为查询缓存)

我们正在使用第二种方法。

答案 1 :(得分:0)

是的,Infinispan的FileCacheStore曾经有过打开太多文件的问题。 5.3.x中新的SingleFileStore解决了这个问题,但看起来Torquebox仍然使用Infinispan 5.1.x(https://github.com/torquebox/torquebox/blob/master/pom.xml#L277)。