You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by Apache subversion Wiki <co...@subversion.apache.org> on 2012/12/18 23:24:06 UTC

[Subversion Wiki] Update of "InRepoAuthz" by BenReser

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Subversion Wiki" for change notification.

The "InRepoAuthz" page has been changed by BenReser:
http://wiki.apache.org/subversion/InRepoAuthz?action=diff&rev1=8&rev2=9

Comment:
Update performance section to include results of testing.

  
  === Performance ===
  
- Until this is implemented on an experimental branch performance will not be clear.  However, in the case where the Authz file is in the same repo as the repo which it is protecting we should be able to use the repository connection for both retrieving the Authz file and the actions of the client, which should minimize the overhead.  Server side caches will also aid with performance and if the data is already cached in memory should result in similar performance to a file system hosted Authz file which would likely be cached by the OS in memory.
+ This has been implemented on the ^/subversion/branches/in-repo-authz branch.  At current no optimization has been made to use the same repos object for reading the authz file and for servicing the request since at least in the DAV case separate httpd modules are handling authz and servicing the request.  
  
- However, as with all features it will carry some degree of overhead.
+ Testing has shown very tiny decreases in performance when using the authz configuration stored in the repo.  The following test results were conducted against a repo containing an authz file that had 1MB of random data in it with 1k changed every rev for 98 revs after the initial rev and then a simple authz config committed in revision 100.  Timings were taking from executing svn-bench null-list against the repo 10,000 times.
+ 
+ ||'''test'''||'''trunk@1423201'''||'''in-repo-authz@1423201'''||
+ ||httpd AuthzSVNAccessFile repos relative URL||n/a||5m43.718s||
+ ||httpd AuthzSVNAccessFile absolute URL||n/a||5m43.872s||
+ ||httpd AuthzSVNAccessFile absolute OS path||5m40.697s||5m41.442s||
+ ||httpd AuthzSVNAccessFile relative OS path||5m39.892s||5m40.889s||
+ ||httpd AuthzSVNReposRelativeAccessFile repos relative URL||n/a||5m41.919s||
+ ||httpd AuthzSVNReposRelativeAccessFile absolute URL||n/a||5m41.805s||
+ ||httpd AuthzSVNReposRelativeAccessFile absolute OS path||5m39.252s||5m40.966s||
+ ||httpd AuthzSVNReposRelativeAccessFile relative OS path||5m39.811s||5m40.257s||
+ ||svnserve repos relative URL||n/a||4m17.670s||
+ ||svnserve absolute URL||n/a||4m17.994s||
+ ||svnserve absolute OS path||4m10.292s||4m11.170s||
+ ||svnserve relative OS path||4m10.514s||4m12.479s||
  
  === What this is not ===