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),