J'utilise Hz PredicateBuilder pour interroger des cartes Hz avec requête sur l'attribut de l'objet imbriqué. Ont créé un index sur le champ imbriqué aussi dans le fichier de configuration.Valider si les index de Hazelcast sont utilisés
EntryObject e = new PredicateBuilder().getEntryObject();
Predicate idPredicate = e.get("id").equal(id);
Predicate predicate = e.get("rel.id").equal(rel.id).and(idPredicate);
return personMap.values(predicate);
Où rel est un objet avec un attribut id et est un attribut de l'objet Person.
indexes = [
{
attribute = id
isOrdered = false
},
{
attribute = rel.id
isOrdered = false
}
]
Les enregistrements corrects sont retournés, mais vous voulez vous assurer que cette requête utilise l'index. Est-il possible de s'assurer que cette requête utilise l'index? (Tout message d'information ou quelque chose). Travaillé avec DB2 avant et niveau de débogage montre ces messages. Toute aide est très appréciée! Merci d'avance.
Croyez-moi avec assez de dossiers dans la mémoire si vous n'utilisez pas l'index que vous remarquerez. Surtout si vous démarrez plus d'un membre, à cause du trafic distant. –
@AlexanderPetrov: Merci! En fait, nous utilisions des prédicats plus tôt et les index n'étaient pas utilisés. Nous passons donc à PredicateBuilder puisqu'il s'agit d'une classe indexaware, donc nous voulons juste nous assurer que le but est atteint. Bien qu'avec ces changements, la performance soit nettement meilleure. –
Avez-vous lu ceci? Malheureusement, il ne semble pas y avoir de statistiques MBean pertinentes pour les index, mais vous pouvez facilement mesurer les temps avec l'index activé, puis avec l'index désactivé http://docs.hazelcast.org/docs/3.5/manual/html/management .html –