Uploaded image for project: 'infrautils'
  1. infrautils
  2. INFRAUTILS-9

Caches infrastructure

    XMLWordPrintable

Details

    • Improvement
    • Status: Resolved
    • Resolution: Done
    • (unspecified)
    • None
    • General
    • None
    • Operating System: All
      Platform: All

    Description

      https://lists.opendaylight.org/pipermail/genius-dev/2017-March/001152.html

      Projects such as genius and netvirt, and probably others too, today have A LOT of caches in code already, all over the place, some using an old deprecated DataStoreCache API which has a number of known problems, some just using ad hoc in-line solutions, typically a (static) ConcurrentMap.

      Issues with this as-is situation include technical debt issues include: (a) problematic testability due to frequent use of static, (b) possible unbounded cache growth due to lack of invalidation with proper API abstraction, thus potential memory usage issues at scale, (c) total lack of any sort of monitoring capability of cache usage e.g. by CLI commands, and any sort of administration of cache sizing and policy etc. For debuggability purpose we need to add utilities to dump these caches and reset them.

      https://git.opendaylight.org/gerrit/#/c/48920/ proposes a (first version of) a consistent shared common caching infrastructure addressing these points for use OpenDaylight projects (primary intended to initially be consumed in genius and netvirt, replacing the existing as-is caches).

      https://www.youtube.com/watch?v=h4HOSRN2aFc has a screen cast demo of this.

      Main API interfaces are the CacheProvider and the Cache and CacheFunction.

      SampleServiceWithCachingImpl code illustrates the use.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            Unassigned Unassigned
            vorburger Michael Vorburger
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: