HzのPredicateBuilderを使用して、ネストされたオブジェクトの属性に関するクエリでHzマップを照会しています。ネストされたフィールドのインデックスも設定ファイルに作成しました。ヘイルキャストインデックスが使用されているかどうかを検証
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);
ここで、relは、id属性のオブジェクトで、Personオブジェクトの属性です。
indexes = [
{
attribute = id
isOrdered = false
},
{
attribute = rel.id
isOrdered = false
}
]
正しいレコードが返すが、このクエリは、インデックスを使用している場合を確認するにしています。このクエリがインデックスを使用していることを確認する方法はありますか? (情報メッセージなど)。これらのメッセージは、DB2の前とデバッグ・レベルで表示されます。どんな助けでも大歓迎です!前もって感謝します。
十分なレコードで私を信じてください。インデックスを使用していない場合は、メモリに記憶されます。特に、リモートトラフィックのために1つ以上のメンバーを開始する場合。 –
@AlexanderPetrov:ありがとう!実際には、以前は述語を使用していましたが、インデックスは使用されませんでした。したがって、それはindexawareクラスであるため、PredicateBuilderに移動していますので、目的が満たされているかどうかを確認したいだけです。これらの変更では、前例がはるかに良いですが。 –
あなたはこれを読んでいますか?残念ながら、インデックスに関連する統計MBeanがあるように見えませんが、インデックスを有効にしてからインデックスを無効にして時間を簡単に測定できますhttp://docs.hazelcast.org/docs/3.5/manual/html/management .html –