On Mon, Mar 15, 2010 at 9:56 PM, Johan Corveleyn <jcor...@gmail.com> wrote: > On Mon, Mar 15, 2010 at 6:18 PM, Ivan Zhakov <i...@visualsvn.com> wrote: >> On Mon, Mar 15, 2010 at 17:01, C. Michael Pilato <cmpil...@collab.net> wrote: >>> Philip Martin wrote: >>>> Johan Corveleyn <jcor...@gmail.com> writes: >>>> >>>>> On Tue, Mar 9, 2010 at 8:04 PM, Julian Foad <julian.f...@wandisco.com> >>>>> wrote: >>>>>> On Sun, 2010-03-07, Stefan Fuhrman wrote: >>>>>>> Speed up input stream processing in config parser and >>>>>>> others that read single bytes from a stream. >>>>>>> >>>>>>> * subversion/libsvn_subr/subst.c >>>>>>> (translated_stream_read): Add an optimized code path >>>>>>> for single byte read requests. >>>>>>> >>>>>>> Patch by: Stefan Fuhrmann <stefanfuhrmann{_AT_}alice-dsl.de> >>>>>> Committed in r921057. >>>>> Any chance this could be backported to 1.6.x? >>>>> >>>>> This seems like a nice performance improvement with low impact on the >>>>> rest of the code. Would be nice if this could be put out there as >>>>> quickly as possible (i.e. not having to wait for 1.7) for users to >>>>> enjoy ... >>>> >>>> Can you quantify the improvement? I don't suppose a GUI like >>>> TortoiseSVN reads config files very often. Any improvement is lost in >>>> the noise when I run the command line client on Linux. It doesn't >>>> change the number of system calls reported by 'strace -c'. >>> >>> Do our servers (mod_dav_svn and svnserve) parse authz files using this >>> codepath? >> Yes, they use the same code. >> >>> How often? On a per-connection basis? >> mod_dav_svn caches authz file per connection. > > I just tested with svnserve x fsfs. For every connection it uses this > code to read: > - fsfs.conf (from within find_repos -> svn_repos_open) > - svnserve.conf and authz (from within find_repos -> load_configs). > There's no caching whatsoever, these files are read everytime a client > requests something. > > I have no idea of the real performance impact, but maybe I'll do some > measurements later tonight ...
Hm, I can't find a measurable performance difference for reading these conf files on the server. That is, with a default fsfs.conf, svnserve.conf, and a quite small authz file. Putting an apr_time_now at the start and the end of svn_config__parse_file in config_file.c yields exactly the same time at the start and the end. Both with and without Stefan Fuhrmann's change. I guess this was to be expected, since both fsfs.conf and svnserve.conf are quite small. For authz I also used a nearly empty config (just containing the default comments and one *=r rule). Maybe someone should try this with a very large authz file to see if it makes a difference? Johan