72469ebb6e
Erase along left spine. Not faster
2024-08-15 15:07:44 -07:00
405a2ca161
Fix typo
2024-08-15 13:52:51 -07:00
f93466316a
Pass in-tree reference to mergeWithChild
2024-08-15 13:52:06 -07:00
41840220c3
Optimize version handling in mergeWithChild
2024-08-15 11:49:13 -07:00
7ff00e7846
Extract mergeWithChild to function
2024-08-15 11:40:52 -07:00
6242f40d48
Require that eraseBetween leave at least one child or entryPresent
2024-08-15 11:37:36 -07:00
403d70a1d3
Prefer not copying node in eraseBetween
...
If numChildren + entryPresent is enough, we don't have to copy even if
it would fit in a smaller node.
If we have to copy, we might as well use the smallest acceptable node
type.
2024-08-15 11:33:16 -07:00
9763452713
Separate beginIsPrefix path and simplify slightly
2024-08-15 11:29:15 -07:00
73d0593fca
Remove separate prefix write codepath for now
2024-08-14 21:29:43 -07:00
23c2a3e1c6
SIMD for eraseBetween (Node16)
Tests / Clang total: 2688, passed: 2688
Clang |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Tests / Debug total: 2686, passed: 2686
weaselab/conflict-set/pipeline/head There was a failure building this commit
2024-08-14 18:12:46 -07:00
a64e792964
Remove unused function
2024-08-14 17:40:04 -07:00
cc526cb6ba
Call eraseBetween on useAsRoot in addWriteRange
2024-08-14 17:08:55 -07:00
7e49888bec
More eraseBetween optimizations
2024-08-14 16:40:29 -07:00
e64ebabced
eraseBetween optimizations
2024-08-14 16:13:37 -07:00
1e34951a77
Fix use-of-uninit in eraseBetween (Node256)
2024-08-14 15:25:10 -07:00
baf64520d6
Have eraseBetween take in-tree node by reference
2024-08-14 15:04:11 -07:00
3499626127
Fix potential strict aliasing issues
2024-08-14 15:01:34 -07:00
b7f9084694
destroyTree -> eraseTree. Use freelist
2024-08-14 14:47:22 -07:00
4b82502946
Accept node by ref for eraseBetween again
2024-08-14 14:43:19 -07:00
68bbacb69a
Use getInTree in eraseBetween
2024-08-14 14:43:19 -07:00
3078845673
Fix nodes_released accounting
2024-08-14 14:43:19 -07:00
43f6126cc4
Add a missing assert, call to removeNode
2024-08-14 14:43:19 -07:00
b911d87d55
eraseBetween bug fixes
2024-08-14 14:43:19 -07:00
0c65a82b78
Separate codepath for prefix writes
...
Uses the newly-added eraseBetween
2024-08-14 14:43:19 -07:00
e024cb8291
Track entriesErased in destroyTree
2024-08-14 14:43:19 -07:00
0740dcad43
Strengthen checkMemoryBoundInvariants check for Node0
...
I think this is probably checked elsewhere, but let's check here too for
consistency
2024-08-14 14:28:28 -07:00
176df61321
Simplify handling of beginNode invalidation if begin is prefix of end
2024-08-14 14:26:13 -07:00
45995e3307
Update comments
2024-08-12 17:05:21 -07:00
359b0b29ff
Avoid function call if no partial key
2024-08-12 16:33:03 -07:00
54e47ebd40
Simplify insert loop
2024-08-12 16:25:12 -07:00
1c9dda68a6
Call consumePartialKey from getOrCreateChild
2024-08-12 16:24:05 -07:00
142455dd28
Move consumePartialKey, and allow empty partial key
2024-08-12 16:18:58 -07:00
567d385fbd
WIP create child in getOrCreateChild
2024-08-12 16:11:16 -07:00
8a44055533
Consume first byte in insert iteration
2024-08-12 15:39:09 -07:00
3d592bd6a9
Move longestCommonPrefix to its own file
Tests / Clang total: 2096, failed: 520, passed: 1576
Tests / Debug total: 2094, failed: 520, passed: 1574
Tests / SIMD fallback total: 2096, passed: 2096
Tests / Release [gcc] total: 2096, passed: 2096
Tests / Release [gcc,aarch64] total: 1564, passed: 1564
Tests / Coverage total: 1574, passed: 1574
weaselab/conflict-set/pipeline/head There was a failure building this commit
2024-08-12 15:10:05 -07:00
f5f5fb620b
Run gc at 200%
...
150% pessimized the "real data" benchmark
2024-08-12 10:48:24 -07:00
182c065c8e
Insert common prefix in addWriteRange
...
Tests / Clang total: 1420, passed: 1420
Clang |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Tests / Debug total: 1418, passed: 1418
Tests / SIMD fallback total: 1420, passed: 1420
Tests / Release [gcc] total: 1420, passed: 1420
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Tests / Release [gcc,aarch64] total: 1057, passed: 1057
Tests / Coverage total: 1067, passed: 1067
Code Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 99.12% (1799/1815)
* Branch Coverage: 67.50% (1485/2200)
* Complexity Density: 0.00
* Lines of Code: 1815
#### Quality Gates Summary
Output truncated.
weaselab/conflict-set/pipeline/head There was a failure building this commit
This allows us to use our optimized implementation for setting max
version along the search path instead of a one-off loop
2024-08-09 14:57:04 -07:00
2dba0d5be3
Have insert return a pointer to the in-tree pointer
2024-08-09 13:58:31 -07:00
a1dfdf355c
Use metrics to count change in entry count
...
This lets us run gc slower safely
2024-08-09 13:44:49 -07:00
ac98d4a443
Remove always_inline attribute - it wasn't affecting codegen
Tests / Clang total: 1420, passed: 1420
Clang |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Tests / Debug total: 1418, passed: 1418
Tests / SIMD fallback total: 1420, passed: 1420
Tests / Release [gcc] total: 1420, passed: 1420
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Tests / Release [gcc,aarch64] total: 1057, passed: 1057
weaselab/conflict-set/pipeline/head There was a failure building this commit
2024-08-08 10:44:54 -07:00
7d86beb14c
Revert 29c05187fb
...
We're already doing this in checkRangeStartsWith
2024-08-07 16:51:23 -07:00
2fa954ed36
Fix compiler warning
2024-08-07 16:25:49 -07:00
ded6e7fc2c
Require entry present for fixupMaxVersion
2024-08-06 17:59:38 -07:00
781ba15cae
Enforce that root does not have a partial key
2024-08-06 17:55:33 -07:00
29c05187fb
Early return if common prefix isn't a prefix of an entry
...
Tests / Clang total: 1479, passed: 1479
Clang |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Tests / Debug total: 1477, passed: 1477
Tests / SIMD fallback total: 1479, passed: 1479
Tests / Release [gcc] total: 1479, passed: 1479
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Tests / Release [gcc,aarch64] total: 1102, passed: 1102
Tests / Coverage total: 1111, passed: 1111
Code Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 98.00% (1812/1849)
* Branch Coverage: 64.20% (1521/2369)
* Complexity Density: 0.00
* Lines of Code: 1849
#### Quality Gates Summary
Output truncated.
weaselab/conflict-set/pipeline/head There was a failure building this commit
For range reads
2024-08-06 15:32:44 -07:00
d89028dd2f
Inline SearchStepWise into checkRangeRead
...
This improves clang codegen
2024-08-06 14:45:52 -07:00
09cf807747
Avoid some branches on node type while inserting
weaselab/conflict-set/pipeline/head There was a failure building this commit
2024-08-06 13:51:49 -07:00
051eb5919d
Extract consumePartialKey to its own function
2024-08-06 13:20:44 -07:00
ed5589e4ed
Specialize partial key split for newly created Node3
2024-08-06 13:04:19 -07:00
a7b3d8fe4c
Clarify insert
documentation
2024-08-06 11:29:33 -07:00