[ https://issues.apache.org/jira/browse/SOLR-15859?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17633518#comment-17633518 ]
Shawn Heisey edited comment on SOLR-15859 at 11/14/22 6:26 AM: --------------------------------------------------------------- {quote}Each time {{computeIfAbsent}} is called you replace any existing mapping with an empty counter. A {{putIfAbsent}} would fix that bug. {quote} I think that's OK, as if the key is absent, the new hitcounter map entry should also not exist. If you know how to modify CaffeineCache to do that, please tell me what to do. If I am not mistaken, I believe you wrote CaffeineCache and would best know how to make it work that way. ---- Separately, CaffeineCache does not seem to be working at all. I made sure I was building and running with OpenJDK 11 so that the mitigation for the Java 17 crash would not be enabled. I tried downgrading from 3.1.1 to 3.0.5, which required code changes. I then tried downgrading again to 2.9.2, which broke the prometheus-exporter for reasons I could not figure out, so I excluded that module from the build. Neither downgrade helped. So I went back to completely vanilla branch_9x, and fixed the service starting problem after installing it. When I send a query with an fq multiple times without any change, the filterCache hitcount provided by Caffeine should increase. It's staying at 0. Because the same thing happened with 3 different Caffeine versions, I don't think it's Caffeine, I think the problem is in Solr. was (Author: elyograg): {quote}Each time {{computeIfAbsent}} is called you replace any existing mapping with an empty counter. A {{putIfAbsent}} would fix that bug. {quote} I think that's OK, as if the key is absent, the new hitcounter map entry should also not exist. If you know how to modify CaffeineCache to do that, please tell me what to do. ---- Separately, CaffeineCache does not seem to be working at all. I made sure I was building and running with OpenJDK 11 so that the mitigation for the Java 17 crash would not be enabled. I tried downgrading from 3.1.1 to 3.0.5, which required code changes. I then tried downgrading again to 2.9.2, which broke the prometheus-exporter for reasons I could not figure out, so I excluded that module from the build. Neither downgrade helped. So I went back to completely vanilla branch_9x, and fixed the service starting problem after installing it. When I send a query with an fq multiple times without any change, the filterCache hitcount provided by Caffeine should increase. It's staying at 0. Because the same thing happened with 3 different Caffeine versions, I don't think it's Caffeine, I think the problem is in Solr. > 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