Uploaded image for project: 'Apache Ozone'
  1. Apache Ozone
  2. HDDS-4479

CleanupTableInfo annotation if missing, can lead to unintended TableCache grow



    • Test
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • OM
    • None


      As it was figured out in HDDS-4478, if the CleanupTableInfo misses a table for which we are caching values, then the automatic cache eviction inside OzoneManager's double buffer does not evict the TableCache, nor does anything else, if not purposefully written in new code, or if a restart of OM happens.

      This can lead to larger than intended cache size as we do not evict elements that we should.

      As the tables that has to be enumerated for the OMClientResponses in this annotation, are dependent on the code of the OMClientRequests, it is extremely hard to spot a missing table name in the list inside the annotation unless you know what are you doing and what you are looking at.
      As this is first of all tedious, secondly error prone, we should somehow guard against such missing annotation values with some kind of a generic test, that checks what is cached in the tables and whether all the tables for which the cache was grown we have the name listed in the annotation. Or we can try to come up with any other idea which is useful and helps us detect a missing value such as in HDDS-4478.


        Issue Links



              Unassigned Unassigned
              pifta István Fajth
              0 Vote for this issue
              1 Start watching this issue