Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-8005

Avoid Class.getSimpleName in UsageTrackingQueryCachingPolicy

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None
    • None
    • New

    Description

      By profiling an Elasticsearch cluster, I found the private method UsageTrackingQueryCachingPolicy.isPointQuery to be quite expensive due to the clazz.getSimpleName() call.

      Here is an excerpt from hot_threads:

      java.lang.Class.getEnclosingMethod0(Native Method)
             java.lang.Class.getEnclosingMethodInfo(Class.java:1072)
             java.lang.Class.getEnclosingClass(Class.java:1272)
             java.lang.Class.getSimpleBinaryName(Class.java:1443)
             java.lang.Class.getSimpleName(Class.java:1309)
             org.apache.lucene.search.UsageTrackingQueryCachingPolicy.isPointQuery(UsageTrackingQueryCachingPolicy.java:39)
             org.apache.lucene.search.UsageTrackingQueryCachingPolicy.isCostly(UsageTrackingQueryCachingPolicy.java:54)
             org.apache.lucene.search.UsageTrackingQueryCachingPolicy.minFrequencyToCache(UsageTrackingQueryCachingPolicy.java:121)
             org.apache.lucene.search.UsageTrackingQueryCachingPolicy.shouldCache(UsageTrackingQueryCachingPolicy.java:179)
             org.elasticsearch.index.shard.ElasticsearchQueryCachingPolicy.shouldCache(ElasticsearchQueryCachingPolicy.java:53)
             org.apache.lucene.search.LRUQueryCache$CachingWrapperWeight.bulkScorer(LRUQueryCache.java:806)
             org.elasticsearch.indices.IndicesQueryCache$CachingWeightWrapper.bulkScorer(IndicesQueryCache.java:168)
             org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:665)
             org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:472)
             org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:388)
             org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:108)
      

      Attachments

        1. LUCENE-8005.patch
          1.0 kB
          Scott Somerville
        2. LUCENE-8005.patch
          8 kB
          Scott Somerville

        Activity

          People

            Unassigned Unassigned
            scottsom Scott Somerville
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated: