Tapestry
  1. Tapestry
  2. TAPESTRY-2006

Replace naive page pool mechanism with a more realistic one that can handle larger sites

    Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 5.0.7
    • Fix Version/s: 5.0.8
    • Component/s: tapestry-core
    • Labels:
      None

      Description

      The current page pooling mechanism is not very smart: pages are cached in memory forever, regardless of whether they are ever used, and a new page instance will be created any time a page is needed.

      A less naive implementation would limit the number of page instances.

      Page instances should be purged periodically, based on a LRU algorithm. The cutoff time should be configurable.

      The instance pool for a page/locale combination should track the number of created instances. There should be a hard and soft limit on the number of page instances; that is, track the number of page instances currently "in play". If the soft limit is exceeded, wait a short time (a few milliseconds, configurable) for an instance to become available, then create a fresh instance (unless the hard limit has been reached).

        Activity

        Hide
        Howard M. Lewis Ship added a comment -

        Let's see how well this works out in the field. I think is going to be a big win.

        Show
        Howard M. Lewis Ship added a comment - Let's see how well this works out in the field. I think is going to be a big win.

          People

          • Assignee:
            Howard M. Lewis Ship
            Reporter:
            Howard M. Lewis Ship
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development