1. 23 Apr, 2018 1 commit
  2. 20 Apr, 2018 6 commits
  3. 19 Apr, 2018 4 commits
  4. 13 Apr, 2018 1 commit
  5. 10 Apr, 2018 1 commit
  6. 09 Apr, 2018 2 commits
  7. 06 Apr, 2018 1 commit
  8. 05 Apr, 2018 9 commits
    • Kirill Smelkov's avatar
      Merge tag 'v1.9' into t · c1b8ffda
      Kirill Smelkov authored
      NEO 1.9
      
      * tag 'v1.9':
        Release version 1.9
        master: fix resumption of backup replication (internal or not)
        master: fix/simplify generation of TID
        master: fix possible failure when reading data in a backup cluster with replicas
      c1b8ffda
    • Kirill Smelkov's avatar
      . · 23894124
      Kirill Smelkov authored
      23894124
    • Kirill Smelkov's avatar
      . · d1082f90
      Kirill Smelkov authored
      d1082f90
    • Kirill Smelkov's avatar
      . · a771b9f1
      Kirill Smelkov authored
      a771b9f1
    • Kirill Smelkov's avatar
      . · 4b02cadb
      Kirill Smelkov authored
      4b02cadb
    • Kirill Smelkov's avatar
      . · 75fc3420
      Kirill Smelkov authored
      75fc3420
    • Kirill Smelkov's avatar
      . · 72a4a428
      Kirill Smelkov authored
      72a4a428
    • Kirill Smelkov's avatar
      . · b26cddf9
      Kirill Smelkov authored
      b26cddf9
    • Kirill Smelkov's avatar
      . · 102d46ac
      Kirill Smelkov authored
      102d46ac
  9. 04 Apr, 2018 4 commits
  10. 27 Mar, 2018 1 commit
    • Kirill Smelkov's avatar
      X neo/storage: Open backends by raw string, not URL · 4000df14
      Kirill Smelkov authored
      For both current backends (SQLite and fs1) there is currently a problem
      of working with UTF-8 filenames if opening is handled via urls. For
      example if backend string is
      
      	sqlite://neo.sqlite·P1-1
      
      after parsing as URL and further reassembled as string it will be
      
      	neo.sqlite%C2%B7P1-1
      
      with then errors like
      
      	neo.sqlite%C2%B7P1-1: open: unable to open database file
      
      showing.
      
      Since storage backends primarily work with local files it makes sense
      not to play raw url reassembly games and just pass raw strings to
      backends for open.
      
      SQLite uri processing is still possible, via e.g.
      
      	sqlite://file:filepath?param=value,...
      
      See
      
      	https://www.sqlite.org/c3ref/open.html	and
      	https://www.sqlite.org/uri.html
      
      for details.
      4000df14
  11. 26 Mar, 2018 5 commits
    • Kirill Smelkov's avatar
      X tcpu: Don't depend on running tests with cwd = .../go/neo/t/ · cf1f7c24
      Kirill Smelkov authored
      Previously when the code was trying to load testdata/ files with
      different CWD it was failing with something like
      
      	testdata/zlib/wczdata: no such file or directory.
      
      Fix it by constructing testdata path relative to __file__ of
      corresponding source.
      cf1f7c24
    • Kirill Smelkov's avatar
      X neotest/info-local: Fix disk display in presence of bind-mounts · d35a2fdf
      Kirill Smelkov authored
      When source device is mounted multiple times, findmnt reports it e.g.
      this way:
      
      	|-/mnt/SLAPOS                         /dev/md2     ext4       rw,relatime,stripe=256,data=ordered
      	|-/srv/slapgrid                       /dev/md2[/srv/slapgrid]
      	                                                   ext4       rw,relatime,stripe=256,data=ordered
      	|-/opt/slapgrid                       /dev/md2[/opt/slapgrid]
      	                                                   ext4       rw,relatime,stripe=256,data=ordered
      	`-/opt/slapos                         /dev/md2[/opt/slapos]
      	                                                   ext4       rw,relatime,stripe=256,data=ordered
      
      and then it breaks:
      
      	$ ./neotest info-local
      	date:   Mon, 26 Mar 2018 21:52:08 +0200
      	xnode:  slapuser5@sd-102959.dedibox.fr (2001:67c:1254:e:49::1 (+ 17·ipv6) 10.0.31.249 (+ 17·ipv4))
      	uname:  Linux vifibcloud-onlinenet-hosting-002 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2+deb8u3 (2016-07-02) x86_64 GNU/Linux
      	cpu:    Intel(R) Xeon(R) CPU D-1531 @ 2.20GHz
      	cpu/[0-11]/freq: intel_pstate/powersave [0.80GHz - 2.70GHz]
      	cpu/[0-11]/idle: acpi_idle/menu: POLL·0/0 C1·1/2 C2·41/82 # elat/tres µs
      	WARNING: cpu: frequency not fixed - benchmark timings won't be stable
      	WARNING: cpu: C-state exit-latency is max 41μs - benchmark timings won't be stable
      	WARNING: cpu: (up to that might be adding to networked and IPC request-reply latency)
      	realpath: '/dev/md2[/srv/slapgrid]': No such file or directory
      
      Fix it by telling findmnt to not include '[/dir]' (-v option).
      
      While we are here also add -u which means "Do not truncate text in columns"
      which is also good to have on a safe side.
      d35a2fdf
    • Kirill Smelkov's avatar
      . · 463d9f67
      Kirill Smelkov authored
      463d9f67
    • Kirill Smelkov's avatar
      X deco: ZEO4 & ZEO5 timings · aa443365
      Kirill Smelkov authored
      aa443365
    • Kirill Smelkov's avatar
      X go/zodb/zeo: Add support for protocols preceding ZEO5 · 60c4ddbe
      Kirill Smelkov authored
      In particular try to support ZEO4:
      
      - during handshake we now first wait for remote server to announce its
        preferred protocol, and only then send the version we select to use.
        This is the procedure original ZEO server-client do.
      
      - teach rpc.call to decode exceptions not only for how ZEO5 encodes them
        (marking via 2 flag in "async" field), but also on how ZEO4 and
        earlier encode them: via replying with (exc_type, exc_inst) and
        expecting client to dynamically check exc_type is a subtype of
        Exception.
      
      - handle other protocol differences - e.g. ZEO5 returns last_tid on
        register(), while earlier versions return nothing there.
      60c4ddbe
  12. 21 Mar, 2018 4 commits
  13. 19 Mar, 2018 1 commit
    • Kirill Smelkov's avatar
      X z6001: localhost timings · 70c63882
      Kirill Smelkov authored
      Similarly to deco, neo1 and rio, neo/go/sqlite is speed-up a bit. And
      everything else close to noise.
      
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      
      $ benchstat -split node,cluster,dataset 20180308-z6001-ffixed-noc_C1\(3µs\)-zwrk1s.txt 20180319-z6001.txt
      
      name                                           old pystone/s            new pystone/s            delta
      node:z6001
      pystone                                                      115k ± 1%                113k ± 1%   -1.35%  (p=0.016 n=5+5)
      
      name                                           old time/op              new time/op              delta
      node:z6001
      crc32/py/4K                                                5.12µs ± 2%              5.13µs ± 3%     ~     (p=1.000 n=5+5)
      crc32/go/4K                                                1.72µs ± 0%              1.76µs ± 5%     ~     (p=0.794 n=4+5)
      sha1/py/4K                                                 14.7µs ± 1%              14.7µs ± 1%     ~     (p=0.841 n=5+5)
      sha1/go/4K                                                 10.3µs ± 0%              12.7µs ±30%     ~     (p=0.079 n=4+5)
      unzlib/py/wczdata                                          36.5µs ± 1%              39.3µs ± 9%     ~     (p=0.548 n=5+5)
      unzlib/go/wczdata                                          31.2µs ± 0%              31.2µs ± 0%     ~     (p=0.222 n=5+5)
      unzlib/py/prod1-avg                                        18.6µs ± 1%              19.6µs ±11%     ~     (p=0.730 n=4+5)
      unzlib/go/prod1-avg                                        9.87µs ± 1%              9.88µs ± 1%     ~     (p=1.000 n=5+5)
      disk/randread/direct/4K-min                                 127µs ± 1%               126µs ± 1%     ~     (p=0.270 n=5+5)
      disk/randread/direct/4K-avg                                 168µs ± 0%               168µs ± 1%     ~     (p=0.151 n=5+5)
      disk/randread/pagecache/4K-min                              788ns ± 1%               784ns ± 1%     ~     (p=0.270 n=5+5)
      disk/randread/pagecache/4K-avg                             1.50µs ± 3%              1.47µs ±10%     ~     (p=0.635 n=5+5)
      
      name                                           old time/object          new time/object          delta
      cluster:z6001 dataset:wczblk1-8
      fs1-zhash.py                                               37.6µs ± 1%              38.1µs ± 2%     ~     (p=0.111 n=5+4)
      fs1-zhash.go                                               5.98µs ± 2%              6.28µs ±19%     ~     (p=0.794 n=5+5)
      fs1-zhash.go+prefetch128                                   7.34µs ± 5%              7.20µs ± 4%     ~     (p=0.603 n=5+5)
      zeo/py/fs1-zhash.py                                         590µs ± 4%               591µs ± 8%     ~     (p=0.421 n=5+5)
      zeo/py/fs1-zhash.go                                         201µs ± 3%               201µs ± 2%     ~     (p=0.841 n=5+5)
      zeo/py/fs1-zhash.go+prefetch128                             102µs ± 2%               102µs ± 1%     ~     (p=0.310 n=5+5)
      neo/py(!log)/sqlite-zhash.py                                482µs ± 4%               475µs ± 2%     ~     (p=0.690 n=5+5)
      neo/py(!log)/sqlite-zhash.go                                222µs ± 1%               228µs ± 1%   +2.67%  (p=0.008 n=5+5)
      neo/py(!log)/sqlite-zhash.go+prefetch128                    179µs ± 2%               180µs ± 2%     ~     (p=0.421 n=5+5)
      neo/py(!log)/sql-zhash.py                                   529µs ± 4%               526µs ± 4%     ~     (p=0.886 n=4+4)
      neo/py(!log)/sql-zhash.go                                   275µs ± 1%               281µs ± 3%     ~     (p=0.087 n=5+5)
      neo/py(!log)/sql-zhash.go+prefetch128                       237µs ± 5%               241µs ± 4%     ~     (p=0.222 n=5+5)
      neo/go/fs1-zhash.py                                         342µs ± 2%               337µs ±12%     ~     (p=0.595 n=5+5)
      neo/go/fs1-zhash.go                                        91.2µs ± 2%              96.1µs ± 9%     ~     (p=0.151 n=5+5)
      neo/go/fs1-zhash.go+prefetch128                            36.6µs ± 2%              35.9µs ± 6%     ~     (p=0.127 n=5+5)
      neo/go/fs1(!sha1)-zhash.go(!sha1)                          68.8µs ± 3%              68.6µs ± 5%     ~     (p=0.841 n=5+5)
      neo/go/fs1(!sha1)-zhash.go+prefetch128(!sha1)              26.5µs ± 3%              26.6µs ± 5%     ~     (p=0.897 n=5+5)
      neo/go/sqlite-zhash.py                                      373µs ± 7%               350µs ± 7%     ~     (p=0.151 n=5+5)
      neo/go/sqlite-zhash.go                                      143µs ± 3%               117µs ± 2%  -18.18%  (p=0.008 n=5+5)
      neo/go/sqlite-zhash.go+prefetch128                         39.0µs ± 5%              39.4µs ± 4%     ~     (p=0.635 n=5+5)
      neo/go/sqlite-zhash.go(!sha1)                               133µs ± 5%               107µs ± 1%  -19.65%  (p=0.008 n=5+5)
      neo/go/sqlite-zhash.go+prefetch128(!sha1)                  36.6µs ± 5%              37.2µs ± 5%     ~     (p=0.452 n=5+5)
      cluster:z6001 dataset:prod1-1024
      fs1-zhash.py                                               30.5µs ± 2%              30.6µs ± 2%     ~     (p=0.794 n=5+4)
      fs1-zhash.go                                               4.60µs ± 0%              4.56µs ± 1%     ~     (p=0.333 n=4+5)
      fs1-zhash.go+prefetch128                                   5.44µs ± 3%              5.24µs ± 5%     ~     (p=0.143 n=5+5)
      zeo/py/fs1-zhash.py                                         555µs ± 2%               545µs ±10%     ~     (p=0.841 n=5+5)
      zeo/py/fs1-zhash.go                                         169µs ± 1%               173µs ± 1%   +2.54%  (p=0.008 n=5+5)
      zeo/py/fs1-zhash.go+prefetch128                            88.4µs ± 2%              88.5µs ± 1%     ~     (p=0.952 n=5+5)
      neo/py(!log)/sqlite-zhash.py                                467µs ± 4%               472µs ± 7%     ~     (p=1.000 n=5+5)
      neo/py(!log)/sqlite-zhash.go                                205µs ± 0%               209µs ± 0%   +2.27%  (p=0.008 n=5+5)
      neo/py(!log)/sqlite-zhash.go+prefetch128                    161µs ± 1%               163µs ± 0%   +1.09%  (p=0.008 n=5+5)
      neo/py(!log)/sql-zhash.py                                   518µs ± 2%               581µs ±40%     ~     (p=0.556 n=4+5)
      neo/py(!log)/sql-zhash.go                                   267µs ± 1%               266µs ± 1%     ~     (p=1.000 n=5+5)
      neo/py(!log)/sql-zhash.go+prefetch128                       226µs ± 9%               226µs ± 9%     ~     (p=0.690 n=5+5)
      neo/go/fs1-zhash.py                                         320µs ±11%               311µs ±10%     ~     (p=0.841 n=5+5)
      neo/go/fs1-zhash.go                                        76.3µs ± 3%              75.5µs ± 4%     ~     (p=0.738 n=5+5)
      neo/go/fs1-zhash.go+prefetch128                            23.6µs ± 2%              24.0µs ± 2%     ~     (p=0.151 n=5+5)
      neo/go/fs1(!sha1)-zhash.go(!sha1)                          64.8µs ± 2%              64.9µs ± 3%     ~     (p=0.841 n=5+5)
      neo/go/fs1(!sha1)-zhash.go+prefetch128(!sha1)              20.5µs ± 3%              20.9µs ± 2%     ~     (p=0.222 n=5+5)
      neo/go/sqlite-zhash.py                                      378µs ± 4%               325µs ± 8%  -14.16%  (p=0.008 n=5+5)
      neo/go/sqlite-zhash.go                                      129µs ± 3%               104µs ± 1%  -18.91%  (p=0.008 n=5+5)
      neo/go/sqlite-zhash.go+prefetch128                         34.8µs ± 2%              34.4µs ± 3%     ~     (p=0.548 n=5+5)
      neo/go/sqlite-zhash.go(!sha1)                               125µs ± 5%               101µs ± 6%  -19.41%  (p=0.008 n=5+5)
      neo/go/sqlite-zhash.go+prefetch128(!sha1)                  34.5µs ± 1%              34.8µs ± 1%   +1.04%  (p=0.040 n=5+5)
      
      name                                           old req/s                new req/s                delta
      cluster:z6001 dataset:wczblk1-8
      fs1-zwrk.go·1                                                231k ± 1%                228k ± 6%     ~     (p=1.000 n=5+5)
      fs1-zwrk.go·2                                                446k ± 2%                446k ± 1%     ~     (p=0.841 n=5+5)
      fs1-zwrk.go·3                                                659k ± 2%                661k ± 2%     ~     (p=0.690 n=5+5)
      fs1-zwrk.go·4                                                876k ± 2%                877k ± 1%     ~     (p=0.841 n=5+5)
      fs1-zwrk.go·8                                               1.75M ± 1%               1.78M ± 1%     ~     (p=0.056 n=5+5)
      fs1-zwrk.go·12                                              2.53M ± 2%               2.55M ± 3%     ~     (p=0.548 n=5+5)
      fs1-zwrk.go·16                                              2.91M ± 1%               2.92M ± 1%     ~     (p=0.841 n=5+5)
      zeo/py/fs1-zwrk.go·1                                        5.14k ± 1%               5.09k ± 1%     ~     (p=0.056 n=5+5)
      zeo/py/fs1-zwrk.go·2                                        6.35k ± 0%               6.38k ± 2%     ~     (p=0.905 n=4+5)
      zeo/py/fs1-zwrk.go·3                                        7.08k ± 0%               6.88k ± 0%   -2.84%  (p=0.008 n=5+5)
      zeo/py/fs1-zwrk.go·4                                        7.19k ± 2%               7.12k ± 1%     ~     (p=0.095 n=5+5)
      zeo/py/fs1-zwrk.go·8                                        7.54k ± 2%               7.45k ± 2%     ~     (p=0.095 n=5+5)
      zeo/py/fs1-zwrk.go·12                                       7.57k ± 2%               7.65k ± 2%     ~     (p=0.310 n=5+5)
      zeo/py/fs1-zwrk.go·16                                       7.66k ± 2%               7.64k ± 2%     ~     (p=0.690 n=5+5)
      neo/py(!log)/sqlite-zwrk.go·1                               4.54k ± 1%               4.51k ± 2%     ~     (p=0.690 n=5+5)
      neo/py(!log)/sqlite-zwrk.go·2                               5.68k ± 2%               5.54k ± 0%   -2.48%  (p=0.008 n=5+5)
      neo/py(!log)/sqlite-zwrk.go·3                               5.70k ± 2%               5.52k ± 1%   -3.16%  (p=0.008 n=5+5)
      neo/py(!log)/sqlite-zwrk.go·4                               5.65k ± 1%               5.49k ± 0%   -2.87%  (p=0.008 n=5+5)
      neo/py(!log)/sqlite-zwrk.go·8                               5.64k ± 1%               5.59k ± 2%     ~     (p=0.421 n=5+5)
      neo/py(!log)/sqlite-zwrk.go·12                              5.60k ± 6%               5.39k ± 7%     ~     (p=0.095 n=5+5)
      neo/py(!log)/sqlite-zwrk.go·16                              5.55k ± 4%               5.56k ± 0%     ~     (p=0.190 n=5+4)
      neo/py(!log)/sql-zwrk.go·1                                  3.62k ± 3%               3.58k ± 3%     ~     (p=0.421 n=5+5)
      neo/py(!log)/sql-zwrk.go·2                                  4.26k ± 4%               4.25k ± 1%     ~     (p=0.310 n=5+5)
      neo/py(!log)/sql-zwrk.go·3                                  4.29k ± 0%               4.09k ± 5%   -4.61%  (p=0.008 n=5+5)
      neo/py(!log)/sql-zwrk.go·4                                  4.21k ± 4%               4.26k ± 1%     ~     (p=0.421 n=5+5)
      neo/py(!log)/sql-zwrk.go·8                                  4.20k ± 1%               4.22k ± 1%     ~     (p=0.421 n=5+5)
      neo/py(!log)/sql-zwrk.go·12                                 4.19k ± 3%               4.18k ± 4%     ~     (p=1.000 n=5+5)
      neo/py(!log)/sql-zwrk.go·16                                 4.21k ± 1%               4.03k ± 4%     ~     (p=0.056 n=5+5)
      neo/go/fs1-zwrk.go·1                                        11.1k ± 3%               11.1k ± 5%     ~     (p=0.690 n=5+5)
      neo/go/fs1-zwrk.go·2                                        23.0k ± 1%               23.0k ± 1%     ~     (p=0.548 n=5+5)
      neo/go/fs1-zwrk.go·3                                        32.2k ± 0%               32.2k ± 1%     ~     (p=1.000 n=5+5)
      neo/go/fs1-zwrk.go·4                                        43.5k ± 0%               43.4k ± 0%     ~     (p=0.548 n=5+5)
      neo/go/fs1-zwrk.go·8                                        78.3k ± 0%               77.9k ± 0%   -0.48%  (p=0.016 n=5+5)
      neo/go/fs1-zwrk.go·12                                       92.5k ± 0%               92.2k ± 0%     ~     (p=0.095 n=5+5)
      neo/go/fs1-zwrk.go·16                                        102k ± 0%                102k ± 0%     ~     (p=0.056 n=5+5)
      neo/go/fs1(!sha1)-zwrk.go(!sha1)·1                          15.0k ± 6%               15.3k ± 7%     ~     (p=0.310 n=5+5)
      neo/go/fs1(!sha1)-zwrk.go(!sha1)·2                          31.8k ± 1%               31.9k ± 0%     ~     (p=0.841 n=5+5)
      neo/go/fs1(!sha1)-zwrk.go(!sha1)·3                          44.1k ± 0%               44.1k ± 0%     ~     (p=0.222 n=5+5)
      neo/go/fs1(!sha1)-zwrk.go(!sha1)·4                          57.9k ± 1%               57.9k ± 0%     ~     (p=0.841 n=5+5)
      neo/go/fs1(!sha1)-zwrk.go(!sha1)·8                           100k ± 0%                100k ± 0%     ~     (p=1.000 n=5+5)
      neo/go/fs1(!sha1)-zwrk.go(!sha1)·12                          116k ± 0%                116k ± 0%     ~     (p=0.841 n=5+5)
      neo/go/fs1(!sha1)-zwrk.go(!sha1)·16                          126k ± 0%                126k ± 0%     ~     (p=0.841 n=5+5)
      neo/go/sqlite-zwrk.go·1                                     7.20k ± 1%               8.71k ± 2%  +20.95%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go·2                                     13.7k ± 0%               17.0k ± 0%  +24.20%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go·3                                     20.0k ± 1%               24.7k ± 1%  +23.18%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go·4                                     25.7k ± 0%               31.5k ± 0%  +22.87%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go·8                                     45.3k ± 0%               54.1k ± 1%  +19.59%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go·12                                    56.4k ± 0%               63.1k ± 0%  +11.78%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go·16                                    58.2k ± 1%               63.7k ± 1%   +9.42%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go(!sha1)·1                              7.73k ± 1%               9.66k ± 2%  +24.99%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go(!sha1)·2                              14.7k ± 1%               18.7k ± 1%  +27.48%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go(!sha1)·3                              21.7k ± 0%               27.7k ± 0%  +27.80%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go(!sha1)·4                              28.2k ± 0%               35.3k ± 1%  +25.02%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go(!sha1)·8                              49.0k ± 0%               57.4k ± 0%  +17.18%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go(!sha1)·12                             60.5k ± 0%               67.6k ± 1%  +11.77%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go(!sha1)·16                             61.9k ± 0%               66.9k ± 1%   +8.09%  (p=0.008 n=5+5)
      cluster:z6001 dataset:prod1-1024
      fs1-zwrk.go·1                                                349k ± 1%                353k ± 0%   +1.37%  (p=0.016 n=5+4)
      fs1-zwrk.go·2                                                672k ± 1%                672k ± 3%     ~     (p=0.841 n=5+5)
      fs1-zwrk.go·3                                                982k ± 2%               1000k ± 3%     ~     (p=0.310 n=5+5)
      fs1-zwrk.go·4                                               1.29M ± 7%               1.31M ± 3%     ~     (p=0.548 n=5+5)
      fs1-zwrk.go·8                                               2.53M ± 3%               2.57M ± 2%     ~     (p=0.310 n=5+5)
      fs1-zwrk.go·12                                              3.05M ± 1%               3.07M ± 1%     ~     (p=0.310 n=5+5)
      fs1-zwrk.go·16                                              3.06M ± 1%               3.08M ± 1%     ~     (p=0.310 n=5+5)
      zeo/py/fs1-zwrk.go·1                                        6.13k ± 1%               6.06k ± 3%     ~     (p=0.151 n=5+5)
      zeo/py/fs1-zwrk.go·2                                        8.21k ± 2%               8.11k ± 2%     ~     (p=0.095 n=5+5)
      zeo/py/fs1-zwrk.go·3                                        9.03k ± 2%               8.85k ± 0%   -1.92%  (p=0.008 n=5+5)
      zeo/py/fs1-zwrk.go·4                                        9.37k ± 2%               9.21k ± 1%   -1.75%  (p=0.008 n=5+5)
      zeo/py/fs1-zwrk.go·8                                        9.85k ± 5%               9.72k ± 3%     ~     (p=0.548 n=5+5)
      zeo/py/fs1-zwrk.go·12                                       9.57k ± 9%               9.98k ± 0%     ~     (p=0.730 n=5+4)
      zeo/py/fs1-zwrk.go·16                                       10.3k ± 1%               10.0k ± 7%     ~     (p=0.095 n=5+5)
      neo/py(!log)/sqlite-zwrk.go·1                               4.90k ± 1%               4.83k ± 1%     ~     (p=0.056 n=5+5)
      neo/py(!log)/sqlite-zwrk.go·2                               5.90k ± 0%               5.77k ± 0%   -2.16%  (p=0.008 n=5+5)
      neo/py(!log)/sqlite-zwrk.go·3                               5.86k ± 1%               5.75k ± 0%   -1.78%  (p=0.008 n=5+5)
      neo/py(!log)/sqlite-zwrk.go·4                               5.75k ± 0%               5.50k ± 8%     ~     (p=0.190 n=4+5)
      neo/py(!log)/sqlite-zwrk.go·8                               5.84k ± 1%               5.74k ± 0%   -1.67%  (p=0.008 n=5+5)
      neo/py(!log)/sqlite-zwrk.go·12                              5.51k ± 6%               5.72k ± 1%     ~     (p=0.421 n=5+5)
      neo/py(!log)/sqlite-zwrk.go·16                              5.71k ± 1%               5.66k ± 7%     ~     (p=0.548 n=5+5)
      neo/py(!log)/sql-zwrk.go·1                                  3.64k ± 7%               3.79k ± 2%     ~     (p=0.310 n=5+5)
      neo/py(!log)/sql-zwrk.go·2                                  4.35k ± 0%               4.38k ± 0%   +0.65%  (p=0.029 n=4+4)
      neo/py(!log)/sql-zwrk.go·3                                  4.36k ± 2%               4.36k ± 0%     ~     (p=0.286 n=5+4)
      neo/py(!log)/sql-zwrk.go·4                                  4.32k ± 0%               4.36k ± 0%   +0.93%  (p=0.029 n=4+4)
      neo/py(!log)/sql-zwrk.go·8                                  4.37k ± 1%               4.32k ± 1%     ~     (p=0.151 n=5+5)
      neo/py(!log)/sql-zwrk.go·12                                 4.40k ± 1%               4.32k ± 1%   -1.77%  (p=0.032 n=5+5)
      neo/py(!log)/sql-zwrk.go·16                                 4.34k ± 1%               4.28k ± 2%     ~     (p=0.151 n=5+5)
      neo/go/fs1-zwrk.go·1                                        14.2k ± 1%               14.0k ± 3%     ~     (p=0.421 n=5+5)
      neo/go/fs1-zwrk.go·2                                        28.5k ± 1%               28.3k ± 1%     ~     (p=0.151 n=5+5)
      neo/go/fs1-zwrk.go·3                                        40.6k ± 0%               40.6k ± 0%     ~     (p=0.310 n=5+5)
      neo/go/fs1-zwrk.go·4                                        53.2k ± 1%               53.0k ± 0%     ~     (p=0.222 n=5+5)
      neo/go/fs1-zwrk.go·8                                        90.1k ± 1%               90.4k ± 1%     ~     (p=0.310 n=5+5)
      neo/go/fs1-zwrk.go·12                                       96.0k ± 1%               95.3k ± 1%     ~     (p=0.310 n=5+5)
      neo/go/fs1-zwrk.go·16                                       91.4k ± 1%               89.7k ± 2%   -1.86%  (p=0.016 n=5+5)
      neo/go/fs1(!sha1)-zwrk.go(!sha1)·1                          16.4k ± 1%               16.5k ± 4%     ~     (p=0.421 n=5+5)
      neo/go/fs1(!sha1)-zwrk.go(!sha1)·2                          33.4k ± 1%               33.3k ± 1%     ~     (p=0.222 n=5+5)
      neo/go/fs1(!sha1)-zwrk.go(!sha1)·3                          46.7k ± 0%               46.5k ± 1%   -0.48%  (p=0.032 n=5+5)
      neo/go/fs1(!sha1)-zwrk.go(!sha1)·4                          60.4k ± 0%               60.3k ± 0%     ~     (p=0.310 n=5+5)
      neo/go/fs1(!sha1)-zwrk.go(!sha1)·8                          98.9k ± 1%               99.0k ± 1%     ~     (p=0.841 n=5+5)
      neo/go/fs1(!sha1)-zwrk.go(!sha1)·12                          103k ± 1%                103k ± 1%     ~     (p=0.690 n=5+5)
      neo/go/fs1(!sha1)-zwrk.go(!sha1)·16                         97.2k ± 1%               97.0k ± 1%     ~     (p=0.548 n=5+5)
      neo/go/sqlite-zwrk.go·1                                     7.92k ± 2%               9.85k ± 1%  +24.42%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go·2                                     14.7k ± 1%               18.9k ± 1%  +28.67%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go·3                                     21.3k ± 0%               27.4k ± 2%  +28.93%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go·4                                     27.5k ± 1%               34.7k ± 1%  +26.17%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go·8                                     44.9k ± 1%               51.8k ± 1%  +15.20%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go·12                                    52.3k ± 0%               55.7k ± 1%   +6.46%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go·16                                    48.4k ± 1%               50.8k ± 1%   +4.92%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go(!sha1)·1                              8.17k ± 2%              10.11k ± 1%  +23.70%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go(!sha1)·2                              15.2k ± 1%               19.6k ± 0%  +29.40%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go(!sha1)·3                              22.0k ± 0%               28.5k ± 0%  +29.64%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go(!sha1)·4                              28.2k ± 0%               36.1k ± 0%  +27.93%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go(!sha1)·8                              45.3k ± 0%               52.9k ± 1%  +16.77%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go(!sha1)·12                             52.0k ± 1%               57.1k ± 1%   +9.93%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go(!sha1)·16                             48.4k ± 1%               51.5k ± 1%   +6.45%  (p=0.008 n=5+5)
      
      name                                           old latency-time/object  new latency-time/object  delta
      cluster:z6001 dataset:wczblk1-8
      fs1-zwrk.go·1                                              4.33µs ± 1%              4.39µs ± 6%     ~     (p=1.000 n=5+5)
      fs1-zwrk.go·2                                              4.49µs ± 2%              4.49µs ± 1%     ~     (p=0.841 n=5+5)
      fs1-zwrk.go·3                                              4.56µs ± 2%              4.54µs ± 2%     ~     (p=0.690 n=5+5)
      fs1-zwrk.go·4                                              4.57µs ± 2%              4.56µs ± 1%     ~     (p=0.841 n=5+5)
      fs1-zwrk.go·8                                              4.56µs ± 1%              4.50µs ± 1%     ~     (p=0.056 n=5+5)
      fs1-zwrk.go·12                                             4.75µs ± 2%              4.70µs ± 3%     ~     (p=0.548 n=5+5)
      fs1-zwrk.go·16                                             5.49µs ± 1%              5.48µs ± 1%     ~     (p=0.841 n=5+5)
      zeo/py/fs1-zwrk.go·1                                        195µs ± 1%               196µs ± 1%     ~     (p=0.056 n=5+5)
      zeo/py/fs1-zwrk.go·2                                        315µs ± 0%               313µs ± 2%     ~     (p=0.905 n=4+5)
      zeo/py/fs1-zwrk.go·3                                        424µs ± 0%               436µs ± 0%   +2.93%  (p=0.008 n=5+5)
      zeo/py/fs1-zwrk.go·4                                        556µs ± 2%               562µs ± 1%     ~     (p=0.095 n=5+5)
      zeo/py/fs1-zwrk.go·8                                       1.06ms ± 2%              1.07ms ± 2%     ~     (p=0.095 n=5+5)
      zeo/py/fs1-zwrk.go·12                                      1.58ms ± 2%              1.57ms ± 2%     ~     (p=0.310 n=5+5)
      zeo/py/fs1-zwrk.go·16                                      2.09ms ± 2%              2.10ms ± 2%     ~     (p=0.690 n=5+5)
      neo/py(!log)/sqlite-zwrk.go·1                               220µs ± 1%               222µs ± 2%     ~     (p=0.690 n=5+5)
      neo/py(!log)/sqlite-zwrk.go·2                               352µs ± 2%               361µs ± 0%   +2.53%  (p=0.008 n=5+5)
      neo/py(!log)/sqlite-zwrk.go·3                               526µs ± 2%               543µs ± 1%   +3.26%  (p=0.008 n=5+5)
      neo/py(!log)/sqlite-zwrk.go·4                               708µs ± 1%               729µs ± 0%   +2.94%  (p=0.008 n=5+5)
      neo/py(!log)/sqlite-zwrk.go·8                              1.42ms ± 1%              1.43ms ± 2%     ~     (p=0.421 n=5+5)
      neo/py(!log)/sqlite-zwrk.go·12                             2.15ms ± 6%              2.23ms ± 8%     ~     (p=0.095 n=5+5)
      neo/py(!log)/sqlite-zwrk.go·16                             2.89ms ± 4%              2.88ms ± 0%     ~     (p=0.190 n=5+4)
      neo/py(!log)/sql-zwrk.go·1                                  276µs ± 3%               279µs ± 3%     ~     (p=0.421 n=5+5)
      neo/py(!log)/sql-zwrk.go·2                                  470µs ± 4%               470µs ± 1%     ~     (p=0.310 n=5+5)
      neo/py(!log)/sql-zwrk.go·3                                  699µs ± 0%               734µs ± 5%   +4.97%  (p=0.008 n=5+5)
      neo/py(!log)/sql-zwrk.go·4                                  950µs ± 5%               938µs ± 1%     ~     (p=0.421 n=5+5)
      neo/py(!log)/sql-zwrk.go·8                                 1.91ms ± 1%              1.89ms ± 1%     ~     (p=0.421 n=5+5)
      neo/py(!log)/sql-zwrk.go·12                                2.87ms ± 3%              2.87ms ± 4%     ~     (p=1.000 n=5+5)
      neo/py(!log)/sql-zwrk.go·16                                3.80ms ± 1%              3.97ms ± 5%     ~     (p=0.056 n=5+5)
      neo/go/fs1-zwrk.go·1                                       90.5µs ± 3%              90.5µs ± 5%     ~     (p=0.690 n=5+5)
      neo/go/fs1-zwrk.go·2                                       86.9µs ± 1%              87.1µs ± 1%     ~     (p=0.548 n=5+5)
      neo/go/fs1-zwrk.go·3                                       93.2µs ± 0%              93.2µs ± 1%     ~     (p=1.000 n=5+5)
      neo/go/fs1-zwrk.go·4                                       91.9µs ± 0%              92.1µs ± 0%     ~     (p=0.548 n=5+5)
      neo/go/fs1-zwrk.go·8                                        102µs ± 0%               103µs ± 0%   +0.48%  (p=0.016 n=5+5)
      neo/go/fs1-zwrk.go·12                                       130µs ± 0%               130µs ± 0%     ~     (p=0.095 n=5+5)
      neo/go/fs1-zwrk.go·16                                       156µs ± 0%               157µs ± 0%     ~     (p=0.056 n=5+5)
      neo/go/fs1(!sha1)-zwrk.go(!sha1)·1                         66.6µs ± 6%              65.3µs ± 8%     ~     (p=0.310 n=5+5)
      neo/go/fs1(!sha1)-zwrk.go(!sha1)·2                         62.9µs ± 1%              62.8µs ± 0%     ~     (p=0.841 n=5+5)
      neo/go/fs1(!sha1)-zwrk.go(!sha1)·3                         68.0µs ± 0%              68.1µs ± 0%     ~     (p=0.222 n=5+5)
      neo/go/fs1(!sha1)-zwrk.go(!sha1)·4                         69.0µs ± 1%              69.1µs ± 0%     ~     (p=0.841 n=5+5)
      neo/go/fs1(!sha1)-zwrk.go(!sha1)·8                         79.8µs ± 0%              79.8µs ± 0%     ~     (p=1.000 n=5+5)
      neo/go/fs1(!sha1)-zwrk.go(!sha1)·12                         103µs ± 0%               103µs ± 0%     ~     (p=0.841 n=5+5)
      neo/go/fs1(!sha1)-zwrk.go(!sha1)·16                         127µs ± 0%               127µs ± 0%     ~     (p=0.841 n=5+5)
      neo/go/sqlite-zwrk.go·1                                     139µs ± 1%               115µs ± 2%  -17.32%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go·2                                     147µs ± 0%               118µs ± 0%  -19.49%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go·3                                     150µs ± 1%               122µs ± 1%  -18.81%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go·4                                     156µs ± 0%               127µs ± 0%  -18.61%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go·8                                     177µs ± 0%               148µs ± 1%  -16.38%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go·12                                    213µs ± 0%               190µs ± 0%  -10.54%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go·16                                    275µs ± 1%               251µs ± 1%   -8.61%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go(!sha1)·1                              129µs ± 1%               103µs ± 2%  -19.99%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go(!sha1)·2                              136µs ± 1%               107µs ± 0%  -21.56%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go(!sha1)·3                              138µs ± 0%               108µs ± 0%  -21.75%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go(!sha1)·4                              142µs ± 0%               113µs ± 1%  -20.01%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go(!sha1)·8                              163µs ± 0%               139µs ± 0%  -14.66%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go(!sha1)·12                             198µs ± 0%               178µs ± 1%  -10.53%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go(!sha1)·16                             259µs ± 0%               239µs ± 1%   -7.48%  (p=0.008 n=5+5)
      cluster:z6001 dataset:prod1-1024
      fs1-zwrk.go·1                                              2.87µs ± 1%              2.83µs ± 0%   -1.35%  (p=0.016 n=5+4)
      fs1-zwrk.go·2                                              2.98µs ± 1%              2.98µs ± 3%     ~     (p=0.841 n=5+5)
      fs1-zwrk.go·3                                              3.05µs ± 2%              3.00µs ± 3%     ~     (p=0.310 n=5+5)
      fs1-zwrk.go·4                                              3.10µs ± 7%              3.05µs ± 3%     ~     (p=0.500 n=5+5)
      fs1-zwrk.go·8                                              3.16µs ± 3%              3.11µs ± 2%     ~     (p=0.310 n=5+5)
      fs1-zwrk.go·12                                             3.94µs ± 1%              3.91µs ± 1%     ~     (p=0.310 n=5+5)
      fs1-zwrk.go·16                                             5.23µs ± 1%              5.20µs ± 1%     ~     (p=0.310 n=5+5)
      zeo/py/fs1-zwrk.go·1                                        163µs ± 1%               165µs ± 3%     ~     (p=0.151 n=5+5)
      zeo/py/fs1-zwrk.go·2                                        244µs ± 2%               246µs ± 2%     ~     (p=0.095 n=5+5)
      zeo/py/fs1-zwrk.go·3                                        332µs ± 2%               339µs ± 0%   +1.94%  (p=0.008 n=5+5)
      zeo/py/fs1-zwrk.go·4                                        427µs ± 2%               434µs ± 1%   +1.78%  (p=0.008 n=5+5)
      zeo/py/fs1-zwrk.go·8                                        813µs ± 5%               823µs ± 3%     ~     (p=0.548 n=5+5)
      zeo/py/fs1-zwrk.go·12                                      1.26ms ± 9%              1.20ms ± 0%     ~     (p=0.730 n=5+4)
      zeo/py/fs1-zwrk.go·16                                      1.55ms ± 1%              1.60ms ± 8%     ~     (p=0.095 n=5+5)
      neo/py(!log)/sqlite-zwrk.go·1                               204µs ± 1%               207µs ± 1%     ~     (p=0.056 n=5+5)
      neo/py(!log)/sqlite-zwrk.go·2                               339µs ± 0%               347µs ± 0%   +2.21%  (p=0.008 n=5+5)
      neo/py(!log)/sqlite-zwrk.go·3                               512µs ± 1%               522µs ± 0%   +1.80%  (p=0.008 n=5+5)
      neo/py(!log)/sqlite-zwrk.go·4                               695µs ± 0%               730µs ± 9%     ~     (p=0.190 n=4+5)
      neo/py(!log)/sqlite-zwrk.go·8                              1.37ms ± 1%              1.39ms ± 0%   +1.68%  (p=0.008 n=5+5)
      neo/py(!log)/sqlite-zwrk.go·12                             2.18ms ± 6%              2.10ms ± 1%     ~     (p=0.421 n=5+5)
      neo/py(!log)/sqlite-zwrk.go·16                             2.80ms ± 1%              2.83ms ± 8%     ~     (p=0.548 n=5+5)
      neo/py(!log)/sql-zwrk.go·1                                  275µs ± 7%               264µs ± 2%     ~     (p=0.310 n=5+5)
      neo/py(!log)/sql-zwrk.go·2                                  460µs ± 0%               457µs ± 0%   -0.64%  (p=0.029 n=4+4)
      neo/py(!log)/sql-zwrk.go·3                                  689µs ± 1%               688µs ± 0%     ~     (p=0.286 n=5+4)
      neo/py(!log)/sql-zwrk.go·4                                  927µs ± 0%               918µs ± 0%   -0.92%  (p=0.029 n=4+4)
      neo/py(!log)/sql-zwrk.go·8                                 1.83ms ± 1%              1.85ms ± 1%     ~     (p=0.151 n=5+5)
      neo/py(!log)/sql-zwrk.go·12                                2.73ms ± 1%              2.78ms ± 1%   +1.81%  (p=0.032 n=5+5)
      neo/py(!log)/sql-zwrk.go·16                                3.69ms ± 1%              3.74ms ± 2%     ~     (p=0.151 n=5+5)
      neo/go/fs1-zwrk.go·1                                       70.2µs ± 1%              71.4µs ± 3%     ~     (p=0.421 n=5+5)
      neo/go/fs1-zwrk.go·2                                       70.3µs ± 1%              70.8µs ± 1%     ~     (p=0.151 n=5+5)
      neo/go/fs1-zwrk.go·3                                       73.8µs ± 0%              74.0µs ± 0%     ~     (p=0.310 n=5+5)
      neo/go/fs1-zwrk.go·4                                       75.2µs ± 1%              75.4µs ± 0%     ~     (p=0.222 n=5+5)
      neo/go/fs1-zwrk.go·8                                       88.8µs ± 1%              88.5µs ± 1%     ~     (p=0.310 n=5+5)
      neo/go/fs1-zwrk.go·12                                       125µs ± 1%               126µs ± 1%     ~     (p=0.310 n=5+5)
      neo/go/fs1-zwrk.go·16                                       175µs ± 1%               178µs ± 2%   +1.89%  (p=0.016 n=5+5)
      neo/go/fs1(!sha1)-zwrk.go(!sha1)·1                         61.1µs ± 1%              60.8µs ± 4%     ~     (p=0.421 n=5+5)
      neo/go/fs1(!sha1)-zwrk.go(!sha1)·2                         59.8µs ± 1%              60.1µs ± 1%     ~     (p=0.222 n=5+5)
      neo/go/fs1(!sha1)-zwrk.go(!sha1)·3                         64.2µs ± 0%              64.5µs ± 1%   +0.49%  (p=0.032 n=5+5)
      neo/go/fs1(!sha1)-zwrk.go(!sha1)·4                         66.2µs ± 0%              66.3µs ± 0%     ~     (p=0.310 n=5+5)
      neo/go/fs1(!sha1)-zwrk.go(!sha1)·8                         80.9µs ± 1%              80.8µs ± 1%     ~     (p=0.841 n=5+5)
      neo/go/fs1(!sha1)-zwrk.go(!sha1)·12                         117µs ± 1%               116µs ± 1%     ~     (p=0.690 n=5+5)
      neo/go/fs1(!sha1)-zwrk.go(!sha1)·16                         165µs ± 1%               165µs ± 1%     ~     (p=0.548 n=5+5)
      neo/go/sqlite-zwrk.go·1                                     126µs ± 2%               102µs ± 1%  -19.63%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go·2                                     136µs ± 1%               106µs ± 1%  -22.28%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go·3                                     141µs ± 0%               109µs ± 1%  -22.43%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go·4                                     145µs ± 1%               115µs ± 1%  -20.75%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go·8                                     178µs ± 1%               155µs ± 1%  -13.19%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go·12                                    229µs ± 0%               215µs ± 1%   -6.06%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go·16                                    331µs ± 1%               315µs ± 1%   -4.68%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go(!sha1)·1                              122µs ± 2%                99µs ± 1%  -19.17%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go(!sha1)·2                              132µs ± 1%               102µs ± 0%  -22.72%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go(!sha1)·3                              136µs ± 0%               105µs ± 0%  -22.86%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go(!sha1)·4                              142µs ± 0%               111µs ± 0%  -21.83%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go(!sha1)·8                              177µs ± 0%               151µs ± 1%  -14.36%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go(!sha1)·12                             231µs ± 1%               210µs ± 1%   -9.03%  (p=0.008 n=5+5)
      neo/go/sqlite-zwrk.go(!sha1)·16                             331µs ± 1%               311µs ± 1%   -6.06%  (p=0.008 n=5+5)
      70c63882