Hi guys,

Saw my name mentioned in IRC regarding caching svn_*_t.

In our custom svn RPC server that exposes svn_repos_t and svn_fs_t, we cache svn_repos_t, svn_fs_root_t (for both revisions and txns).

I pulled some stats from our live server, here is the svn_repos_t cache:

Max=238
N=238
InUse=0
Lookups=209959446
CacheHits=209958192
CacheMisses=1254
CacheHitRatio=0.999994
Evictions=1016

ConstructionAge(
  N=238
  min=04:22:19.316771
  25%=1d07:05:44.297955
  50%=1d22:38:44.728577
  90%=6d05:40:09.023494
  95%=6d05:47:27.417303
  99%=7d05:34:32.500303
  max=7d06:48:08.218891)

LastUseAge(
  N=238
  min=0.000316
  25%=38:54.439219
  50%=38:54.843007
  90%=1d22:08:15.423188
  95%=1d22:09:46.925353
  99%=1d22:09:46.925165
  max=1d22:10:05.678702)

NumberServantsPerId(
  N=119
  min=1
  25%=1
  50%=1
  90%=2
  95%=3
  99%=10
  max=76)

So our oldest svn_repos_t is 7 days and 6 hours old, which is basically as old as the process, so we can cache them indefinitely. Actually, I size the cache to 2*number repos.

Blair

Reply via email to