Hi, just centralizing a set of ideas to improve IPageManager and
friends. Please give your opinion and increase the list with your
ideas. If we reach a consensus, we can already start open/resolve
tickets.
Context: PersistentPageManager was designed to work like
SecondLevelCacheSessionStore (page-management.txt), but it is now a
composition of IPageStore PersistentPageManager
- Rename PersistentPageManager to PageStoreManager.
Context: PersistentPageManager.SessionEntry clears its pages in cache
every time a new list of touched pages in request is set to be cached.
This strategy works fine for a single tab navegation. If one opens
another tab to another page, pages cached in session for the other tab
will be lost in the session cache (the remain in the application
serialized page cache however).
- change PersistentPageManager.SessionEntry#setPages to work
cyclic (in benefit of a faster multiple tabs navigation and preventing
memory overflow since one can touche a lot of pages)
Context: the code related to page persistence is a bit hard to understand
- Write some javadoc to PersistentPageManager after we talk about
possible changes in this thread.
- Rename PersistentPageManager.SessionEntry pages variable to sessionCache
- Change DefaultPageStore to encapsulate all the write/read from
session cache / application cache /second level data by moving
PersistentPageManager.SessionEntry and PersistentRequestAdapter to
DefaultPageStore, centralizing the logic: try session cache / try
application cache (SerializedPagesCache) / try IDataStore. This
refactoring centralizing the code will make the storing/access logic
easier to understand
--
Pedro Henrique Oliveira dos Santos