TimeTrex Community Edition v16.2.0
This commit is contained in:
28
vendor/pear/cache_lite/docs/technical
vendored
Normal file
28
vendor/pear/cache_lite/docs/technical
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
Technical choices for Cache_Lite...
|
||||
-----------------------------------
|
||||
|
||||
To begin, the main goals of Cache_Lite :
|
||||
- performances
|
||||
- safe use (even on very high traffic or with NFS (file locking doesn't work
|
||||
with NFS))
|
||||
- flexibility (can be used by the end user or as a part of a larger script)
|
||||
|
||||
|
||||
For speed reasons, it has been decided to focus on the file container (the
|
||||
faster one). So, cache is only stored in files. The class is optimized for that.
|
||||
If you want to use a different cache container, have a look to PEAR/Cache.
|
||||
|
||||
For speed reasons too, the class 'Cache_Lite' has do be independant (so no
|
||||
'require_once' at all in 'Cache_Lite.php'). But, a conditional include_once
|
||||
is allowed. For example, when an error is detected, the class include dynamicaly
|
||||
the PEAR base class 'PEAR.php' to be able to use PEAR::raiseError(). But, in
|
||||
most cases, PEAR.php isn't included.
|
||||
|
||||
For the second goal (safe use), there is three (optional) mecanisms :
|
||||
- File Locking : seems to work fine (but not with distributed file system
|
||||
like NFS...)
|
||||
- WriteControl : the cache is read and compared just after being stored
|
||||
(efficient but not perfect)
|
||||
- ReadControl : a control key (crc32(), md5() ou strlen()) is embeded is the
|
||||
cache file and compared just after reading (the most efficient
|
||||
but the slowest)
|
Reference in New Issue
Block a user