vgritsenko 2004/05/20 03:42:22
Modified: src/documentation/xdocs/developing stores.xml
src/documentation/xdocs/installing updating.xml
Log:
clarify (desired) store behavior, add store section to issues list
Revision Changes Path
1.3 +31 -25 cocoon-2.1/src/documentation/xdocs/developing/stores.xml
Index: stores.xml
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/documentation/xdocs/developing/stores.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- stores.xml 19 May 2004 13:35:24 -0000 1.2
+++ stores.xml 20 May 2004 10:42:22 -0000 1.3
@@ -15,30 +15,33 @@
limitations under the License.
-->
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN"
"document-v11.dtd">
+
<document>
-<header>
-<title>Cocoon Source Resolving</title>
+ <header>
+ <title>Cocoon Source Resolving</title>
<authors>
<person name="Sylvain Wallez" email="[EMAIL PROTECTED]"/>
</authors>
-</header>
-<body>
+ </header>
+
+ <body>
<section>
<title>The Store Components in Cocoon</title>
<p>
- To keep cached data, Cocoon uses components implementing the
- <em>org.apache.excalibur.Store</em> interface. Cocoon uses two
- implementations of this interface, the "transient store" and the
"store",
+ To keep cached data, Cocoon uses components implementing the
+ <em>org.apache.excalibur.Store</em> interface. Cocoon uses two
+ implementations of this interface, the "transient store" and the
"store",
and optionally a third one, the "persistent store".
</p>
<section>
<title>The Transient store</title>
<p>
- The transient store (role <em>Store.TRANSIENT_STORE</em> is used for
objects
- that are not serializable, or whose storage doesn't make sense
across server
- restart. The transient store lives on its own and has no relation
with other
+ The transient store (role <em>Store.TRANSIENT_STORE</em> is used for
objects
+ that are not serializable, or whose storage doesn't make sense
across server
+ restart. The transient store lives on its own and has no relation
with other
stores. This is a mandatory component within Cocoon (i.e. used by
Cocoon's code).
+ Transient store can drop stored components if system is running low
on memory.
</p>
<p>
Cocoon uses the transient store to cache XSLT style sheets, XSP
logicsheets, etc.
@@ -47,10 +50,12 @@
<section>
<title>The Store (aka "main Store")</title>
<p>
- The store (role <em>Store.ROLE</em>) is used to store objects that
are
- serializable. As the transient store, it is a mandatory component.
For
- efficiency reasons, implementations of the main store should keep
most-often
- used objects in memory and swap older ones to disk.
+ The store (role <em>Store.ROLE</em>) can hold not serializable
objects also.
+ It is a mandatory component, as the transient store. If memory is
scarce, the
+ store can drop non serializable objects, and swaps serializable
objects to disk.
+ For efficiency reasons, implementations of the store should swap out
(or drop)
+ least often used objects. On shutdown, store can write out all
objects residing
+ in memory to the disk.
</p>
<p>
Cocoon uses the main store to cache pipeline output.
@@ -59,22 +64,22 @@
<section>
<title>Persistent store (optional)</title>
<p>
- Some store (<em>Store.ROLE</em>) implementations (but not all)
- may actually be just an in-memory cache that swap objects by calling
- the persistent store (<em>Store.PERSISTENT_STORE</em>) when needed.
So
- the persistent store is an <em>optional</em> component which is used
only
+ Some store (<em>Store.ROLE</em>) implementations (but not all)
+ may actually be just an in-memory cache that swap objects by calling
+ the persistent store (<em>Store.PERSISTENT_STORE</em>) when needed.
So
+ the persistent store is an <em>optional</em> component which is used
only
by MRUMemoryStore, and nowhere else in the code.
</p>
<p>
Two examples to illustrate this:
</p>
<ul>
- <li>when using JISP, we had this mechanism : the store was a
MRUMemoryStore
+ <li>when using JISP, we had this mechanism : the store was a
MRUMemoryStore
swapping to the persistent store which was a JISPStore.</li>
- <li>JCS has its own in-memory front end to its own persistent
storage.
- In this configuration Store.ROLE will be a JCSStore and
- Store.PERSISTENT_STORE will have no implementation, because we
don't
- need it.
+ <li>JCS has its own in-memory front end to its own persistent
storage.
+ In this configuration Store.ROLE will be a JCSStore and
+ Store.PERSISTENT_STORE will have no implementation, because we
don't
+ need it.
</li>
</ul>
</section>
@@ -84,8 +89,9 @@
<ul>
<li>Store.TRANSIENT_STORE : used by Cocoon to store non-serializable
objects</li>
<li>Store.ROLE : used by Cocoon to store serializable objects</li>
- <li>Store.PERSISTENT_STORE : optional component that may be used by
in-memory implementations of Store.ROLE to delegate persistent storage.</li>
+ <li>Store.PERSISTENT_STORE : optional component that may be used by
in-memory
+ implementations of Store.ROLE to delegate persistent storage.</li>
</ul>
</section>
-</body>
+ </body>
</document>
1.26 +16 -2
cocoon-2.1/src/documentation/xdocs/installing/updating.xml
Index: updating.xml
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/documentation/xdocs/installing/updating.xml,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- updating.xml 14 May 2004 08:48:06 -0000 1.25
+++ updating.xml 20 May 2004 10:42:22 -0000 1.26
@@ -31,6 +31,20 @@
<p>
This is a list of known issues for Cocoon 2.1.5.
</p>
+ <s2 title="Store">
+ <p>
+ Cocoon 2.1.5 uses different implementation of the store based on the
+ <link href="http://jakarta.apache.org/turbine/jcs">JCS</link>.
+ This new implementation currently does not allow storing of not
serializable objects,
+ and it does not write out memory cache to the disk on shutdown. If you
depend on
+ this functionality, you can keep 2.1.4 store configuration.
+ </p>
+ <p>
+ Cocoon 2.1.4 used MRUMemoryStore as store implementation and JISPStore
as persistent
+ store implementation. JISPStore is known to corrupt storage file under
some
+ conditions.
+ </p>
+ </s2>
<s2 title="Logging Configuration">
<p>
Cocoon 2.1.5 uses a newer version of the Avalon Excalibur logging
package
@@ -270,7 +284,7 @@
<s2 title="Stores">
<p>The Store and StoreJanitor components and implementations have been
moved to
Avalon Excalibur.</p>
- <p>To make upgrading easier, the class attributes of the store janitor
+ <p>To make upgrading easier, the class attributes of the store janitor
component have been removed in <em>cocoon.xconf</em> as the class
names have changed.
The <em>cache-transient</em> and <em>cache-persistent</em> components
do
not exist anymore, so any reference to them must be removed from
cocoon.xconf.
@@ -322,7 +336,7 @@
and the portal framework (sunSpot) are now blocks (session-fw,
authentication-fw
and portal-fw).
</p>
- <p>The <em>sunShine transformer</em> has been renamed to <em>session
transformer</em>.
+ <p>The <em>sunShine transformer</em> has been renamed to <em>session
transformer</em>.
All sitemap components starting with <em>sunrise-</em> have been
changed to
start now with <em>auth-</em>. The <em>sunrise-auth</em> action has
been
renamed to <em>auth-protect</em>.