Uploaded image for project: 'PUBLIC - Liferay Portal Community Edition'
  1. PUBLIC - Liferay Portal Community Edition
  2. LPS-73032

Create a separate cache area to store the first object from paginated lists

    Details

    • Type: Feature Request
    • Status: Open
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
      None
    • Priority Level:
      Low

      Description

      The current behavior of cache flushs all paginated lists including a special kind of list that stores only one object, the first object in the list. This behavior has a huge impact on the performance every time an update is made on a single entity because without the need it flushs this special list for all other entities.
      The solution is create a new cache area to store the special kind of list. The object will be stored in the new area when the parameters of the call are:

      start == 0;
      end == 1;
      orderByComparator == null;

      When an entity get updated the new cache area will get the old entity removed from itself making the cache consistent again. This has the potential to avoid hundrends/tousands of queries issued to the database. In a recent threaddump 20% of the workers threads were fetching the latest (first object in the list) entity.

        Attachments

          Activity

            People

            • Assignee:
              thiago.moreira Thiago Leão Moreira
              Reporter:
              thiago.moreira Thiago Leão Moreira
            • Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:

                Packages

                Version Package