[ 
https://issues.apache.org/jira/browse/SOLR-15859?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shawn Heisey updated SOLR-15859:
--------------------------------
    Attachment: cacheinfo-1.patch
        Status: Open  (was: Open)

Latest patch with everything working as expected that I was able to test.

This patch includes changes to bin/solr needed for the service to start on 
branch_9x and main.  Those won't be in the commit because that is being handled 
in another issue.  The git diff was made on branch_9x, I am hoping it will 
apply cleanly to main.

This is just an initial draft.  The handler has a way to support multiple 
actions and multiple cache types, but right now the only action it has is 
"dump" and the only type it has is "filter" ... and those are the defaults for 
those parameters.  In order to get per-entry hitcounts, 'extraStats="true"' 
must be added to the filterCache definition in solrconfig.xml.  I made it 
require a special parameter because the amount of memory overhead for a large 
cache could be sizable.

> Add handler to dump filter cache
> --------------------------------
>
>                 Key: SOLR-15859
>                 URL: https://issues.apache.org/jira/browse/SOLR-15859
>             Project: Solr
>          Issue Type: Improvement
>            Reporter: Andy Lester
>            Assignee: Shawn Heisey
>            Priority: Major
>              Labels: FQ, cache, filtercache, metrics
>         Attachments: cacheinfo-1.patch, cacheinfo.patch, fix_92_startup.patch
>
>
> It would be very helpful to be able to inspect the contents of the 
> filterCache.
> I'd like to be able to query something like
> {{/admin/caches?type=filter&nentries=1000&sort=numHits+DESC}}
> nentries would be allowed to be -1 to get everything.
> It would be nice to see these data items for each entry. I don't know which 
> are available, but I'm thinking blue sky here:
>  * cache key, exactly as stored
>  * Timestamp when the entry was inserted
>  * Whether the insertion of the entry evicted another entry, and if so which 
> one
>  * Timestamp of when this entry was last hit
>  * Number of hits on this entry forever
>  * Number of hits on this entry over some time period
>  * Number of documents matched by the filter
>  * Number of bytes of memory used by the filter
> These are the sorts of questions I'd like to be able answer:
>  * "I just did a query that I expect will have added a cache entry. Did it?"
>  * "Are my queries hitting existing cache entries?"
>  * "How big should I set my filterCache size? Should I limit it by number of 
> entries or RAM usage?"
>  * "Which of my FQs are getting used the most? These are the ones I want in 
> my firstSearcher queries." (I currently determine this by processing my old 
> solr logs)
>  * "Which filters give me the most bang for the buck in terms of RAM usage?"
>  * "I have filter X and filter Y, but would it be beneficial if I made a 
> filter X AND Y?"
>  * "Which FQs are used more at certain times of the day? (Assuming I take 
> regular snapshots throughout the day)"
> I imagine a response might look like:
> {{{}}
> {{  "responseHeader": {}}
> {{    "status": 0,}}
> {{    "QTime": 961}}
> {{  },}}
> {{  "response": {}}
> {{    "numFound": 12104,}}
> {{    "filterCacheKeys": {}}
> {{      [}}
> {{        "language:eng": {}}
> {{          "inserted": "2021-12-04T07:34:16Z",}}
> {{          "lastHit": "2021-12-04T18:17:43Z",}}
> {{          "numHits": 15065,}}
> {{          "numHitsInPastHour": 2319,}}
> {{          "evictedKey": "agelevel:4 shippable:Y",}}
> {{          "numRecordsMatchedByFilter": 24328753,}}
> {{          "bytesUsed": 3041094}}
> {{        }}}
> {{      ],}}
> {{      [}}
> {{        "is_set:N": {}}
> {{          ...}}
> {{        }}}
> {{      ],}}
> {{      [}}
> {{        "language:spa": {}}
> {{          ...}}
> {{        }}}
> {{      ]}}
> {{    }}}
> {{}}}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org
For additional commands, e-mail: issues-h...@solr.apache.org

Reply via email to