Fwd: Re: [PATCH 6 of 6 RFC] radixlink: use C radixlink get implementation if available

Jun Wu quark at fb.com
Wed May 24 18:21:50 UTC 2017


I thought the perf numbers were sent. It shows up in my email client. But I
couldn't find it in the list. Here is a resend. Note: the numbers are not
final, with some improvement I believe "hg id" performance difference could
be controlled to about 20ms from obscache (when reading 6k markers). And I
think eventually we want a lazy "obsolete" set so we only read minimal
numbers of markers.

--- Begin forwarded message from Jun Wu ---
From: Jun Wu <quark at fb.com>
To: Jun Wu <quark at fb.com>
Cc: "mercurial-devel <mercurial-devel at mercurial-scm.org>, Martin von Zweigbergk" <martinvonz at google.com>
Date: Sun, 21 May 2017 18:49:24 -0700
Subject: Re: [PATCH 6 of 6 RFC] radixlink: use C radixlink get implementation if available

Perf numbers:

                | original  | radixlink pure | radixlink C | obscache
 ---------------------------------------------------------------------
   hg log -r .  | 1.05      | 0.42           | 0.31        | 1.05
   hg id        | 0.71      | 0.34           | 0.24        | 0.19

  (time in seconds, hg-committed, best of 20 runs)
 
As noted in the first patch, this effort is also useful to solve other hard
perf issues (linkrev included). So it's not only competing to obscache.

As for RFC, some error handling needs to be polished, and some obsstore
writing code path may need to be examined. I didn't run tests yet.

Excerpts from Jun Wu's message of 2017-05-21 18:31:13 -0700:
> # HG changeset patch
> # User Jun Wu <quark at fb.com>
> # Date 1495409961 25200
> #      Sun May 21 16:39:21 2017 -0700
> # Node ID b69ca9116b2cae29fd182c7bb545e59f16455d3f
> # Parent  6916f2eede1507237cffdb62db1baff8ded04ea5
> # Available At https://bitbucket.org/quark-zju/hg-draft 
> #              hg pull https://bitbucket.org/quark-zju/hg-draft  -r b69ca9116b2c
> radixlink: use C radixlink get implementation if available
> [...]
--- End forwarded message ---


More information about the Mercurial-devel mailing list