Hibernate & EHCache: como funciona o MaxElementsInMemory?

Eu configurei o EHCache com um defaultCache (para elementos), um StandardQueryCache (para consultas) e UpdateTimestampsCache (para o que eu acredito é manter o controle das atualizações do banco de dados ... mas eu realmente não entendo o que ele faz exatamente).

Eu configurei o maxElementsInMemory para cada um desses caches, mas o que eu não entendo é o que esse número controla para o StandardQueryCache e para o UpdateTimestampsCache. Eu entendo que o número de entidades que podem ser armazenadas em cache no cache padrão não deve exceder 10000, mas o cache de consulta não armazena em cache elementos. Ele armazena em cache as chaves primárias (tanto quanto eu entendo).

Isso significa que o maxElementsInMemory para o StandardQueryCache controla o número de "linhas" dos resultados ou controla o número de pares de chaves primárias para os elementos que ele pode ter?

E quanto ao UpdateTimestampsCache? Ele acompanha a última vez que uma entidade foi atualizada, a última vez que uma tabela foi atualizada ... ou outra coisa? Qual número devo usar para maxElementsInMemory para este?

Obrigado!

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd" updateCheck="true" monitoring="autodetect"     dynamicConfig="true">
  <defaultCache 
    maxElementsInMemory="10000"
    eternal="false"
    timeToIdleSeconds="3600"
    timeToLiveSeconds="3600">
  </defaultCache>

  <cache
    name="org.hibernate.cache.internal.StandardQueryCache"
    maxElementsInMemory="10000"
    eternal="false"
    timeToIdleSeconds="3600"
    timeToLiveSeconds="3600">
  </cache>

  <cache
    name="org.hibernate.cache.spi.UpdateTimestampsCache"
    maxElementsInMemory="10000"
    eternal="true">
  </cache>

</ehcache>

questionAnswers(1)

yourAnswerToTheQuestion