Author: stefan2
Date: Mon Apr 29 16:25:02 2013
New Revision: 1477176
URL: http://svn.apache.org/r1477176
Log:
On the fsfs-format7 branch: Define a policy on what priorities should
be assigned to our caches and ajust priorities accordingly
* subversion/libsvn_fs_fs/caching.c
(svn_fs_fs__initialize_caches): document policy and adjust priorities
Modified:
subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/caching.c
Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/caching.c
URL:
http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/caching.c?rev=1477176&r1=1477175&r2=1477176&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/caching.c
(original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/caching.c Mon Apr
29 16:25:02 2013
@@ -377,6 +377,15 @@ svn_fs_fs__initialize_caches(svn_fs_t *f
membuffer = svn_cache__get_global_membuffer_cache();
+ /* General rules for assigning cache priorities:
+ *
+ * - Data that can be reconstructed from other elements has low prio
+ * (e.g. fulltexts, directories etc.)
+ * - Index data required to find any of the other data has high prio
+ * (e.g. noderevs, L2P and P2L index pages)
+ * - everthing else should use default prio
+ */
+
/* Make the cache for revision roots. For the vast majority of
* commands, this is only going to contain a few entries (svnadmin
* dump/verify is an exception here), so to reduce overhead let's
@@ -408,7 +417,7 @@ svn_fs_fs__initialize_caches(svn_fs_t *f
svn_fs_fs__dag_deserialize,
APR_HASH_KEY_STRING,
apr_pstrcat(pool, prefix, "DAG", (char *)NULL),
- 0,
+ SVN_CACHE__MEMBUFFER_LOW_PRIORITY,
fs,
no_handler,
fs->pool));
@@ -425,7 +434,7 @@ svn_fs_fs__initialize_caches(svn_fs_t *f
svn_fs_fs__deserialize_dir_entries,
sizeof(pair_cache_key_t),
apr_pstrcat(pool, prefix, "DIR", (char *)NULL),
- 0,
+ SVN_CACHE__MEMBUFFER_LOW_PRIORITY,
fs,
no_handler,
fs->pool));
@@ -469,7 +478,7 @@ svn_fs_fs__initialize_caches(svn_fs_t *f
svn_fs_fs__deserialize_rep_header,
sizeof(pair_cache_key_t),
apr_pstrcat(pool, prefix, "REPHEADER", (char *)NULL),
- 0,
+ SVN_CACHE__MEMBUFFER_HIGH_PRIORITY,
fs,
no_handler,
fs->pool));
@@ -513,7 +522,7 @@ svn_fs_fs__initialize_caches(svn_fs_t *f
sizeof(pair_cache_key_t),
apr_pstrcat(pool, prefix, "PROP",
(char *)NULL),
- 0,
+ SVN_CACHE__MEMBUFFER_LOW_PRIORITY,
fs,
no_handler,
fs->pool));
@@ -637,7 +646,7 @@ svn_fs_fs__initialize_caches(svn_fs_t *f
sizeof(pair_cache_key_t),
apr_pstrcat(pool, prefix, "CHANGESCNT",
(char *)NULL),
- SVN_CACHE__MEMBUFFER_HIGH_PRIORITY,
+ 0,
fs,
no_handler,
fs->pool));
@@ -690,7 +699,7 @@ svn_fs_fs__initialize_caches(svn_fs_t *f
sizeof(svn_fs_fs__page_cache_key_t),
apr_pstrcat(pool, prefix, "P2L_PAGE",
(char *)NULL),
- 0,
+ SVN_CACHE__MEMBUFFER_HIGH_PRIORITY,
fs,
no_handler,
fs->pool));