Query cache invalidating

Hello.

Is there some way to invalidate query cache on brokers and/or on historical nodes? Both 0.9.1 and 0.9.2 are of interest.

My use-case is that we have changed some lookups, but queries still return old values because of the cache. We would like to invalidate the cache to allow for new lookup values to be picked up.

Thank you in advance,

Nikita

which lookup are you using ? lookups should not keep the same keys if the lookup change

More precisely, if lookups update, but the cache remains stale, that is a bug.

How can Broker detect if some key-value mapping has changed in a lookup before deciding if he needs to resubmit query to historical nodes or not? Do you want to say, that Broker is expected to invalidate the whole query cache on every lookup value change?

In our case this is custom written lookup extension using Chronicle Map.

Ah, well there you go :slight_smile:

See https://github.com/druid-io/druid/blob/master/extensions-core/lookups-cached-global/src/main/java/io/druid/query/lookup/NamespaceLookupExtractorFactory.java#L224 for an example of the enforcement mechanism of cache invalidation.

Is there some way to mark the results of a specific query uncacheable or explicitly disallow caching? I see this link - http://druid.io/docs/latest/configuration/broker.html#caching talks about using the unCacheable property - can we do this for a specific query, rather than for a class of queries? I’m mainly thinking of testing or benchmarking scenarios.

Yes, I don’t remember if it is officially supported, but adding the following to the query context will disable caching for that query:

“useCache”:false,
“populateCache”:false

``