From 4b78404c20490a615459267426ce9e6737bf4485 Mon Sep 17 00:00:00 2001 From: wei <> Date: Fri, 14 Jul 2006 09:20:45 +0000 Subject: Moving files. --- .../sqlmap/protected/pages/Manual/CacheModels.page | 113 +++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 demos/sqlmap/protected/pages/Manual/CacheModels.page (limited to 'demos/sqlmap/protected/pages/Manual/CacheModels.page') diff --git a/demos/sqlmap/protected/pages/Manual/CacheModels.page b/demos/sqlmap/protected/pages/Manual/CacheModels.page new file mode 100644 index 00000000..94f20f3d --- /dev/null +++ b/demos/sqlmap/protected/pages/Manual/CacheModels.page @@ -0,0 +1,113 @@ + + +

Cache Models

+

Some values in a database are know to change slower than others. To improve +performance, many developers like to cache often-used data to avoid making +unnecessary trips back to the database. SQLMap provides its own caching +system, that you configure through a <cacheModel> element. +

+ +

The results from a query Mapped Statement can be cached simply by specifying +the cacheModel parameter in the statement tag (seen above). A cache model +is a configured cache that is defined within your DataMapper configuration +file. Cache models are configured using the cacheModel element as +follows:

+ + + + + + + + + + +

The cache model above will create an instance of a cache named +"product-cache" that uses a Least Recently Used (LRU) implementation. The +value of the type attribute is either a class name, or an alias for one +of the included implementations (see below). The cache will be flushed +whenever the insertProduct, updateProduct, or deleteProduct +mapped statements are executed. There can be any number of "flush on +execute" elements specified for a cache. Some cache implementations may need +additional properties, such as the "cache-size" property demonstrated above. +In the case of the LRU cache, the size determines the number of entries to +store in the cache. Once a cache model is configured, you can specify the +cache model to be used by a mapped statement, for example:

+ + + + select * from PRODUCT where PRD_CAT_ID = #value# + + + +

Cache Implementation

+

The cache model uses a pluggable framework for supporting different types of +caches. The choice of cache is specified in the "implementation" attribute +of the cacheModel element as discussed above. The class name specified +must be an implementation of the ISqlMapCache interface, or one of the +two aliases discussed below. Further configuration parameters can be passed to +the implementation via the property elements contained within the body of the +cacheModel. Currently there are 2 implementations included with the SQLMap PHP DataMapper.

+ +
Info: +The cache implementations, LRU and FIFO cache below do not persist across +requests. That is, once the request is complete, all cache data is lost. +These caches are useful queries that results in the same repeated data during +the current request. +
+ +

Least Recently Used [LRU] Cache

+

The LRU cache implementation uses +an Least Recently Used algorithm to determines how objects are automatically +removed from the cache. When the cache becomes over full, the object that was +accessed least recently will be removed from the cache. This way, if there is +a particular object that is often referred to, it will stay in the cache with +the least chance of being removed. The LRU cache makes a good choice for +applications that have patterns of usage where certain objects may be popular +to one or more users over a longer period of time (e.g. navigating back and +forth between paginated lists, popular search keys etc.).

+ +

The LRU implementation is configured as follows:

+ + + + + + + + + +

Only a single property is recognized by the LRU cache implementation. This +property, named CacheSize must be set to an integer value representing +the maximum number of objects to hold in the cache at once. An important thing +to remember here is that an object can be anything from a single string +instance to an array of object. So take care not to store too much in your +cache and risk running out of memory.

+ +

FIFO Cache

+

The FIFO cache implementation uses an First In First Out algorithm to +determines how objects are automatically removed from the cache. When the +cache becomes over full, the oldest object will be removed from the cache. The +FIFO cache is good for usage patterns where a particular query will be +referenced a few times in quick succession, but then possibly not for some +time later.

+ +

The FIFO implementation is configured as follows:

+ + + + + + + + + + +

Only a single property is recognized by the FIFO cache implementation. This +property, named CacheSize must be set to an integer value representing +the maximum number of objects to hold in the cache at once. An important thing +to remember here is that an object can be anything from a single String +instance to an array of object. So take care not to store too much in your +cache and risk running out of memory.

+ +
\ No newline at end of file -- cgit v1.2.3