ExternalIdCache: Use partial loader by default
We've been running the partial loader on googlesource.com for about 10 days now. Compared to the full loader, it is between 10x and 30x faster. Latency distribution of full reloads: - p50: 23s - p90: 57s - p95: 61s - p99.9 65s Latency distribution of partial reloads: - p50: 0.744s - p90: 2.8s - p95: 3.4s - p99.9 4.0s We have Gerrit instances with a large number of accounts (for example, one particular instance has 200.000 accounts). These are included in the fleet-wide metrics. The latency distribution for parallel reads does include loading a previously cached state from disk into memory, which is most likely a driver for the long tail. However, open-source installations would see this problem only upon startup of the Gerrit instance, so it's less of a concern. Generally, we can expect numbers on open-source instances to be even better if all Git data is on local disk (SSD). Change-Id: Ia92250c32482d94643cc9aae6264b16571e65c79
This commit is contained in:
@@ -879,7 +879,7 @@ problematic.
|
||||
previously cached state. This applies modifications based on the Git
|
||||
diff and is almost always faster.
|
||||
`cache.external_ids_map.enablePartialReloads` turns this behavior on
|
||||
or off. The default is `false`.
|
||||
or off. The default is `true`.
|
||||
|
||||
cache `"git_tags"`::
|
||||
+
|
||||
|
@@ -100,7 +100,7 @@ public class ExternalIdCacheLoader extends CacheLoader<ObjectId, AllExternalIds>
|
||||
.setCumulative()
|
||||
.setUnit(Units.MILLISECONDS));
|
||||
this.enablePartialReloads =
|
||||
config.getBoolean("cache", ExternalIdCacheImpl.CACHE_NAME, "enablePartialReloads", false);
|
||||
config.getBoolean("cache", ExternalIdCacheImpl.CACHE_NAME, "enablePartialReloads", true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Reference in New Issue
Block a user