H A D | cache-membuffer.c | 2 * cache-membuffer.c: in-memory caching for Subversion 41 #include "cache.h" 46 * a shared (per-process) singleton membuffer cache instance and shallow 48 * For data management, they all forward to the singleton membuffer cache. 50 * A membuffer cache consists of two parts: 53 * representation, prefixed by their full cache keys. There may be 55 * (currently two) cache levels. 57 * 2. A directory of cache entries. This is organized similar to CPU 60 * that given key. The result is a GROUP_SIZE+-way associative cache 69 * Superficially, cache level 829 read_lock_cache(svn_membuffer_t *cache) argument 852 write_lock_cache(svn_membuffer_t *cache, svn_boolean_t *success) argument 889 force_write_lock_cache(svn_membuffer_t *cache) argument 909 unlock_cache(svn_membuffer_t *cache, svn_error_t *err) argument 970 is_group_initialized(svn_membuffer_t *cache, apr_uint32_t group_index) argument 983 initialize_group(svn_membuffer_t *cache, apr_uint32_t group_index) argument 1015 allocate_spare_group(svn_membuffer_t *cache) argument 1046 free_spare_group(svn_membuffer_t *cache, entry_group_t *group) argument 1067 last_group_in_chain(svn_membuffer_t *cache, entry_group_t *group) argument 1080 get_group(svn_membuffer_t *cache, apr_uint32_t start_group_index, apr_uint32_t chain_index) argument 1095 get_entry(svn_membuffer_t *cache, apr_uint32_t idx) argument 1103 get_index(svn_membuffer_t *cache, entry_t *entry) argument 1115 get_cache_level(svn_membuffer_t *cache, entry_t *entry) argument 1126 chain_entry(svn_membuffer_t *cache, cache_level_t *level, entry_t *entry, apr_uint32_t idx) argument 1177 unchain_entry(svn_membuffer_t *cache, cache_level_t *level, entry_t *entry, apr_uint32_t idx) argument 1206 drop_entry(svn_membuffer_t *cache, entry_t *entry) argument 1297 insert_entry(svn_membuffer_t *cache, entry_t *entry) argument 1334 get_group_index(svn_membuffer_t **cache, const entry_key_t *key) argument 1354 let_entry_age(svn_membuffer_t *cache, entry_t *entry) argument 1397 find_entry(svn_membuffer_t *cache, apr_uint32_t group_index, const full_key_t *to_find, svn_boolean_t find_empty) argument 1557 move_entry(svn_membuffer_t *cache, entry_t *entry) argument 1596 promote_entry(svn_membuffer_t *cache, entry_t *entry) argument 1631 ensure_data_insertable_l2(svn_membuffer_t *cache, entry_t *to_fit_in) argument 1777 ensure_data_insertable_l1(svn_membuffer_t *cache, apr_size_t size) argument 1836 svn_cache__membuffer_cache_create(svn_membuffer_t **cache, apr_size_t total_size, apr_size_t directory_size, apr_size_t segment_count, svn_boolean_t thread_safe, svn_boolean_t allow_blocking_writes, apr_pool_t *pool) argument 2058 svn_cache__membuffer_clear(svn_membuffer_t *cache) argument 2119 entry_exists_internal(svn_membuffer_t *cache, apr_uint32_t group_index, const full_key_t *to_find, svn_boolean_t *found) argument 2132 entry_exists(svn_membuffer_t *cache, apr_uint32_t group_index, const full_key_t *to_find, svn_boolean_t *found) argument 2151 select_level(svn_membuffer_t *cache, apr_size_t size, apr_uint32_t priority) argument 2193 membuffer_cache_set_internal(svn_membuffer_t *cache, const full_key_t *to_find, apr_uint32_t group_index, char *buffer, apr_size_t item_size, apr_uint32_t priority, DEBUG_CACHE_MEMBUFFER_TAG_ARG apr_pool_t *scratch_pool) argument 2323 membuffer_cache_set(svn_membuffer_t *cache, const full_key_t *key, void *item, svn_cache__serialize_func_t serializer, apr_uint32_t priority, DEBUG_CACHE_MEMBUFFER_TAG_ARG apr_pool_t *scratch_pool) argument 2361 increment_hit_counters(svn_membuffer_t *cache, entry_t *entry) argument 2383 membuffer_cache_get_internal(svn_membuffer_t *cache, apr_uint32_t group_index, const full_key_t *to_find, char **buffer, apr_size_t *item_size, DEBUG_CACHE_MEMBUFFER_TAG_ARG apr_pool_t *result_pool) argument 2442 membuffer_cache_get(svn_membuffer_t *cache, const full_key_t *key, void **item, svn_cache__deserialize_func_t deserializer, DEBUG_CACHE_MEMBUFFER_TAG_ARG apr_pool_t *result_pool) argument 2481 membuffer_cache_has_key_internal(svn_membuffer_t *cache, apr_uint32_t group_index, const full_key_t *to_find, svn_boolean_t *found) argument 2511 membuffer_cache_has_key(svn_membuffer_t *cache, const full_key_t *key, svn_boolean_t *found) argument 2541 membuffer_cache_get_partial_internal(svn_membuffer_t *cache, apr_uint32_t group_index, const full_key_t *to_find, void **item, svn_boolean_t *found, svn_cache__partial_getter_func_t deserializer, void *baton, DEBUG_CACHE_MEMBUFFER_TAG_ARG apr_pool_t *result_pool) argument 2593 membuffer_cache_get_partial(svn_membuffer_t *cache, const full_key_t *key, void **item, svn_boolean_t *found, svn_cache__partial_getter_func_t deserializer, void *baton, DEBUG_CACHE_MEMBUFFER_TAG_ARG apr_pool_t *result_pool) argument 2624 membuffer_cache_set_partial_internal(svn_membuffer_t *cache, apr_uint32_t group_index, const full_key_t *to_find, svn_cache__partial_setter_func_t func, void *baton, DEBUG_CACHE_MEMBUFFER_TAG_ARG apr_pool_t *scratch_pool) argument 2735 membuffer_cache_set_partial(svn_membuffer_t *cache, const full_key_t *key, svn_cache__partial_setter_func_t func, void *baton, DEBUG_CACHE_MEMBUFFER_TAG_ARG apr_pool_t *scratch_pool) argument 2813 get_prefix_key(const svn_membuffer_cache_t *cache) argument 2826 combine_long_key(svn_membuffer_cache_t *cache, const void *key, apr_ssize_t key_len) argument 2865 combine_key(svn_membuffer_cache_t *cache, const void *key, apr_ssize_t key_len) argument 2929 svn_membuffer_cache_t *cache = cache_void; local 2969 svn_membuffer_cache_t *cache = cache_void; local 3001 svn_membuffer_cache_t *cache = cache_void; local 3050 svn_membuffer_cache_t *cache = cache_void; local 3084 svn_membuffer_cache_t *cache = cache_void; local 3111 svn_membuffer_cache_t *cache = cache_void; local 3159 svn_membuffer_cache_t *cache = cache_void; local 3201 svn_membuffer_cache_t *cache = cache_void; local 3220 svn_membuffer_cache_t *cache = cache_void; local 3238 svn_membuffer_cache_t *cache = cache_void; local 3259 svn_membuffer_cache_t *cache = cache_void; local 3281 svn_membuffer_cache_t *cache = cache_void; local 3363 svn_membuffer_cache_t *cache = apr_pcalloc(result_pool, sizeof(*cache)); local [all...] |