Andrew Noyes 16aa52c071
Some checks failed
Tests / Release [gcc] total: 704, passed: 704
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/51//gcc">weaselab » conflict-set » main #51</a>
Tests / Release [gcc,aarch64] total: 704, failed: 3, passed: 701
weaselab/conflict-set/pipeline/head There was a failure building this commit
Try cross-compiling to arm in jenkins
2024-03-04 22:58:04 -08:00
2024-02-28 18:28:57 -08:00
2024-02-21 22:13:57 -08:00
2024-02-20 13:22:22 -08:00
2024-02-21 16:15:40 -08:00
2024-01-30 13:08:01 -08:00
2024-02-27 12:02:01 -08:00
2024-03-04 17:04:06 -08:00
2024-01-30 11:46:03 -08:00
2024-03-04 17:04:06 -08:00
2024-02-21 15:23:10 -08:00
2024-01-30 11:56:26 -08:00
2024-03-03 20:44:13 -08:00
2024-02-20 13:22:22 -08:00
2024-01-30 10:39:43 -08:00
2024-02-23 17:31: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
325.60 3,071,225.77 4.8% 0.77 skip list (point reads)
297.15 3,365,278.10 1.7% 0.72 skip list (prefix reads)
408.79 2,446,222.23 1.0% 1.03 skip list (range reads)
261.88 3,818,471.08 1.3% 0.73 skip list (point writes)
253.54 3,944,191.08 0.1% 0.61 skip list (prefix writes)
258.73 3,865,078.52 0.8% 0.62 skip list (range writes)
489.56 2,042,648.19 1.8% 0.01 skip list (monotonic increasing point writes)
14.83 67,446,579.75 0.1% 0.04 radix tree (point reads)
59.68 16,756,917.37 0.1% 0.14 radix tree (prefix reads)
287.32 3,480,485.22 1.2% 0.69 radix tree (range reads)
46.59 21,461,855.59 0.2% 0.12 radix tree (point writes)
83.70 11,946,755.99 0.1% 0.20 radix tree (prefix writes)
100.75 9,925,723.26 0.6% 0.25 radix tree (range writes)
118.37 8,448,345.29 0.6% 0.01 radix tree (monotonic increasing point 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%