Modified: subversion/trunk/subversion/libsvn_fs_fs/caching.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/caching.c?rev=1096927&r1=1096926&r2=1096927&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_fs_fs/caching.c (original) +++ subversion/trunk/subversion/libsvn_fs_fs/caching.c Tue Apr 26 22:01:40 2011 @@ -29,6 +29,7 @@ #include "svn_config.h" #include "svn_cmdline.h" +#include "svn_cache_config.h" #include "svn_private_config.h" @@ -167,9 +168,9 @@ svn_fs_fs__initialize_caches(svn_fs_t *f * id_private_t + 3 strings for value, and the cache_entry); the * default pool size is 8192, so about a hundred should fit * comfortably. */ - if (svn_fs__get_global_membuffer_cache()) + if (svn_cache__get_global_membuffer_cache()) SVN_ERR(svn_cache__create_membuffer_cache(&(ffd->rev_root_id_cache), - svn_fs__get_global_membuffer_cache(), + svn_cache__get_global_membuffer_cache(), svn_fs_fs__serialize_id, svn_fs_fs__deserialize_id, sizeof(svn_revnum_t), @@ -190,9 +191,9 @@ svn_fs_fs__initialize_caches(svn_fs_t *f /* Rough estimate: revision DAG nodes have size around 320 bytes, so * let's put 16 on a page. */ - if (svn_fs__get_global_membuffer_cache()) + if (svn_cache__get_global_membuffer_cache()) SVN_ERR(svn_cache__create_membuffer_cache(&(ffd->rev_node_cache), - svn_fs__get_global_membuffer_cache(), + svn_cache__get_global_membuffer_cache(), svn_fs_fs__dag_serialize, svn_fs_fs__dag_deserialize, APR_HASH_KEY_STRING, @@ -212,9 +213,9 @@ svn_fs_fs__initialize_caches(svn_fs_t *f SVN_ERR(init_callbacks(ffd->rev_node_cache, fs, no_handler, pool)); /* Very rough estimate: 1K per directory. */ - if (svn_fs__get_global_membuffer_cache()) + if (svn_cache__get_global_membuffer_cache()) SVN_ERR(svn_cache__create_membuffer_cache(&(ffd->dir_cache), - svn_fs__get_global_membuffer_cache(), + svn_cache__get_global_membuffer_cache(), svn_fs_fs__serialize_dir_entries, svn_fs_fs__deserialize_dir_entries, APR_HASH_KEY_STRING, @@ -235,9 +236,9 @@ svn_fs_fs__initialize_caches(svn_fs_t *f /* Only 16 bytes per entry (a revision number + the corresponding offset). Since we want ~8k pages, that means 512 entries per page. */ - if (svn_fs__get_global_membuffer_cache()) + if (svn_cache__get_global_membuffer_cache()) SVN_ERR(svn_cache__create_membuffer_cache(&(ffd->packed_offset_cache), - svn_fs__get_global_membuffer_cache(), + svn_cache__get_global_membuffer_cache(), svn_fs_fs__serialize_manifest, svn_fs_fs__deserialize_manifest, sizeof(svn_revnum_t), @@ -268,11 +269,11 @@ svn_fs_fs__initialize_caches(svn_fs_t *f (char *)NULL), fs->pool)); } - else if (svn_fs__get_global_membuffer_cache() && - svn_fs_get_cache_config()->cache_fulltexts) + else if (svn_cache__get_global_membuffer_cache() && + svn_get_cache_config()->cache_fulltexts) { SVN_ERR(svn_cache__create_membuffer_cache(&(ffd->fulltext_cache), - svn_fs__get_global_membuffer_cache(), + svn_cache__get_global_membuffer_cache(), /* Values are svn_string_t */ NULL, NULL, APR_HASH_KEY_STRING, @@ -288,12 +289,12 @@ svn_fs_fs__initialize_caches(svn_fs_t *f SVN_ERR(init_callbacks(ffd->fulltext_cache, fs, no_handler, pool)); /* initialize txdelta window cache, if that has been enabled */ - if (svn_fs__get_global_membuffer_cache() && - svn_fs_get_cache_config()->cache_txdeltas) + if (svn_cache__get_global_membuffer_cache() && + svn_get_cache_config()->cache_txdeltas) { SVN_ERR(svn_cache__create_membuffer_cache (&(ffd->txdelta_window_cache), - svn_fs__get_global_membuffer_cache(), + svn_cache__get_global_membuffer_cache(), svn_fs_fs__serialize_txdelta_window, svn_fs_fs__deserialize_txdelta_window, APR_HASH_KEY_STRING, @@ -308,10 +309,10 @@ svn_fs_fs__initialize_caches(svn_fs_t *f SVN_ERR(init_callbacks(ffd->txdelta_window_cache, fs, no_handler, pool)); /* initialize node revision cache, if caching has been enabled */ - if (svn_fs__get_global_membuffer_cache()) + if (svn_cache__get_global_membuffer_cache()) { SVN_ERR(svn_cache__create_membuffer_cache(&(ffd->node_revision_cache), - svn_fs__get_global_membuffer_cache(), + svn_cache__get_global_membuffer_cache(), svn_fs_fs__serialize_node_revision, svn_fs_fs__deserialize_node_revision, APR_HASH_KEY_STRING, @@ -406,9 +407,9 @@ svn_fs_fs__initialize_txn_caches(svn_fs_ } /* create a txn-local directory cache */ - if (svn_fs__get_global_membuffer_cache()) + if (svn_cache__get_global_membuffer_cache()) SVN_ERR(svn_cache__create_membuffer_cache(&(ffd->txn_dir_cache), - svn_fs__get_global_membuffer_cache(), + svn_cache__get_global_membuffer_cache(), svn_fs_fs__serialize_dir_entries, svn_fs_fs__deserialize_dir_entries, APR_HASH_KEY_STRING,
Modified: subversion/trunk/subversion/libsvn_ra/ra_loader.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_ra/ra_loader.c?rev=1096927&r1=1096926&r2=1096927&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_ra/ra_loader.c (original) +++ subversion/trunk/subversion/libsvn_ra/ra_loader.c Tue Apr 26 22:01:40 2011 @@ -44,7 +44,6 @@ #include "svn_path.h" #include "svn_dso.h" #include "svn_config.h" -#include "svn_fs.h" #include "ra_loader.h" #include "private/svn_ra_private.h" @@ -250,17 +249,6 @@ check_ra_version(const svn_version_t *ra svn_error_t *svn_ra_initialize(apr_pool_t *pool) { - /* Per default, disable large expensive FS caching on the client side. - * We can still chose a different size for that cache later in the - * startup phase, e.g. after reading config files. If that does not - * happen until the first FSFS repository get opened, low initialization - * overhead caches will be used for the most time-critical structures. - * - * This is only relevant for FSFS over ra_local. */ - svn_fs_cache_config_t settings = *svn_fs_get_cache_config(); - settings.cache_size = 0x0; - svn_fs_set_cache_config(&settings); - return SVN_NO_ERROR; } Copied: subversion/trunk/subversion/libsvn_subr/svn_cache_config.c (from r1095795, subversion/trunk/subversion/libsvn_fs_util/caching.c) URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/svn_cache_config.c?p2=subversion/trunk/subversion/libsvn_subr/svn_cache_config.c&p1=subversion/trunk/subversion/libsvn_fs_util/caching.c&r1=1095795&r2=1096927&rev=1096927&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_fs_util/caching.c (original) +++ subversion/trunk/subversion/libsvn_subr/svn_cache_config.c Tue Apr 26 22:01:40 2011 @@ -1,4 +1,4 @@ -/* caching.c : in-memory caching +/* svn_cache_config.c : configuration of internal caches * * ==================================================================== * Licensed to the Apache Software Foundation (ASF) under one @@ -22,15 +22,14 @@ #include <apr_atomic.h> -#include "svn_fs.h" -#include "private/svn_fs_private.h" +#include "svn_cache_config.h" #include "private/svn_cache.h" #include "svn_pools.h" /* The cache settings as a process-wide singleton. */ -static svn_fs_cache_config_t cache_settings = +static svn_cache_config_t cache_settings = { /* default configuration: * @@ -77,8 +76,8 @@ static svn_fs_cache_config_t cache_setti }; /* Get the current FSFS cache configuration. */ -const svn_fs_cache_config_t * -svn_fs_get_cache_config(void) +const svn_cache_config_t * +svn_get_cache_config(void) { return &cache_settings; } @@ -89,7 +88,7 @@ svn_fs_get_cache_config(void) * could not be created for some reason. */ svn_membuffer_t * -svn_fs__get_global_membuffer_cache(void) +svn_cache__get_global_membuffer_cache(void) { static svn_membuffer_t * volatile cache = NULL; @@ -132,7 +131,7 @@ svn_fs__get_global_membuffer_cache(void) &new_cache, (apr_size_t)cache_size, (apr_size_t)(cache_size / 16), - ! svn_fs_get_cache_config()->single_threaded, + ! svn_get_cache_config()->single_threaded, pool); /* Some error occured. Most likely it's an OOM error but we don't @@ -170,7 +169,7 @@ svn_fs__get_global_membuffer_cache(void) } void -svn_fs_set_cache_config(const svn_fs_cache_config_t *settings) +svn_set_cache_config(const svn_cache_config_t *settings) { cache_settings = *settings; } Modified: subversion/trunk/subversion/svn/main.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/main.c?rev=1096927&r1=1096926&r2=1096927&view=diff ============================================================================== --- subversion/trunk/subversion/svn/main.c (original) +++ subversion/trunk/subversion/svn/main.c Tue Apr 26 22:01:40 2011 @@ -52,6 +52,7 @@ #include "svn_auth.h" #include "svn_hash.h" #include "cl.h" +#include "svn_cache_config.h" #include "private/svn_wc_private.h" #include "private/svn_cmdline_private.h" @@ -1449,6 +1450,7 @@ main(int argc, const char *argv[]) svn_error_t *err; apr_allocator_t *allocator; apr_pool_t *pool; + svn_cache_config_t settings; int opt_id; apr_getopt_t *os; svn_cl__opt_state_t opt_state = { 0, { 0 } }; @@ -1496,6 +1498,17 @@ main(int argc, const char *argv[]) } #endif + /* Per default, disable large expensive FS caching on the client side. + * We can still chose a different size for that cache later in the + * startup phase, e.g. after reading config files. If that does not + * happen until the first FSFS repository get opened, low initialization + * overhead caches will be used for the most time-critical structures. + * + * This is only relevant for FSFS over ra_local. */ + settings = *svn_get_cache_config(); + settings.cache_size = 0x0; + svn_set_cache_config(&settings); + /* Initialize the RA library. */ err = svn_ra_initialize(pool); if (err) Modified: subversion/trunk/subversion/svnadmin/main.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svnadmin/main.c?rev=1096927&r1=1096926&r2=1096927&view=diff ============================================================================== --- subversion/trunk/subversion/svnadmin/main.c (original) +++ subversion/trunk/subversion/svnadmin/main.c Tue Apr 26 22:01:40 2011 @@ -35,7 +35,7 @@ #include "svn_path.h" #include "svn_config.h" #include "svn_repos.h" -#include "svn_fs.h" +#include "svn_cache_config.h" #include "svn_version.h" #include "svn_props.h" #include "svn_time.h" @@ -1651,7 +1651,7 @@ main(int argc, const char *argv[]) /* Initialize opt_state. */ opt_state.start_revision.kind = svn_opt_revision_unspecified; opt_state.end_revision.kind = svn_opt_revision_unspecified; - opt_state.memory_cache_size = svn_fs_get_cache_config()->cache_size; + opt_state.memory_cache_size = svn_get_cache_config()->cache_size; opt_state.config_options = apr_array_make(pool, 0, sizeof(svn_cmdline__config_argument_t*)); @@ -1943,14 +1943,14 @@ main(int argc, const char *argv[]) /* Configure FSFS caches for maximum efficiency with svnadmin. * Also, apply the respective command line parameters, if given. */ { - svn_fs_cache_config_t settings = *svn_fs_get_cache_config(); + svn_cache_config_t settings = *svn_get_cache_config(); settings.cache_size = opt_state.memory_cache_size; settings.cache_fulltexts = subcommand->cmd_func == subcommand_load; settings.cache_txdeltas = TRUE; settings.single_threaded = TRUE; - svn_fs_set_cache_config(&settings); + svn_set_cache_config(&settings); } /* Run the subcommand. */ Modified: subversion/trunk/subversion/svnserve/main.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svnserve/main.c?rev=1096927&r1=1096926&r2=1096927&view=diff ============================================================================== --- subversion/trunk/subversion/svnserve/main.c (original) +++ subversion/trunk/subversion/svnserve/main.c Tue Apr 26 22:01:40 2011 @@ -45,7 +45,7 @@ #include "svn_opt.h" #include "svn_repos.h" #include "svn_string.h" -#include "svn_fs.h" +#include "svn_cache_config.h" #include "svn_version.h" #include "svn_io.h" @@ -838,7 +838,7 @@ int main(int argc, const char *argv[]) * keep the per-process caches smaller than the default. * Also, apply the respective command line parameters, if given. */ { - svn_fs_cache_config_t settings = *svn_fs_get_cache_config(); + svn_cache_config_t settings = *svn_get_cache_config(); if (params.memory_cache_size != -1) settings.cache_size = params.memory_cache_size; @@ -861,7 +861,7 @@ int main(int argc, const char *argv[]) #endif } - svn_fs_set_cache_config(&settings); + svn_set_cache_config(&settings); } while (1)
