Add README.md
This commit is contained in:
70
README.md
Normal file
70
README.md
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
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)`
|
Reference in New Issue
Block a user