This patch combines all patches from the performance branch that
implement the membuffer cache. To minimize the number of future 
conflicts, the cache-membuffer.c has been brought up to its final
state even if some functionality (partial get, max. cachable item)
is not going to be used right now. The vtable had to shortened.

Merged revisions from /branches/performance:
979193, 980118, 981087, 984973, 990541, 990568,
990572, 990600, 990759, 992899, 992911, 994956
Merged only partially (excluding all changes to cache-membuffer.c):
986605, 986832, 992904

* subversion/include/private/svn_cache.h
  (svn_cache__partial_getter_func_t): declare new callback function;
   only to allow for cache-membuffer.c to be as close to the final version
   as possible
  (svn_membuffer_t): declare opaque structure for membuffer caches
  (svn_cache__membuffer_cache_create, svn_cache__create_membuffer_cache): 
   declare new internal API functions

* subversion/libsvn_subr/cache-membuffer.c
  (GROUP_SIZE, KEY_SIZE, ITEM_ALIGNMENT, CACHE_SEGMENTS, NO_INDEX,
   NO_OFFSET, ALLOCATIONS_PER_POOL_CLEAR): new defines
  (entry_t, entry_group_t, membuffer_cache_t, svn_membuffer_cache_t): 
   new structures
  (ALIGN_VALUE, ALIGN_POINTER): new internal alignment macros
  (lock_cache, unlock_cache, get_entry, get_index, drop_entry,
   insert_entry, get_group_index, let_entry_age, find_entry, move_entry,
   ensure_data_insertable, membuffer_cache_set, membuffer_cache_get,
   svn_membuffer_cache_get_partial):
   new internal functions implementing the membuffer cache
  (combine_key, svn_membuffer_cache_get, svn_membuffer_cache_set,
   svn_membuffer_cache_iter, serialize_svn_stringbuf, 
   deserialize_svn_stringbuf): implement the svn_cache_t interface 
  (svn_membuffer_cache_get_partial, svn_membuffer_cache_is_cachable):
   implement the future svn_cache_t extensions 
  (svn_cache__membuffer_cache_create, svn_cache__create_membuffer_cache): 
   implement API functions
  (membuffer_cache_vtable): new static variable

git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/integrate-cache-membuffer@998649 13f79535-47bb-0310-9956-ffa450edef68
2 files changed