Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
Generic
Description
When saving a request, trinidad is creating an attribute named org.apache.myfaces.trinidadinternal.application.VIEW_CACHE.<id> which references a page state (org.apache.myfaces.trinidadinternal.application.StateManagerImpl$PageState) and also creates an attribute named org.apache.myfaces.trinidadinternal.application.StateManagerImp.ACTIVE_PAGE_STATE which references the same page state object.
On single VM instances, this isn't an issue as the referenced object will be the same. But on distributed systems, depending on the replication mechanism used, this can lead to two copies of that page state object. [Consider the case of an appserver that saves the HTTP session to a database, which will lose all object reference information.]
As the page state object is quite large (I typically see its serialized state require 150000 bytes), duplicating that memory requirement has an enormous impact on the performance of distributed systems. Additionally, it is then possible that after a replication that doesn't preserve the object references, the behavior of the application might be affected.
From Max Starets:
Perhaps the ACTIVE_PAGE_STATE could be referring to the state token (id) instead.
Attachments
Attachments
Issue Links
- is blocked by
-
TRINIDAD-1812 Memory use is very high in J2EE cluster with session replication (Weblogic) when using pageflowscope
- Reopened