Mercurial > evolve
changeset 4664:a3f9f8d3bde5 stable
doc: clarify the status of configuration of the obshashrange protocol
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Thu, 06 Jun 2019 14:32:25 +0200 |
parents | a1a8adcd5155 |
children | 756db65030c6 |
files | hgext3rd/evolve/__init__.py |
diffstat | 1 files changed, 19 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext3rd/evolve/__init__.py Thu Jun 06 13:26:44 2019 +0200 +++ b/hgext3rd/evolve/__init__.py Thu Jun 06 14:32:25 2019 +0200 @@ -51,39 +51,38 @@ # re-exchange all markers every time. evolution.obsdiscovery = yes -Obsolescence Markers Discovery Experiment -========================================= +Obsolescence Markers Discovery +============================== -We are experimenting with a new protocol to discover common markers between -local and remote repositories. This experiment is still at an early stage but -is already raising better results than the previous version (when usable). +The evolve extension containts an experimental new protocol to discover common +markers between local and remote repositories. -"Large" repositories (hundreds of thousand) are currently unsupported. Some key -algorithm has a naive implementation with too aggressive caching, creating -memory consumption issue (this will get fixed). +"Large" repositories (hundreds of thousands) will take some time to warm the +necessary cache. Some key algorithm has a naive implementation that can result +in large memory or CPU Load. -Medium sized repositories works fine, but be prepared for a noticeable initial -cache filling. for the Mercurial repository, this is around 20 seconds - -The following config control the experiment:: +The following config controls the new protocol:: [experimental] # enable new discovery protocol - # (needed on both client and server) + # default to "yes" obshashrange = yes # control cache warming at the end of transaction - # yes: warm all caches at the end of each transaction, + # yes: warm all caches at the end of each transaction + # (recommended for server), # off: warm no caches at the end of transaction, - # auto: warm cache at the end of server side transaction (default). + # (no cache overhead during transaction, + # but cache will be warm from scratch on usage) + # auto: warm cache at the end of server side transaction(ie: push) + # (default). obshashrange.warm-cache = 'auto' - $ hg debugupdatecache +When you switch to using this protocol, we recommand that you explicitly warm +cache for your server side repositories.:: -It is recommended to enable the blackbox extension. It gathers useful data about -the experiment. It is shipped with Mercurial so no extra install is needed:: - $ hg debugupdatecache + $ hg debugupdatecache It is recommended to enable the blackbox extension. It gathers useful data about the experiment. It is shipped with Mercurial so no extra install is needed:: @@ -104,7 +103,7 @@ # ensuring no large repository will get affected. obshashrange.max-revs = 100000 # default is None -For very large repositories. it is currently recommended to disable obsmarkers +For very large repositories, it might be useful to disable obsmarkers discovery (Make sure you follow release announcement to know when you can turn it back on)::