- Publicity: Public Only All
acs-cache-procs.tcl
This file defines the following Objects and Classes: ::acs::Cache, ::acs::PartitionedCache, ::acs::HashKeyPartitionedCache, ::acs::KeyPartitionedCache, ::acs::LockfreeCache, ::acs::per_request_cache, ::acs::per_thread_cache, ::xo::xotcl_package_cache, ::xo::xotcl_object_cache, ::acs::site_nodes_children_cache, ::acs::permission_cache, ::xo::xotcl_object_type_cache, ::xowiki::cache, ::acs::group_cache, ::acs::site_nodes_cache, ::acs::misc_cache, ::acs::site_nodes_id_cache, ::acs::Cache, ::acs::PartitionedCache, ::acs::KeyPartitionedCache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::PartitionedCache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::HashKeyPartitionedCache, ::acs::HashKeyPartitionedCache, ::acs::KeyPartitionedCache, ::acs::KeyPartitionedCache, ::acs::LockfreeCache, ::acs::LockfreeCache, ::acs::LockfreeCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::HashKeyPartitionedCache, ::acs::HashKeyPartitionedCache, ::acs::HashKeyPartitionedCache, ::acs::KeyPartitionedCache, ::acs::KeyPartitionedCache, ::acs::LockfreeCache, ::acs::LockfreeCache, ::acs::LockfreeCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::HashKeyPartitionedCache, ::acs::HashKeyPartitionedCache, ::acs::KeyPartitionedCache, ::acs::KeyPartitionedCache, ::acs::LockfreeCache, ::acs::LockfreeCache, ::acs::LockfreeCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::HashKeyPartitionedCache, ::acs::HashKeyPartitionedCache, ::acs::KeyPartitionedCache, ::acs::KeyPartitionedCache, ::acs::LockfreeCache, ::acs::LockfreeCache, ::acs::LockfreeCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::Cache, ::acs::PartitionedCache, ::acs::Cache, ::acs::KeyPartitionedCache, ::acs::LockfreeCache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::HashKeyPartitionedCache, ::acs::HashKeyPartitionedCache, ::acs::KeyPartitionedCache, ::acs::KeyPartitionedCache, ::acs::LockfreeCache, ::acs::LockfreeCache, ::acs::LockfreeCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::KeyPartitionedCache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::HashKeyPartitionedCache, ::acs::HashKeyPartitionedCache, ::acs::KeyPartitionedCache, ::acs::KeyPartitionedCache, ::acs::LockfreeCache, ::acs::LockfreeCache, ::acs::LockfreeCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::LockfreeCache, ::acs::Cache, ::acs::Cache, ::acs::HashKeyPartitionedCache, ::acs::HashKeyPartitionedCache, ::acs::HashKeyPartitionedCache, ::acs::Cache, ::acs::KeyPartitionedCache, ::acs::Cache, ::acs::Cache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::KeyPartitionedCache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::HashKeyPartitionedCache, ::acs::HashKeyPartitionedCache, ::acs::KeyPartitionedCache, ::acs::KeyPartitionedCache, ::acs::LockfreeCache, ::acs::LockfreeCache, ::acs::LockfreeCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::KeyPartitionedCache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::PartitionedCache, ::acs::Cache, ::acs::LockfreeCache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::PartitionedCache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::HashKeyPartitionedCache, ::acs::HashKeyPartitionedCache, ::acs::KeyPartitionedCache, ::acs::KeyPartitionedCache, ::acs::LockfreeCache, ::acs::LockfreeCache, ::acs::LockfreeCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::HashKeyPartitionedCache, ::acs::LockfreeCache, ::acs::HashKeyPartitionedCache, ::acs::HashKeyPartitionedCache, ::acs::LockfreeCache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::HashKeyPartitionedCache, ::acs::HashKeyPartitionedCache, ::acs::KeyPartitionedCache, ::acs::KeyPartitionedCache, ::acs::LockfreeCache, ::acs::LockfreeCache, ::acs::LockfreeCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::Cache, ::acs::KeyPartitionedCache, ::acs::HashKeyPartitionedCache, ::acs::PartitionedCache, ::acs::KeyPartitionedCache, ::acs::Cache, ::acs::LockfreeCache, ::acs::KeyPartitionedCache, ::acs::HashKeyPartitionedCache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::HashKeyPartitionedCache, ::acs::HashKeyPartitionedCache, ::acs::HashKeyPartitionedCache, ::acs::KeyPartitionedCache, ::acs::KeyPartitionedCache, ::acs::LockfreeCache, ::acs::LockfreeCache, ::acs::LockfreeCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::HashKeyPartitionedCache, ::acs::HashKeyPartitionedCache, ::acs::HashKeyPartitionedCache, ::acs::KeyPartitionedCache, ::acs::KeyPartitionedCache, ::acs::LockfreeCache, ::acs::LockfreeCache, ::acs::LockfreeCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::Cache, ::acs::Cache, ::acs::Cache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::PartitionedCache, ::acs::KeyPartitionedCache, ::acs::Cache, ::acs::Cache, ::acs::LockfreeCache, ::acs::Cache, ::acs::Cache
- Location:
- packages/acs-tcl/tcl/acs-cache-procs.tcl
Procedures in this file
- Class ::acs::Cache (public)
- Class ::acs::HashKeyPartitionedCache (public)
- Class ::acs::KeyPartitionedCache (public)
- Class ::acs::LockfreeCache (public)
- Class ::acs::PartitionedCache (public)
- Object ::acs::group_cache (public)
- Object ::acs::misc_cache (public)
- Object ::acs::per_request_cache (public)
- Object ::acs::per_thread_cache (public)
- Object ::acs::permission_cache (public)
- Object ::acs::site_nodes_cache (public)
- Object ::acs::site_nodes_children_cache (public)
- Object ::acs::site_nodes_id_cache (public)
- Object ::xo::xotcl_object_cache (public)
- Object ::xo::xotcl_object_type_cache (public)
- Object ::xo::xotcl_package_cache (public)
- Object ::xowiki::cache (public)
- acs::Cache instproc flush (public)
- acs::Cache instproc flush_all (public)
- acs::Cache instproc flush_cache (public)
- acs::Cache instproc flush_pattern (public)
- acs::Cache instproc get (public)
- acs::Cache instproc init (public)
- acs::Cache instproc set (public)
- acs::Cache instproc show_all (public)
- acs::HashKeyPartitionedCache instproc flush_pattern (public)
- acs::HashKeyPartitionedCache instproc set (public)
- acs::KeyPartitionedCache instproc flush_pattern (public)
- acs::KeyPartitionedCache instproc set (public)
- acs::LockfreeCache instproc eval (public)
- acs::LockfreeCache instproc flush (public)
- acs::LockfreeCache instproc get (public)
- acs::PartitionedCache instproc flush_all (public)
- acs::PartitionedCache instproc init (public)
- acs::PartitionedCache instproc show_all (public)
- acs::disk_cache_eval (public)
- acs::disk_cache_flush (public)
Detailed information
Class ::acs::Cache (public)
::nx::Class ::acs::Cache
Base class for cache management
- Testcases:
- No testcase defined.
Class ::acs::HashKeyPartitionedCache (public)
::nx::Class ::acs::HashKeyPartitionedCache
Partitioned cache, where the partition numbers are computed via a hash function. Key-partitioning is based on a modulo function using a special partition_key, which has to be numeric
- Testcases:
- No testcase defined.
Class ::acs::KeyPartitionedCache (public)
::nx::Class ::acs::KeyPartitionedCache
Partitioned cache, where the partition numbers are computed via a modulo function from the numeric keys.
- Testcases:
- No testcase defined.
Class ::acs::LockfreeCache (public)
::nx::Class ::acs::LockfreeCache
Lockfree caches are provided either as per-thread caches or per-request caches, sharing the property that accessing these values does not require locks. Typical applications of these caches are the per_request_cache and per_thread_cache.
- See Also:
- Testcases:
- No testcase defined.
Class ::acs::PartitionedCache (public)
::nx::Class ::acs::PartitionedCache
Partitioned cache infrastructure. Partition numbers are computed via a modulo function from the numeric keys.
- Testcases:
- No testcase defined.
Object ::acs::group_cache (public)
::acs::KeyPartitionedCache ::acs::group_cache
- ::acs::group_cache set -partition_key /integer/ /key/ /value/
- ::acs::group_cache flush_pattern -partition_key /integer/ /pattern/
- ::acs::group_cache init
- ::acs::group_cache show_all
- ::acs::group_cache flush_all ?-partition_key /value/?
- ::acs::group_cache eval ?-partition_key /value/? ?-expires /value/? ?-timeout /value/? ?-per_request? /key/ /command/
- ::acs::group_cache get ?-partition_key /value/? /key/
- ::acs::group_cache flush ?-partition_key /value/? /key/
- ::acs::group_cache flush_cache ?-partition_key /value/?
- Testcases:
- No testcase defined.
Object ::acs::misc_cache (public)
::acs::HashKeyPartitionedCache ::acs::misc_cache
Generic cache. This cache is a successor of the util_memoize_cache, but in a partitioned fashion to make it scalable. It should only be used for situation, where no wild-card flushes are required.
- ::acs::misc_cache set -partition_key /value/ /key/ /value/
- ::acs::misc_cache flush_pattern -partition_key /value/ /pattern/
- ::acs::misc_cache init
- ::acs::misc_cache show_all
- ::acs::misc_cache flush_all ?-partition_key /value/?
- ::acs::misc_cache eval ?-partition_key /value/? ?-expires /value/? ?-timeout /value/? ?-per_request? /key/ /command/
- ::acs::misc_cache get ?-partition_key /value/? /key/
- ::acs::misc_cache flush ?-partition_key /value/? /key/
- ::acs::misc_cache flush_cache ?-partition_key /value/?
- Testcases:
- No testcase defined.
Object ::acs::per_request_cache (public)
::acs::LockfreeCache ::acs::per_request_cache
Lockfree cache with per-request live time of the entries. The purpose of the per-request cache is to cache computation results of a single request. The entries of this cache are therefore very short-lived. Some values are needed multiple times per request, and/or they should show consistently the same value during the same request, no matter, if concurrently, a value is changed (e.g. permissions). The per-request cache uses a Tcl variable in the global Tcl namespace, such it will be automatically reclaimed after the request. The per-request cache uses the prefix "::__acs_cache".
Object ::acs::per_thread_cache (public)
::acs::LockfreeCache ::acs::per_thread_cache
Lockfree cache with per-thread live time of the entries. The per-thread caches use namespaced variables, which are not touched by the automatic per-request cleanup routines of the server. So, the values cached in one requests can be used by some later request in the same thread. The entries are kept in per-thread caches as long as the thread lives, there is so far no automatic mechanism to flush these. So, per-thread caches are typically used for values fetched from the database, which do not change, unless the server is restarted. Note: the usage of per-thread caches is only recommended for static values, which do no change during the life time of the server, since there is so far no automatic measure in place to the flush values in every thread.
Object ::acs::permission_cache (public)
::acs::KeyPartitionedCache ::acs::permission_cache
Permission cache. This partitioned cache manages partition caching. In case of bottlenecks, increase the number of partitions and the cache size.
- ::acs::permission_cache set -partition_key /integer/ /key/ /value/
- ::acs::permission_cache flush_pattern -partition_key /integer/ /pattern/
- ::acs::permission_cache init
- ::acs::permission_cache show_all
- ::acs::permission_cache flush_all ?-partition_key /value/?
- ::acs::permission_cache eval ?-partition_key /value/? ?-expires /value/? ?-timeout /value/? ?-per_request? /key/ /command/
- ::acs::permission_cache get ?-partition_key /value/? /key/
- ::acs::permission_cache flush ?-partition_key /value/? /key/
- ::acs::permission_cache flush_cache ?-partition_key /value/?
- Testcases:
- No testcase defined.
Object ::acs::site_nodes_cache (public)
::acs::KeyPartitionedCache ::acs::site_nodes_cache
Partitioned Cache for handling generic site node information. Site node caching is implemented using three different caches.
- See Also:
- ::acs::site_nodes_cache set -partition_key /integer/ /key/ /value/
- ::acs::site_nodes_cache flush_pattern -partition_key /integer/ /pattern/
- ::acs::site_nodes_cache init
- ::acs::site_nodes_cache show_all
- ::acs::site_nodes_cache flush_all ?-partition_key /value/?
- ::acs::site_nodes_cache eval ?-partition_key /value/? ?-expires /value/? ?-timeout /value/? ?-per_request? /key/ /command/
- ::acs::site_nodes_cache get ?-partition_key /value/? /key/
- ::acs::site_nodes_cache flush ?-partition_key /value/? /key/
- ::acs::site_nodes_cache flush_cache ?-partition_key /value/?
- Testcases:
- No testcase defined.
Object ::acs::site_nodes_children_cache (public)
::acs::KeyPartitionedCache ::acs::site_nodes_children_cache
Partitioned Cache for handling site node children. Site node caching is implemented using three different caches.
- See Also:
- ::acs::site_nodes_children_cache set -partition_key /integer/ /key/ /value/
- ::acs::site_nodes_children_cache flush_pattern -partition_key /integer/ /pattern/
- ::acs::site_nodes_children_cache init
- ::acs::site_nodes_children_cache show_all
- ::acs::site_nodes_children_cache flush_all ?-partition_key /value/?
- ::acs::site_nodes_children_cache eval ?-partition_key /value/? ?-expires /value/? ?-timeout /value/? ?-per_request? /key/ /command/
- ::acs::site_nodes_children_cache get ?-partition_key /value/? /key/
- ::acs::site_nodes_children_cache flush ?-partition_key /value/? /key/
- ::acs::site_nodes_children_cache flush_cache ?-partition_key /value/?
- Testcases:
- No testcase defined.
Object ::acs::site_nodes_id_cache (public)
::acs::HashKeyPartitionedCache ::acs::site_nodes_id_cache
Partitioned Cache for handling site node IDs. Site node caching is implemented using three different caches.
- See Also:
- ::acs::site_nodes_id_cache set -partition_key /value/ /key/ /value/
- ::acs::site_nodes_id_cache flush_pattern -partition_key /value/ /pattern/
- ::acs::site_nodes_id_cache init
- ::acs::site_nodes_id_cache show_all
- ::acs::site_nodes_id_cache flush_all ?-partition_key /value/?
- ::acs::site_nodes_id_cache eval ?-partition_key /value/? ?-expires /value/? ?-timeout /value/? ?-per_request? /key/ /command/
- ::acs::site_nodes_id_cache get ?-partition_key /value/? /key/
- ::acs::site_nodes_id_cache flush ?-partition_key /value/? /key/
- ::acs::site_nodes_id_cache flush_cache ?-partition_key /value/?
- Testcases:
- No testcase defined.
Object ::xo::xotcl_object_cache (public)
::acs::PartitionedCache ::xo::xotcl_object_cache
XOTcl Object cache. This partitioned cache is used for objects with numeric keys based on the acs_object_ids of OpenACS. Most of these objects refer to content items or content revisions. In case of bottlenecks, increase the number of partitions and the cache size.
- ::xo::xotcl_object_cache init
- ::xo::xotcl_object_cache show_all
- ::xo::xotcl_object_cache flush_all ?-partition_key /value/?
- ::xo::xotcl_object_cache set ?-partition_key /value/? /key/ /value/
- ::xo::xotcl_object_cache flush_pattern ?-partition_key /value/? /pattern/
- ::xo::xotcl_object_cache eval ?-partition_key /value/? ?-expires /value/? ?-timeout /value/? ?-per_request? /key/ /command/
- ::xo::xotcl_object_cache get ?-partition_key /value/? /key/
- ::xo::xotcl_object_cache flush ?-partition_key /value/? /key/
- ::xo::xotcl_object_cache flush_cache ?-partition_key /value/?
- Testcases:
- No testcase defined.
Object ::xo::xotcl_object_type_cache (public)
::acs::KeyPartitionedCache ::xo::xotcl_object_type_cache
XOTcl Object type cache. This partitioned cache is used for obtaining types for objects and for the lookup of item_ids via parent_id and name for the content repository. In case of bottlenecks, increase the number of partitions and the cache size.
- ::xo::xotcl_object_type_cache set -partition_key /integer/ /key/ /value/
- ::xo::xotcl_object_type_cache flush_pattern -partition_key /integer/ /pattern/
- ::xo::xotcl_object_type_cache init
- ::xo::xotcl_object_type_cache show_all
- ::xo::xotcl_object_type_cache flush_all ?-partition_key /value/?
- ::xo::xotcl_object_type_cache eval ?-partition_key /value/? ?-expires /value/? ?-timeout /value/? ?-per_request? /key/ /command/
- ::xo::xotcl_object_type_cache get ?-partition_key /value/? /key/
- ::xo::xotcl_object_type_cache flush ?-partition_key /value/? /key/
- ::xo::xotcl_object_type_cache flush_cache ?-partition_key /value/?
- Testcases:
- No testcase defined.
Object ::xo::xotcl_package_cache (public)
::acs::Cache ::xo::xotcl_package_cache
XOTcl Object package cache. This cache is used for package_ids of package names, for ids of root folders, and for certain properties of the database (has_ltree, has_hstore). In case of bottlenecks, increase the number of partitions and the cache size.
- ::xo::xotcl_package_cache show_all
- ::xo::xotcl_package_cache init
- ::xo::xotcl_package_cache set ?-partition_key /value/? /key/ /value/
- ::xo::xotcl_package_cache flush_pattern ?-partition_key /value/? /pattern/
- ::xo::xotcl_package_cache eval ?-partition_key /value/? ?-expires /value/? ?-timeout /value/? ?-per_request? /key/ /command/
- ::xo::xotcl_package_cache get ?-partition_key /value/? /key/
- ::xo::xotcl_package_cache flush ?-partition_key /value/? /key/
- ::xo::xotcl_package_cache flush_all
- ::xo::xotcl_package_cache flush_cache ?-partition_key /value/?
- Testcases:
- No testcase defined.
Object ::xowiki::cache (public)
::acs::KeyPartitionedCache ::xowiki::cache
Xowiki cache. This partitioned cache is used for various caching purposes for xowiki. It is used for example for caching includlets (when requested), or for full file names of xowiki::File objects. In case of bottlenecks, increase the number of partitions and the cache size.
- ::xowiki::cache set -partition_key /integer/ /key/ /value/
- ::xowiki::cache flush_pattern -partition_key /integer/ /pattern/
- ::xowiki::cache init
- ::xowiki::cache show_all
- ::xowiki::cache flush_all ?-partition_key /value/?
- ::xowiki::cache eval ?-partition_key /value/? ?-expires /value/? ?-timeout /value/? ?-per_request? /key/ /command/
- ::xowiki::cache get ?-partition_key /value/? /key/
- ::xowiki::cache flush ?-partition_key /value/? /key/
- ::xowiki::cache flush_cache ?-partition_key /value/?
- Testcases:
- No testcase defined.
acs::Cache method flush (public)
<instance of acs::Cache> flush [ -partition_key partition_key ] \ key
Flush a single entry in the cache
- Switches:
- -partition_key (optional)
- Parameters:
- key (required)
- Testcases:
- No testcase defined.
acs::Cache method flush_all (public)
<instance of acs::Cache> flush_all
Flush all contents of all (partitioned) caches. In the case of a base ::acs::Cache, it is identical to "flush_cash".
- Testcases:
- No testcase defined.
acs::Cache method flush_cache (public)
<instance of acs::Cache> flush_cache \ [ -partition_key partition_key ]
Flush all entries in a cache.
- Switches:
- -partition_key (optional)
- Testcases:
- No testcase defined.
acs::Cache method flush_pattern (public)
<instance of acs::Cache> flush_pattern \ [ -partition_key partition_key ] pattern
Flush in the cache a value based on a pattern operation. Use this function rarely, since on large caches (e.g. 100k entries or more) the glob operation will cause long locks, which should be avoided. The partitioned variants can help to reduce the lock times.
- Switches:
- -partition_key (optional)
- Parameters:
- pattern (required)
- Testcases:
- No testcase defined.
acs::Cache method get (public)
<instance of acs::Cache> get [ -partition_key partition_key ] \ key
The "get" method retrieves data from the cache. It should not be used for new applications due to likely race conditions, but legacy applications use this. As implementation, we use the AOLserver API emulation.
- Switches:
- -partition_key (optional)
- Parameters:
- key (required)
- Testcases:
- No testcase defined.
acs::Cache method init (public)
<instance of acs::Cache> init
If the name was not provided, use the object name as default.
- Testcases:
- No testcase defined.
acs::Cache method set (public)
<instance of acs::Cache> set [ -partition_key partition_key ] \ key value
Set a single value in the cache. This code uses ns_cache_eval to achieve this behavior, which is typically an AOLserver idiom and should be avoided.
- Switches:
- -partition_key (optional)
- Parameters:
- key (required)
- value (required)
- Testcases:
- No testcase defined.
acs::Cache method show_all (public)
<instance of acs::Cache> show_all
Log all cache keys to the system log. The primary usage is for debugging.
- Testcases:
- No testcase defined.
acs::HashKeyPartitionedCache method flush_pattern (public)
<instance of acs::HashKeyPartitionedCache> flush_pattern \ -partition_key partition_key pattern
flush just in all partitions
- Switches:
- -partition_key (required)
- Parameters:
- pattern (required)
- Testcases:
- No testcase defined.
acs::HashKeyPartitionedCache method set (public)
<instance of acs::HashKeyPartitionedCache> set \ -partition_key partition_key key value
Set a single value in the cache. It transforms the partition key into a hash value. This code uses ns_cache_eval to achieve this behavior, which is typically an AOLserver idiom and should be avoided.
- Switches:
- -partition_key (required)
- Parameters:
- key (required)
- value (required)
- Testcases:
- No testcase defined.
acs::KeyPartitionedCache method flush_pattern (public)
<instance of acs::KeyPartitionedCache> flush_pattern \ -partition_key partition_key pattern
Flush just in the determined partition
- Switches:
- -partition_key (required, integer)
- Parameters:
- pattern (required)
- Testcases:
- No testcase defined.
acs::KeyPartitionedCache method set (public)
<instance of acs::KeyPartitionedCache> set \ -partition_key partition_key key value
Set a single value in the cache. This code uses ns_cache_eval to achieve this behavior, which is typically an AOLserver idiom and should be avoided.
- Switches:
- -partition_key (required, integer)
- Parameters:
- key (required)
- value (required)
- Testcases:
- No testcase defined.
acs::LockfreeCache method eval (public)
<instance of acs::LockfreeCache> eval -key key \ [ -no_cache no_cache ] [ -no_empty ] \ [ -from_cache_indicator from_cache_indicator ] cmd
Use the "prefix" to determine whether the cache is per-thread or per-request.
- Switches:
- -key (required)
- key for caching, should start with package-key and a dot to avoid name clashes
- -no_cache (optional)
- list of returned values that should not be cached
- -no_empty (optional, defaults to
"false"
)- don't cache empty values. This flag is deprecated, one should use the no_cache flag instead.
- -from_cache_indicator (optional)
- variable name to indicate whether the returned value was from cache or not
- Parameters:
- cmd (required)
- command to be executed.
- Returns:
- return the last value set (don't use "return").
- Testcases:
- No testcase defined.
acs::LockfreeCache method flush (public)
<instance of acs::LockfreeCache> flush [ -pattern pattern ]
Flush a cache entry based on the pattern (which might be wild-card-free). Currently, the clusterwide flushing is omitted. We have the per-request cache (clusterwide operations do not make sense for this) and per-thread caching. The per-thread caching application have to be aware that flushing is happening only in one thread, so clusterwide operations will only start to make sense, when the all threads of a server would be cleaned.
- Switches:
- -pattern (optional, defaults to
"*"
)- Testcases:
- No testcase defined.
acs::LockfreeCache method get (public)
<instance of acs::LockfreeCache> get -key key var
Get entry with the provided key from this cache if it exists. In most cases, the "eval" method should be used.
- Switches:
- -key (required)
- cache key
- Parameters:
- var (required)
- Returns:
- return boolean value indicating success.
- Testcases:
- No testcase defined.
acs::PartitionedCache method flush_all (public)
<instance of acs::PartitionedCache> flush_all \ [ -partition_key partition_key ]
Flush all entries in all partitions of a cache.
- Switches:
- -partition_key (optional)
- Testcases:
- No testcase defined.
acs::PartitionedCache method init (public)
<instance of acs::PartitionedCache> init
If the name was not provided, use the object name as default for the cache name.
- Testcases:
- No testcase defined.
acs::PartitionedCache method show_all (public)
<instance of acs::PartitionedCache> show_all
Log all cache keys of all partitions to the system log. The primary usage is for debugging.
- Testcases:
- No testcase defined.
acs::disk_cache_eval (public)
acs::disk_cache_eval -call call -key key -id id
Evaluate an expression. When the acs-tcl.DiskCache parameter is set, cache the result on the disk. If a cache already exists, return the cached value.
- Switches:
- -call (required)
- a Tcl snippet executed in the caller scope.
- -key (required)
- a key used to name the directory where the disk cache will be stored.
- -id (required)
- an id used to name the file where the disk cache will be stored. The name will also depend on a hash of the actual snippet.
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- disk_cache
acs::disk_cache_flush (public)
acs::disk_cache_flush -key key -id id
Flushes the filesystem cache.
- Switches:
- -key (required)
- the key used to name the directory where the disk cache is stored.
- -id (required)
- the id used to name the file where the disk cache is stored.
- See Also:
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- disk_cache