2
  • 我正在尝试使用 Infinispan 缓存以仅本地缓存模式存储 java 对象。
  • 我想查询两个键以及一些字段。所以我正在使用 Infinispan 的查询/索引模块。
  • 索引字段的查找性能非常好。然而,与无索引相比,加载缓存中的所有项目需要大量时间。
  • 例如,对于大约 50k 个对象,使用 Infinispan 索引需要 10 分钟才能将项目加载到缓存中。没有索引,只需要 2 秒。
  • 我想知道索引后 Infinispan 是不是这么慢,或者我做错了什么。
Configuration infinispanConfiguration = new ConfigurationBuilder()
      .indexing()
         .enable()
         .indexLocalOnly(true)
      .build();

DefaultCacheManager cacheManager = new DefaultCacheManager(infinispanConfiguration)

;

    @Indexed @ProvidedId
    public class Book {
       @Field String title;
       @Field String description;
       @Field String author;
       @Field int yearOfPublication ;
       String briefDescription;
       int edition;
       boolean isBestSeller;
    }
4

2 回答 2

2

如您所知,当您使用索引模块时,Infinispan 使用 Hibernate Search 和 Apache Lucene。

根据您的配置,您正在使用 Lucene 索引的默认值。您可以指定许多选项来提高索引性能。

您可以参考以下内容了解更多信息

[1] https://docs.jboss.org/author/display/ISPN/Querying+Infinispan [2] http://docs.jboss.org/hibernate/stable/search/reference/en-US/html_single/# lucene 索引性能

于 2012-04-10T18:56:09.767 回答
0

我遇到过同样的问题。

插入 25000 本书(来自 Infinispan 用户指南)耗时 361 秒

ConfigurationBuilder config = new ConfigurationBuilder();
config.indexing().index(Index.LOCAL);

插入 25000 本书耗时 1.6 秒

ConfigurationBuilder config = new ConfigurationBuilder().indexing().setProperty("default.directory_provider", "ram").setProperty("default.indexmanager", "near-real-time");
config.indexing().index(Index.LOCAL);
于 2015-08-31T07:56:37.037 回答