Hi, Here are three cachingTimeout which I know :)
CollectionTimeout control the cache time-out of catalog content. So it makes sense to give them the same value.
Episerver adds dependency keys to cached objects, in order to support long-time caching, while being able to refresh as soon as something is updated. So, besides the increased memory usage (as you point out), I don't recall major issues with increasing the time-out from 15 minutes to a few hours (maybe increase it further after testing).
If the cold cache loading feels very slow, you could also check if the catalog content loading can be optimized.
Thank you for your answers Sanjay and Stefan.
Which of the cachetimeouts controls the caching of pricing? Is that included when a product/variant is cached or?
The setting here is for catalog DTO, which is the lower layer, not the catalog content. By default catalog content is cached for 10 minutes. There is no "perfect" caching time, too short and you loose the benefit of caching, too long and you force ASP.NET to go through cache trimming which is an expensive process, especially for catalog content which is both - big size and many items (and if you don't know already, each language is cached separatedly). Why would you want to increase the caching time, is there a problem you want to solve?
We have a commerce site with +200.000 variants and we experience that the cache is often empty when users are fetching products/variants/categories - Propably because many products/variants are not accessed very often. Our initial thoughts were to increase the different relevant timeouts in the Commerce config files, but we are unsure that the side effects might be.
Is there any reason for not increasing the timeouts to "1:0:0" (one day) instead of the default 15 minutes? The only problem I can think of is an increased memory usage.
And do anybody know the difference between the different timeouts in the ecf.catalog.config?
<Cache enabled="true" collectionTimeout="0:15:0" entryTimeout="0:15:0" nodeTimeout="0:15:0" schemaTimeout="0:15:0"/>