Stefan Fuhrmann wrote on Fri, Mar 29, 2013 at 11:45:23 +0100:
> On Fri, Mar 29, 2013 at 7:19 AM, Daniel Shahaf <danie...@elego.de> wrote:
> 
> > I have a function that looks like this:
> >
> >     static svn_error_t *f(svn_fs_t *fs)
> >     {
> >       svn_fs_t *ft = svn_fs_open(fs);
> >       svn_fs_verify_root(ft, r42);
> >     }
> >
> > I'd like the 'verify' call to bypass any information that is already
> > cached:  I don't mind if it the 'verify' process caches information for
> > itself and then reads it back, but I don't want it to read information
> > that is _right now_ in the cache (due to FS, or some other handle to the
> > same filesystem in another thread) in lieu of parsing it, for itself,
> > from the revision file.
> >
> > What would be the best way to achieve this?  Do I set every cache in
> > ft->ffd->* to NULL or to a pointer to a newly-created, empty cache object?
> > Something else?
> >
> 
> Originally, I had planned to introduce cache namespaces in 1.9
> because all processes would share the same cache memory
> (so, svnadmin would then need use a separate key space).
> 
> But since you obviously needed right now, I added the feature
> now in 1462436 on /trunk. Since I changed your code from
> r1462413, please have a look at my commit to ensure that it
> still does what you intended.
> 

Looks good to me, many thanks!

One comment: the new docstring should forbid ":" from being used in the
namespace name.

Thanks again,

Daniel

> -- Stefan^2.
> 
> danie...@apache.org wrote on Fri, Mar 29, 2013 at 06:08:55 -0000:
> > > Author: danielsh
> > > Date: Fri Mar 29 06:08:55 2013
> > > New Revision: 1462413
> > >
> > > URL: http://svn.apache.org/r1462413
> > > Log:
> > > In the FSFS "paranoid verify" code, disable caching.  See within for a
> > question.
> > >
> > > * subversion/include/svn_fs.h
> > >   (SVN_FS_CONFIG_FSFS_CACHE_*): Add a note to maintainers who add such
> > symbols.
> > >
> > > * subversion/libsvn_fs_fs/fs_fs.c
> > >   (verify_as_revision_before_current_plus_plus):
> > >     Disable caches the API allows to disable, and add a question.
> > >
> > > Modified:
> > >     subversion/trunk/subversion/include/svn_fs.h
> > >     subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c
> > >
> > > Modified: subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c
> > > URL:
> > http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c?rev=1462413&r1=1462412&r2=1462413&view=diff
> > >
> > ==============================================================================
> > > --- subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c (original)
> > > +++ subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c Fri Mar 29 06:08:55
> > 2013
> > > @@ -8278,11 +8278,20 @@ verify_as_revision_before_current_plus_p
> > >    svn_fs_t *ft; /* fs++ == ft */
> > >    svn_fs_root_t *root;
> > >    fs_fs_data_t *ft_ffd;
> > > +  apr_hash_t *fs_config;
> > >
> > >    SVN_ERR_ASSERT(ffd->svn_fs_open_);
> > >
> > > +  fs_config = apr_hash_make(pool);
> > > +  svn_hash_sets(fs_config, SVN_FS_CONFIG_FSFS_CACHE_DELTAS, "0");
> > > +  svn_hash_sets(fs_config, SVN_FS_CONFIG_FSFS_CACHE_FULLTEXTS, "0");
> > > +  svn_hash_sets(fs_config, SVN_FS_CONFIG_FSFS_CACHE_REVPROPS, "0");
> > > +  /* ### TODO: are there any other intra-process caches that FS
> > populated
> > > +               and FT will read from?  Can we disable those (for FT at
> > least)?
> > > +   */
> > > +
> > >    SVN_ERR(ffd->svn_fs_open_(&ft, fs->path,
> > > -                            NULL /* ### TODO fs_config */,
> > > +                            fs_config,
> > >                              pool));
> > >    ft_ffd = ft->fsap_data;
> > >
> > >
> > >
> >
> 
> 
> 
> -- 
> *Join one of our free daily demo sessions on* *Scaling Subversion for the
> Enterprise <http://www.wandisco.com/training/webinars>*
> *
> 
> *

Reply via email to