06f92722f029d38ebb5a0be40a22b469c8682db0
All checks were successful
Tests / Release [gcc] total: 583, passed: 583
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Reference build: <a href="https://jenkins.weaselab.dev/job/weaselab/job/conflict-set/job/main/22//gcc">weaselab » conflict-set » main #22</a>
Tests / Coverage total: 581, passed: 581
weaselab/conflict-set/pipeline/head This commit looks good
A data structure for optimistic concurrency control on ranges of bitwise-lexicographically-ordered keys.
Intended to replace FoundationDB's skip list.
FoundationDB's benchmark
Skip list
New conflict set: 4.189 sec
0.298 Mtransactions/sec
1.194 Mkeys/sec
Detect only: 3.990 sec
0.313 Mtransactions/sec
1.253 Mkeys/sec
Skiplist only: 2.849 sec
0.439 Mtransactions/sec
1.755 Mkeys/sec
Performance counters:
Build: 0.0913
Add: 0.0998
Detect: 3.99
D.Sort: 0.808
D.Combine: 0.0309
D.CheckRead: 1.67
D.CheckIntraBatch: 0.0305
D.MergeWrite: 1.18
D.RemoveBefore: 0.265
Radix tree (this implementation)
New conflict set: 2.965 sec
0.422 Mtransactions/sec
1.686 Mkeys/sec
Detect only: 2.761 sec
0.453 Mtransactions/sec
1.811 Mkeys/sec
Skiplist only: 1.580 sec
0.791 Mtransactions/sec
3.165 Mkeys/sec
Performance counters:
Build: 0.0902
Add: 0.107
Detect: 2.76
D.Sort: 0.809
D.Combine: 0.0309
D.CheckRead: 0.658
D.CheckIntraBatch: 0.0294
D.MergeWrite: 0.921
D.RemoveBefore: 0.305
Our benchmark
ns/op | op/s | err% | total | benchmark |
---|---|---|---|---|
263.10 | 3,800,889.33 | 1.6% | 0.64 | skip list (point reads) |
256.36 | 3,900,800.96 | 1.7% | 0.61 | skip list (prefix reads) |
526.95 | 1,897,714.85 | 1.6% | 1.23 | skip list (range reads) |
546.54 | 1,829,676.97 | 0.5% | 1.31 | skip list (point writes) |
539.23 | 1,854,511.73 | 0.5% | 1.29 | skip list (prefix writes) |
266.68 | 3,749,799.99 | 0.6% | 0.65 | skip list (range writes) |
18.31 | 54,612,706.60 | 0.4% | 0.04 | radix tree (point reads) |
48.78 | 20,498,870.77 | 0.2% | 0.12 | radix tree (prefix reads) |
347.16 | 2,880,474.86 | 0.9% | 0.83 | radix tree (range reads) |
34.80 | 28,734,706.67 | 3.6% | 0.09 | radix tree (point writes) |
70.34 | 14,216,970.16 | 1.4% | 0.17 | radix tree (prefix writes) |
82.41 | 12,134,555.86 | 1.0% | 0.20 | radix tree (range writes) |
v0.0.13
Latest
Languages
C++
82.9%
TeX
8.1%
CMake
4.8%
Python
2.7%
Shell
0.9%
Other
0.6%