• last updated 9 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Use "ns_baseunit", when available for size calculation of parititoned caches

Generalize ::acs::try_cache (such it can be use not only for "...cache eval..."

  1. … 3 more files in changeset.
reduce further redundancy

  1. … 1 more file in changeset.
Don't complain when flushing per-thread cache without content

perform also sitewide flushes for urspace based site-node cache

  1. … 1 more file in changeset.
Refactored and streamlined of cluster infrastructure

- base the API new new cluster infrastructure (including memoize-flush, server_cluster_peer_hosts, etc.)

- improved handling for multiple IP addresses and IPv6

- removed assumptions of local vs. global network drivers

- server_cluster_httpget_from_peers not used anymore

  1. … 5 more files in changeset.
Provide a default timeout of 5m to all ns_cache besed caches created via the acs-cache infrastructure

Background: in case, a db entry is to be cached, where the db query

does not finish (e.g. runs into a deadlock), subsequent attempts for

the same value will be blocked as well by the mutex protecting the

entry to be cached. Therefore, later requests to this entry might queue

up in the server. By providing a timeout, this mutex will terminate

latest when the timeout is reached.

The default value for the timeout is set to 5m. In case a certain

cache might issue requests running longer than this, the cache has

to be configured with a larger timeout value.

Improving ad_parameter_cache:

- added handling of cachingmode "none"

- added implementation via "nsv_dict" (cluster aware)

- execute parameter callbacks cluster-wide

- version number bumped to 5.10.1d4

  1. … 3 more files in changeset.
let the per_thread_cache behave like the per_connection_cache when the NaviServer configuration valriable "cachingmode" is set to none

make code slightly more regular

  1. … 1 more file in changeset.
added method "get" for "LockfreeCache" (somewhat similar to nsv_get)

improved wording in comment

Prefer 'namespace which' over 'info commands', as it is faster (on local tests, around 2x) and returns a single value. Many thanks to Nathan Coulter.

  1. … 58 more files in changeset.
improve spelling

  1. … 5 more files in changeset.
Implement a flush method for ::acs::acs::LockfreeCache and use it to reimplement permission::permission_thread_cache_flush

This fixes ad_proc_permission_grant_and_revoke test case

  1. … 1 more file in changeset.
improve comments

  1. … 1 more file in changeset.
acs::per_request_cache: standardize per-request caching

- added per-request cache verfsy similar to acs::per_thread_cache

- use per-request-cache on several occasions

- bump version number of acs-tcl to 5.10.0d35

  1. … 9 more files in changeset.
use dot instead of colon as separator between package name and cache key to ease readability

  1. … 10 more files in changeset.
acs::per_thread_cache: standardize per-thread caching

- added per-thread cache based on namespaced Tcl variables.

- use per-thread-cache on several occasions

- bump version number of acs-tcl to 5.10.0d34

  1. … 14 more files in changeset.
no need to provide separate hash method, which hinders actually for the hashkey partitioned cache

provide a clearer name for method (flush_pattern_in_all_partitions) and make it protected

new method PartitionedCache->flush_all_pattern to iterate over all partiations to perform a glob-style deletion from the cache

Added HashKeyPartitionedCache:

This is type of cache is like a "KeyPartitionedCache" but works as

well with strings as keys while the "KeyPartitionedCache" requires numeric

keys.

  1. … 2 more files in changeset.
improve comment

use "partition_name" rather than "partions_name" as variable name

CVS: ----------------------------------------------------------------------

reduced locking on parititoned chaches: return always the same Tcl_Obj as cache name rather than creating it always new, which prohibit caching in the Tcl_Obj

fix scope for variable scope

Trim whitespace

add debugging aids

provide both, more legacy and more finegrained functionality for cache management

  1. … 1 more file in changeset.
Improve naming: rename TreePartitionedCahe to KeyPartitionedCache

  1. … 4 more files in changeset.