Gestion des caches

Gestion des caches


Différents caches sont utilisés dans le module d'indexation. Ils servent tous à améliorer les performances de la recherche. Ils sont définis dans le fichier ehcache.xml placé dans le répertoire properties. Le fichier se présente comme suit :

<ehcache>

    <!-- Sets the path to the directory where cache .data files are created.

         If the path is a Java System Property it is replaced by
         its value in the running VM.

         The following properties are translated:
         user.home - User's home directory
         user.dir - User's current working directory
         java.io.tmpdir - Default temp file path -->
    <diskStore path="java.io.tmpdir"/>


    <!--Default Cache configuration. These will applied to caches programmatically created through
        the CacheManager.

        The following attributes are required for defaultCache:

        maxInMemory       - Sets the maximum number of objects that will be created in memory
        eternal           - Sets whether elements are eternal. If eternal,  timeouts are ignored and the element
                            is never expired.
        timeToIdleSeconds - Sets the time to idle for an element before it expires.
                            i.e. The maximum amount of time between accesses before an element expires
                            Is only used if the element is not eternal.
                            Optional attribute. A value of 0 means that an Element can idle for infinity
        timeToLiveSeconds - Sets the time to live for an element before it expires.
                            i.e. The maximum time between creation time and when an element expires.
                            Is only used if the element is not eternal.
        overflowToDisk    - Sets whether elements can overflow to disk when the in-memory cache
                            has reached the maxInMemory limit.

        -->


    <cache name="ori-oai-indexing_results"
        maxElementsInMemory="2"
        eternal="false"
        timeToIdleSeconds="900"
        timeToLiveSeconds="900"
        diskPersistent="true"
        overflowToDisk="true"
        />

    <cache name="ori-oai-indexing_fragments"
        maxElementsInMemory="5"
        eternal="false"
        timeToIdleSeconds="900"
        timeToLiveSeconds="900"
        diskPersistent="true"
        overflowToDisk="true"
        />

    <cache name="ori-oai-indexing_notices"
        maxElementsInMemory="5"
        eternal="false"
        timeToIdleSeconds="900"
        timeToLiveSeconds="900"
        diskPersistent="true"
        overflowToDisk="true"
        />


	<cache name="ori-oai-indexing_nbResults"
        maxElementsInMemory="300"
        eternal="false"
        timeToIdleSeconds="7200"
        timeToLiveSeconds="7200"
        diskPersistent="true"
        overflowToDisk="true"
        />


    <defaultCache
            maxElementsInMemory="300"
            eternal="false"
            timeToIdleSeconds="7200"
            timeToLiveSeconds="7200"
            overflowToDisk="true"
            diskPersistent="false"
            diskExpiryThreadIntervalSeconds="60"
            memoryStoreEvictionPolicy="FIFO"
            />
</ehcache>

Quatre caches sont présents dans Ori-Oai-Indexing :

  • Le cache de la recherche par attributs et de la recherche searchXMLDocs appelé ori-oai-indexing_results
  • Le cache des fragments de la recherche plein texte appelé ori-oai-indexing_fragments
  • Le cache de la recherche des fiches XML appelé ori-oai-indexing_notices
  • Le cache du nombre de résultats des recherches appelé ori-oai-indexing_nbResults

Il vous est possible de modifier la durée de vie de ces caches en modifiant les valeurs timeToIdleSeconds et TimeToLiveSeconds. Par défaut trois de ces caches sont réglés à 15 minutes et le cache du nombre de résultats est réglé à deux heures.

Par ailleurs le cache persistent est placé dans le répertoire temporaire du Tomcat du module d'indexation. 

Dans la version 1.5 la plupart des caches ont été désactivés. Seul le cache "ori-oai-indexing_nbResults" reste actif. Ceci a pour objectif de laisser Lucene gérer lui-même les caches.

  • No labels