Cache configuration: druid.historical.cache.maxEntrySize vs druid.cache.sizeInBytes

We are enabling cache on our Historical processes. We have fairly decent machines for our Historical with 16 cores and 80GB RAM and 1TB SSD. Going through Historical processes configuration[1] & cache configuration[2], I have few questions:

  • Can the configuration mentioned in [2] be set along with the process level cache configuration such as druid.historical.cache.*? Or are they mutually exclusive?

  • What is the difference between druid.cache.sizeInBytes & druid.historical.cache.maxEntrySize ? Can both of them be configured?

  • I set druid.historical.cache.maxEntrySize on my Historical to 10 GB but when restarting, the server threw the following error

  • Caused by: com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type int from String “10737418240”: Overflow: numeric value (10737418240) out of range of Integer (-2147483648 - 2147483647)

    at [Source: UNKNOWN; line: -1, column: -1] (through reference chain: org.apache.druid.client.cache.CacheConfig[“maxEntrySize”])

  • Regarding the above error, can we not configure cache size to be more than 2GB? We have thetaSketch metrics which will need a lot of memory to be cached, and that is why we started with 10GB for druid.historical.cache.maxEntrySize. Am I wrong with the assumption?

  • When having thetaSketch metrics in our data source, is there any guideline or recommendation on how cache should be configured?