version | TRS Avg | TRS Std Dev | TRS Max | Total Reqs/sec | Transfer/sec(MB) |
---|---|---|---|---|---|
stable-3.1 | 57,33 | 8,26 | 80 | 456,95 | 4,34 |
stable-3.2 | 13,87 | 4,92 | 20 | 110,18 | 1,07 |
stable-3.2-libCache | 105,27 | 14,55 | 150 | 834,88 | 8,41 |
stable-3.1 vs stable-3.2 | 313,34% | 67,89% | 300,00% | 314,73% | 305,61% |
stable-3.2-libCache vs stable-3.2 | 658,98% | 195,73% | 650,00% | 657,74% | 685,98% |
stable-3.2-libCache vs stable-3.1 | 83,62% | 76,15% | 87,50% | 82,71% | 93,78% |
One can clearly see that in this setup using this library module outperforms both Gerrit 3.2 and 3.1 by factor of 6 and 2 correspondingly. The test script, detailed description and more results are available here.
Clone or link this plugin to the plugins directory of Gerrit‘s source tree, and then run bazel build on the plugin’s directory.
Example:
git clone --recursive https://gerrit.googlesource.com/gerrit cd plugins git clone "https://gerrit.googlesource.com/modules/cached-refdb" cd .. && bazel build plugins/cached-refdb
The output plugin jar is created in:
bazel-bin/plugins/cached-refdb/cached-refdb.jar
Copy the cached-refdb.jar into the ${GERRIT_SITE}/lib/
so that it is being loaded when the Gerrit instance is started. Note that the following configuration options need to be added
git config --file ${GERRIT_SITE}/etc/gerrit.config gerrit.installDbModule\ com.googlesource.gerrit.plugins.cachedrefdb.LibDbModule git config --file ${GERRIT_SITE}/etc/gerrit.config gerrit.installModule\ com.googlesource.gerrit.plugins.cachedrefdb.LibSysModule
By default cache can hold up to 1024
refs which will not be sufficient for any production site therefore one can configure it through the standard Gerrit cache configuration means e.g.
git config --file ${GERRIT_SITE}/etc/gerrit.config cache.ref_by_name.memoryLimit 10240
Note that library module requires the Gerrit instance restart in order to pick up the configuration changes.