Andrew Noyes 06f92722f0
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
Add license
2024-02-20 13:22:22 -08:00
2024-02-20 13:22:22 -08:00
2024-02-19 13:29:16 -08:00
2024-01-30 12:01:49 -08:00
2024-01-30 13:08:01 -08:00
2024-02-19 16:48:40 -08:00
2024-02-19 13:29:16 -08:00
2024-01-30 11:46:03 -08:00
2024-02-20 13:22:22 -08:00
2024-02-05 12:41:35 -08:00
2024-02-20 13:15:37 -08:00
2024-01-30 11:56:26 -08:00
2024-02-05 12:29:53 -08:00
2024-02-20 13:22:22 -08:00
2024-01-30 10:39:43 -08:00
2024-02-20 13:13:48 -08:00
2024-01-30 11:46:03 -08:00
2024-02-09 23:03:44 -08:00
2024-02-01 11:24:57 -08:00

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)
Description
A data structure for optimistic concurrency control on ranges of bitwise-lexicographically-ordered keys.
Readme 25 MiB
v0.0.13 Latest
2024-08-26 21:24:21 +00:00
Languages
C++ 82.9%
TeX 8.1%
CMake 4.8%
Python 2.7%
Shell 0.9%
Other 0.6%