Uploaded image for project: 'Directory ApacheDS'
  1. Directory ApacheDS
  2. DIRSERVER-959

We nedd a global cache



    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 2.0.0.AM26
    • None
    • None


      Currently, we only have local caches assigned to each partition :

      • a so called "global" cache which stores the partition entries
      • a cache for each declared index

      We also have real global caches :

      • a cache for referrals
      • a cache for ACIs (tuples)
      • a cache for subentries
      • a cache for principals
      • a cache for Groups
      • a cache for notAlias entries

      Up to this point, it becomes to be a full mess. We have so many different caches, with so many different configurations, that it's almost impossible to know how to correctly tune the server. Moreover, we may have empty caches when other are heavily hit.

      After having discussed about this situation with Alex, we think wit would be better to have a global cache shared between all the partitions, but with added functionnalities :

      • the possibility to balance the cache between partitions (for instance, 20% for 'ou=system', 80% for 'dc=example, dc=com'
      • the possibility to change this balance dynamically, depending on the actual hit rate
      • the possibility to dedicate a part of this cach to pin some entries in memory (like the schema partition entries, for instance)
      • the possibility to increase or decrease the cache size dynamically, without having to stop and restart the server

      It would be also a good idea to be able to have a global Interface for all the cache we have, and may be a cache manager instead of a specific implementation for each cache

      Feel free to add comments in this JIRA !




            Unassigned Unassigned
            elecharny Emmanuel L├ęcharny
            0 Vote for this issue
            1 Start watching this issue