Java Teracotta和Hibernate搜索

Java Teracotta和Hibernate搜索,java,jakarta-ee,lucene,hibernate-search,terracotta,Java,Jakarta Ee,Lucene,Hibernate Search,Terracotta,有没有人有使用Terracotta和Hibernate搜索来满足应用程序查询的经验 如果是: “物体”的大小是多少 更新“它能处理吗?)天气怎么样 (表演) 你喜欢什么样的表演 你有什么疑问 可以用赤土吗 休眠搜索,甚至没有 支持数据库以满足所有 内存中的“查询” 我是Terracotta的CTO。上个月我花了一些时间研究Hibernate搜索。它的建造方式并不是通过赤陶透明地聚集在一起。简而言之,原因如下:Hibernate有一个跨JVM定制的Lucene索引JMS复制 搜索的基本思想是,在l

有没有人有使用Terracotta和Hibernate搜索来满足应用程序查询的经验

如果是:

  • “物体”的大小是多少 更新“它能处理吗?)天气怎么样 (表演)

  • 你喜欢什么样的表演 你有什么疑问

  • 可以用赤土吗 休眠搜索,甚至没有 支持数据库以满足所有 内存中的“查询”

  • 我是Terracotta的CTO。上个月我花了一些时间研究Hibernate搜索。它的建造方式并不是通过赤陶透明地聚集在一起。简而言之,原因如下:Hibernate有一个跨JVM定制的Lucene索引JMS复制

    搜索的基本思想是,在lucene下与本地磁盘进行对话非常有效,而在整个网络中对lucene索引进行分段或分区会带来太多的延迟,以至于在根本不是lucene的错的情况下,lucene看起来很糟糕。为此,HIbernate Search不依赖于JBossCache或任何内存分区/缓存方案,而是依赖于JMS和每个JVM的本地磁盘,以便在集群中同时提供低延迟的最新索引。然后,Hibernate搜索的美妙之处在于,可以通过Hibernate在每台机器的这些自然语言索引中启动标准的Hibernate查询和更多查询

    在Terracotta,我们的想法与Emmanuel相似,并在Compass上构建了一个可搜索地图产品。每台机器都有自己的指南针存储,存储配置为本地溢出到磁盘。Terracotta用于创建多主机写入功能,其中任何JVM都可以添加到索引中,增量通过Terracotta发送,以便本地重播/重新应用到每个磁盘。它的工作原理与Hibernate搜索类似,但使用DSO作为网络协议,而不是JMS和w/o漂亮的Hibernate接口,而是使用Compass接口

    我认为我们将在年底前支持Hibernate搜索,并从JBoss获得帮助(他们需要考虑将JMS impl作为可插拔的)

    现在直接回答您的问题:

    1.Hibernate或SearchableMap中的对象更新/秒应该相当高,因为两者都只发送增量。在Hibernate的例子中,它是我们的JMS提供程序的一个功能。在Terracotta中,只需将更多Terracotta服务器添加到阵列中,即可实现扩展

  • 两者的查询性能都非常快。在大多数情况下,本地内存性能良好。而且,如果您需要从磁盘进行分页,大多数操作系统都做得很好,响应查询的速度比任何基于网络的集群都快

  • 我认为,一旦我们让JBoss考虑到他们的JMS假设,等等

  • 干杯


    --Ari

    自从Hibernate论坛上的人们不断提到这篇文章以来,我觉得有必要指出,虽然Ari的评论在2009年初是正确的,但我们一直在发展和改进

    Hibernate Search提供了一组现成的后端通道,如前面提到的基于JMS的通道和最近使用JGroups添加的通道,但我们也使插入替代实现或覆盖某些实现变得非常容易

    除了使用自定义后端之外,从版本4开始,现在可以替换整个策略,而不是更改后端实现,只有您可以使用IndexManager,它遵循不同的设计,并且根本不使用后端;目前我们只有两个IndexManager,但我们正在研究更多的替代方案;同样,我们的想法是为最常见的应用程序提供良好的实现

    它确实有一个基于Infinispan的后端,可以在不同的节点上快速分发索引,而且它应该直接贡献一个基于Terracotta或任何其他集群技术的后端。更多的解决方案正在出现