- 23 Apr, 2018 1 commit
-
-
Kirill Smelkov authored
-
- 20 Apr, 2018 6 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 19 Apr, 2018 4 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 13 Apr, 2018 1 commit
-
-
Kirill Smelkov authored
-
- 10 Apr, 2018 1 commit
-
-
Kirill Smelkov authored
* y/go: go/zodb/zodbtools/dump: Don't use goto
-
- 09 Apr, 2018 2 commits
-
-
Kirill Smelkov authored
Tomáš Peterka noticed that gotos in dump.go are not actually needed because the same functionality could be achieved with defer in more clean and structured way. Do it. This brings ~ 5% performance hit name old time/op new time/op delta ZodbDump-4 148µs ± 1% 155µs ± 2% +4.69% (p=0.000 n=9+10) because defer implementation is currently not great (https://github.com/golang/go/issues/14939) If we absolutely need those 5% back it could be worked around similar to e.g. FileStorage.Load: https://lab.nexedi.com/kirr/neo/blob/6faed528/go/zodb/storage/fs1/filestorage.go#L133 https://lab.nexedi.com/kirr/neo/blob/6faed528/go/zodb/storage/fs1/filestorage.go#L141 /suggested-by @katomaso
-
Kirill Smelkov authored
-
- 06 Apr, 2018 1 commit
-
-
Kirill Smelkov authored
-
- 05 Apr, 2018 9 commits
-
-
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
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 04 Apr, 2018 4 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 27 Mar, 2018 1 commit
-
-
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.
-
- 26 Mar, 2018 5 commits
-
-
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.
-
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.
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
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.
-
- 21 Mar, 2018 4 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
Previous code used to warm up loading only one object which worked ok for 1 storage case but does not work well for multiple NEO storage nodes.
-
Kirill Smelkov authored
With default still being 1 partition. To be tested on field. Benchplot to be updated for new benchmark namings.
-
- 19 Mar, 2018 1 commit
-
-
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)
-