You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2014/05/16 21:39:16 UTC
svn commit: r1595322 - in /subversion/trunk/subversion/libsvn_fs_x: ./
cached_data.c caching.c
Author: stefan2
Date: Fri May 16 19:39:16 2014
New Revision: 1595322
URL: http://svn.apache.org/r1595322
Log:
Sync'ing FSX with FSFS:
Merge r1547134,1575431,1575436,1580391 from /subversion/libsvn_fs_fs
into subversion/libsvn_fs_x. Conflicts were due to structural
differences between FSX and FSFS.
This ports addresses a number of cache config edge cases.
Modified:
subversion/trunk/subversion/libsvn_fs_x/ (props changed)
subversion/trunk/subversion/libsvn_fs_x/cached_data.c
subversion/trunk/subversion/libsvn_fs_x/caching.c
Propchange: subversion/trunk/subversion/libsvn_fs_x/
------------------------------------------------------------------------------
Merged /subversion/trunk/subversion/libsvn_fs_fs:r1547134,1575431,1575436,1580391
Modified: subversion/trunk/subversion/libsvn_fs_x/cached_data.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_x/cached_data.c?rev=1595322&r1=1595321&r2=1595322&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_x/cached_data.c (original)
+++ subversion/trunk/subversion/libsvn_fs_x/cached_data.c Fri May 16 19:39:16 2014
@@ -1245,7 +1245,9 @@ read_delta_window(svn_txdelta_window_t *
/* invoke the 'block-read' feature for non-txn data.
However, don't do that if we are in the middle of some representation,
because the block is unlikely to contain other data. */
- if (rs->chunk_index == 0 && svn_fs_x__is_revision(rs->rep_id.change_set))
+ if ( rs->chunk_index == 0
+ && svn_fs_x__is_revision(rs->rep_id.change_set)
+ && rs->window_cache)
{
SVN_ERR(block_read(NULL, rs->file->fs, &rs->rep_id, rs->file->file,
pool, pool));
Modified: subversion/trunk/subversion/libsvn_fs_x/caching.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_x/caching.c?rev=1595322&r1=1595321&r2=1595322&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_fs_x/caching.c (original)
+++ subversion/trunk/subversion/libsvn_fs_x/caching.c Fri May 16 19:39:16 2014
@@ -454,7 +454,7 @@ svn_fs_x__initialize_caches(svn_fs_t *fs
svn_fs_x__deserialize_dir_entries,
sizeof(svn_fs_x__id_part_t),
apr_pstrcat(pool, prefix, "DIR", SVN_VA_NULL),
- SVN_CACHE__MEMBUFFER_LOW_PRIORITY,
+ SVN_CACHE__MEMBUFFER_DEFAULT_PRIORITY,
fs,
no_handler,
fs->pool));
@@ -479,7 +479,7 @@ svn_fs_x__initialize_caches(svn_fs_t *fs
SVN_ERR(create_cache(&(ffd->node_revision_cache),
NULL,
membuffer,
- 0, 0, /* Do not use inprocess cache */
+ 32, 32, /* ~200 byte / entry; 1k entries total */
svn_fs_x__serialize_node_revision,
svn_fs_x__deserialize_node_revision,
sizeof(pair_cache_key_t),
@@ -493,12 +493,12 @@ svn_fs_x__initialize_caches(svn_fs_t *fs
SVN_ERR(create_cache(&(ffd->rep_header_cache),
NULL,
membuffer,
- 0, 0, /* Do not use inprocess cache */
+ 1, 1000, /* ~8 bytes / entry; 1k entries total */
svn_fs_x__serialize_rep_header,
svn_fs_x__deserialize_rep_header,
sizeof(representation_cache_key_t),
apr_pstrcat(pool, prefix, "REPHEADER", SVN_VA_NULL),
- SVN_CACHE__MEMBUFFER_HIGH_PRIORITY,
+ SVN_CACHE__MEMBUFFER_DEFAULT_PRIORITY,
fs,
no_handler,
fs->pool));
@@ -507,7 +507,7 @@ svn_fs_x__initialize_caches(svn_fs_t *fs
SVN_ERR(create_cache(&(ffd->changes_cache),
NULL,
membuffer,
- 0, 0, /* Do not use inprocess cache */
+ 1, 8, /* 1k / entry; 8 entries total, rarely used */
svn_fs_x__serialize_changes,
svn_fs_x__deserialize_changes,
sizeof(svn_revnum_t),
@@ -528,7 +528,7 @@ svn_fs_x__initialize_caches(svn_fs_t *fs
NULL, NULL,
sizeof(pair_cache_key_t),
apr_pstrcat(pool, prefix, "TEXT", SVN_VA_NULL),
- SVN_CACHE__MEMBUFFER_LOW_PRIORITY,
+ SVN_CACHE__MEMBUFFER_DEFAULT_PRIORITY,
fs,
no_handler,
fs->pool));
@@ -542,7 +542,7 @@ svn_fs_x__initialize_caches(svn_fs_t *fs
sizeof(pair_cache_key_t),
apr_pstrcat(pool, prefix, "PROP",
SVN_VA_NULL),
- SVN_CACHE__MEMBUFFER_LOW_PRIORITY,
+ SVN_CACHE__MEMBUFFER_DEFAULT_PRIORITY,
fs,
no_handler,
fs->pool));
@@ -595,7 +595,7 @@ svn_fs_x__initialize_caches(svn_fs_t *fs
sizeof(pair_cache_key_t),
apr_pstrcat(pool, prefix, "REVPROP",
SVN_VA_NULL),
- SVN_CACHE__MEMBUFFER_HIGH_PRIORITY,
+ SVN_CACHE__MEMBUFFER_DEFAULT_PRIORITY,
fs,
no_handler,
fs->pool));
@@ -617,7 +617,7 @@ svn_fs_x__initialize_caches(svn_fs_t *fs
sizeof(window_cache_key_t),
apr_pstrcat(pool, prefix, "TXDELTA_WINDOW",
SVN_VA_NULL),
- 0,
+ SVN_CACHE__MEMBUFFER_LOW_PRIORITY,
fs,
no_handler,
fs->pool));
@@ -645,7 +645,7 @@ svn_fs_x__initialize_caches(svn_fs_t *fs
SVN_ERR(create_cache(&(ffd->noderevs_container_cache),
NULL,
membuffer,
- 0, 0, /* Do not use inprocess cache */
+ 16, 4, /* Important, largish objects */
svn_fs_x__serialize_noderevs_container,
svn_fs_x__deserialize_noderevs_container,
sizeof(pair_cache_key_t),
@@ -685,7 +685,8 @@ svn_fs_x__initialize_caches(svn_fs_t *fs
SVN_ERR(create_cache(&(ffd->l2p_header_cache),
NULL,
membuffer,
- 0, 0, /* Do not use inprocess cache */
+ 64, 16, /* entry size varies but we must cover
+ a reasonable number of revisions (1k) */
svn_fs_x__serialize_l2p_header,
svn_fs_x__deserialize_l2p_header,
sizeof(pair_cache_key_t),
@@ -698,7 +699,8 @@ svn_fs_x__initialize_caches(svn_fs_t *fs
SVN_ERR(create_cache(&(ffd->l2p_page_cache),
NULL,
membuffer,
- 0, 0, /* Do not use inprocess cache */
+ 64, 16, /* entry size varies but we must cover
+ a reasonable number of revisions (1k) */
svn_fs_x__serialize_l2p_page,
svn_fs_x__deserialize_l2p_page,
sizeof(svn_fs_x__page_cache_key_t),
@@ -711,7 +713,7 @@ svn_fs_x__initialize_caches(svn_fs_t *fs
SVN_ERR(create_cache(&(ffd->p2l_header_cache),
NULL,
membuffer,
- 0, 0, /* Do not use inprocess cache */
+ 4, 1, /* Large entries. Rarely used. */
svn_fs_x__serialize_p2l_header,
svn_fs_x__deserialize_p2l_header,
sizeof(pair_cache_key_t),
@@ -724,7 +726,7 @@ svn_fs_x__initialize_caches(svn_fs_t *fs
SVN_ERR(create_cache(&(ffd->p2l_page_cache),
NULL,
membuffer,
- 0, 0, /* Do not use inprocess cache */
+ 4, 16, /* Variably sized entries. Rarely used. */
svn_fs_x__serialize_p2l_page,
svn_fs_x__deserialize_p2l_page,
sizeof(svn_fs_x__page_cache_key_t),