Subject: [bug#41720] [PATCH] store: Use buffered I/O for all protocol writes

From: Lars-Dominik Braun <[email-masked]>
Date: Mon, 8 Jun 2020 08:42:28 +0200

Hi Ludo,

> Nice, though the slowdown on Unix-domain sockets is annoying given that
> it’s the primary transport.  Are the 10% significant and stable over
> multiple runs?
I don’t want to blind your eyes with meaningless statistics here, but let’s do
this properly then. So for `guix environment guix -- true` with 10 trials these
are the results:

---snip---
$ ministat -A -c 99 before_ssh after_ssh
x before_ssh
+ after_ssh
    N           Min           Max        Median           Avg        Stddev
x  10          7.63        10.635       10.1585        9.9382    0.85517585
+  10         5.986         6.424        6.1755        6.1917    0.15398416
Difference at 99.0% confidence
        -3.7465 +/- 0.790815
        -37.698% +/- 5.0788%
        (Student's t, pooled s = 0.614425)

$ ministat -A -c 99 before_unix after_unix
x before_unix
+ after_unix
    N           Min           Max        Median           Avg        Stddev
x  10         1.528         1.624        1.5445        1.5636   0.035842867
+  10         1.576         1.701        1.6145        1.6229   0.037869513
Difference at 99.0% confidence
        0.0593 +/- 0.0474548
        3.79253% +/- 3.08989%
        (Student's t, pooled s = 0.0368701)
---snap---

And the same for `guix environment --ad-hoc r-learnr`:

---snip---
$ ministat -A -c 99 before_ssh after_ssh
x before_ssh
+ after_ssh
    N           Min           Max        Median           Avg        Stddev
x  10        20.104        21.629        21.082       21.0115    0.45142472
+  10        16.082        16.713        16.292       16.3416    0.25018224
Difference at 99.0% confidence
        -4.6699 +/- 0.469719
        -22.2254% +/- 1.86734%
        (Student's t, pooled s = 0.364949)

$ ministat -A -c 99 before_unix after_unix
x before_unix
+ after_unix
    N           Min           Max        Median           Avg        Stddev
x  10        11.322        11.529        11.401       11.4127   0.062467858
+  10        11.249        11.469       11.3515        11.368   0.078689262
No difference proven at 99.0% confidence
---snap---

> Otherwise the patch LGTM as long as it doesn’t introduce any test suite
> regressions.
Yes, it passes the test suite.

Lars