[Nuxeo-tickets] Re: [Nuxeo Repository] #1800: Implement faster portlet lookup

Nuxeo Repository trac at nuxeo.com
Fri Feb 9 15:12:03 CET 2007


#1800: Implement faster portlet lookup
-------------------------+--------------------------------------------------
 Reporter:  madarche     |        Owner:  madarche 
     Type:  enhancement  |       Status:  new      
 Priority:  P1           |    Milestone:  CPS 3.4.4
Component:  CPSPortlets  |      Version:  TRUNK    
 Severity:  normal       |   Resolution:           
 Keywords:               |  
-------------------------+--------------------------------------------------
Old description:

> The portlet lookup (as opposed to the portlet rendering) done by
> PortletsTool.getPortlets is slow and called many times when a page is
> rendered. Tests have shown that one can reduce the page rendering time
> from around 1/3 of a second by improving this part.
>
> The PortletsTool.getPortlets method has been modified in a branch with
> the aim of caching the portlet lookup :
> http://svn.nuxeo.org/trac/pub/log/CPS3/products/CPSPortlets/branches/getPortletsCache/PortletsTool.py
>
> This is just a first try at it and this needs to be finalized.
>
> === Things to be done ===
>
> * Invalidate the cache at every portlet modification (move, delete,
> duplicate, ...). Maybe this could be simpler to plug the invalidation
> mechanism as an event subscriber.
>
> * One should also think about the memory management (the 'rpath'
> parameter for example). JMO recommends a ZCacheable cache.
>
> * JMO also recommends to deal with the other parameters (override,
> visibility_check, guard_check) otherwise the portlet editor might not
> workor more simply to not cachewhen visibility_check=False ou
> guard_check=False ou override=False ...

New description:

 The portlet lookup (as opposed to the portlet rendering) done by
 PortletsTool.getPortlets is slow and called many times when a page is
 rendered. Tests have shown that one can reduce the page rendering time
 from around 1/3 of a second by improving this part.

 The PortletsTool.getPortlets method has been modified in a branch with the
 aim of caching the portlet lookup :
 http://svn.nuxeo.org/trac/pub/log/CPS3/products/CPSPortlets/branches/getPortletsCache/PortletsTool.py

 This is just a first try at it and this needs to be finalized.

 === Things to be done ===

 * Invalidate the cache at every portlet modification (createPortlet,
 deletePortlet, duplicatePortlet, movePortlet, insertPortlet). Maybe this
 could be simpler to plug the invalidation mechanism as an event
 subscriber.

 * One should also think about the memory management (the 'rpath' parameter
 for example). JMO recommends a ZCacheable cache.

 * JMO also recommends to deal with the other parameters (override,
 visibility_check, guard_check) otherwise the portlet editor might not work
 or more simply to not cache when visibility_check=False ou
 guard_check=False ou override=False ...

-- 
Ticket URL: <http://svn.nuxeo.org/trac/pub/ticket/1800>
Nuxeo Repository <http://www.cps-project.org/>
Nuxeo Repository



This list archive provided by Nuxeo, the leaders of open source ECM. Check out the Nuxeo 5 open source, standards-based ECM project.