Question

Quelqu'un at-il une expérience avec l'utilisation de terre cuite avec Hibernate Search pour satisfaire les requêtes d'application?

Si oui:

  1. Quelle est l'ampleur de la « objet mises à jour » peut-il gérer? (Comment est la performance)

  2. Quel genre de performance ne la Les requêtes ont?

  3. Est-il possible d'utiliser en terre cuite     Mise en veille prolongée Rechercher sans même avoir     une base de données de soutien pour satisfaire tous     "requêtes" en mémoire?
Était-ce utile?

La solution

Je suis directeur de la technologie de terre cuite. J'ai passé un peu de temps le mois dernier regardant Hibernate Search. Il ne se construit pas de manière à être transparente en terre cuite regroupés. Voici pourquoi en quelques mots. Mise en veille prolongée a une réplication JMS intégrée personnalisée des index Lucene dans JVMs

L'idée de base dans la recherche est que parler à disque local sous Lucene fonctionne très bien, alors que fragmenter ou le partitionnement des index de Lucene à travers le réseau présente une latence sooo beaucoup à faire Lucene semblent mauvais quand il est pas la faute de Lucene du tout. À cette fin, hibernate recherche ne repose pas sur JBossCache ou any en mémoire des systèmes de partitionnement / de mise en cache et repose plutôt sur JMS et le disque local de chaque machine virtuelle afin d'assurer l'indexation mise à jour sur un cluster avec une faible latence simultanée. Ensuite, la beauté de Hibernate Search est que les requêtes standard Hibernate et plus peuvent être le lancement par Hibernate à ces indices de langage naturel dans chaque machine.

Terracotta il se trouve que nous avions une idée similaire à Emmanuel et construit un produit SearchableMap au-dessus de Compass. Chaque machine obtient son propre magasin de Compass et le magasin est configuré pour renverser le disque local. La terre cuite est utilisé pour créer une capacité d'écriture multi-maître où une machine virtuelle Java peut ajouter à l'index et le delta est envoyé par terre cuite à rejouée / réappliquer localement sur chaque disque. Il fonctionne comme Hibernate Search mais avec ASM comme protocole de mise en réseau en place de JMS et w / o les belles interfaces Hibernate mais avec des interfaces boussole.

Je pense que nous soutiendrons Hibernate Search w / aide de JBoss (ils auraient besoin de prendre en compte les impl JMS comme connectable) d'ici la fin de l'année.

Maintenant à vos questions directement:

Mises à jour 1.Object / s en veille prolongée ou SearchableMap devrait être assez élevé, car les deux envoient seulement deltas. Dans le cas de mise en veille prolongée, il est fonction de notre fournisseur JMS. En terre cuite il est extensible en ajoutant simplement plusieurs serveurs en terre cuite au tableau.

  1. Les performances des requêtes dans les deux est très rapide. les performances de la mémoire locale dans la plupart des cas. Et si vous avez besoin à la page depuis le disque, il se trouve la plupart des systèmes d'exploitation font un bon travail et peut répondre de manière plus rapide que tout peut de regroupement en réseau aux requêtes.

  2. Ce sera, je pense, une fois que nous JBoss à factoriser leurs hypothèses JMS, etc.

Cheers,

- Ari

Autres conseils

Puisque les gens sur les forums Hibernate Continuez à vous référer à ce post, je me sens dans le besoin de souligner que si les commentaires de Ari où corriger au début de 2009, nous avons développé et d'améliorer beaucoup.

Hibernate Search fournit un ensemble de canaux back-end hors de la boîte, comme les JMS déjà mentionnés sur la base et un plus récent ajout à l'aide JGroups, mais nous l'avons fait aussi assez facile de brancher des implémentations alternatives ou remplacer certains.

En plus d'utiliser un back-end personnalisé, il est désormais possible depuis la version 4 pour remplacer la stratégie globale et au lieu de changer la mise en œuvre de back-end que vous pouvez utiliser un IndexManager qui suit un design différent et ne pas utiliser un back-end du tout; à ce moment, nous avons deux IndexManagers seulement, mais nous travaillons sur d'autres solutions de rechange; encore une fois l'idée est de fournir des implémentations agréables pour le plus commun

Il possède un back-end basé Infinispan pour la distribution très rapide de l'indice entre les différents nœuds, et il devrait être simple de contribuer une basée sur terre cuite ou toute autre technologie de clustering. Plus de solutions viennent.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top