Commit Graph

323 Commits

Author SHA1 Message Date
782abc70d6 Remove custom allocator
To prepare for variable size partial keys
2024-03-08 13:02:33 -08:00
8802d17acd Remove Node::Invalid 2024-03-08 12:57:06 -08:00
02afd47d8f Node1 -> Node0 2024-03-08 12:07:47 -08:00
87dd70c4b6 Fix bug introduced in 5e1fb1dac5
All checks were successful
Tests / Release [gcc] total: 704, passed: 704
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |1|0|1|0|:zzz:
Tests / Release [gcc,aarch64] total: 703, passed: 703
Tests / Coverage total: 702, passed: 702
weaselab/conflict-set/pipeline/head This commit looks good
2024-03-07 17:43:34 -08:00
a8042ab20d Simplify firstGeq - make it not stepwise
All checks were successful
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/66//gcc">weaselab » conflict-set » main #66</a>
Tests / Release [gcc,aarch64] total: 703, passed: 703
Tests / Coverage total: 702, passed: 702
weaselab/conflict-set/pipeline/head This commit looks good
2024-03-07 16:05:38 -08:00
1519216d08 Replace is_pod_v with is_trivial_v
All checks were successful
Tests / Release [gcc] total: 704, passed: 704
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|1|:clap: Reference build: <a href="https://jenkins.weaselab.dev/job/weaselab/job/conflict-set/job/main/65//gcc">weaselab » conflict-set » main #65</a>
Tests / Release [gcc,aarch64] total: 703, passed: 703
Tests / Coverage total: 702, passed: 702
weaselab/conflict-set/pipeline/head This commit looks good
2024-03-07 14:26:01 -08:00
f2cd05c29d Move Node::type to beginning of Node
All checks were successful
Tests / Release [gcc] total: 704, passed: 704
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |1|1|0|0|:-1: Reference build: <a href="https://jenkins.weaselab.dev/job/weaselab/job/conflict-set/job/main/64//gcc">weaselab » conflict-set » main #64</a>
Tests / Release [gcc,aarch64] total: 703, passed: 703
Tests / Coverage total: 702, passed: 702
weaselab/conflict-set/pipeline/head This commit looks good
This prepares us to have a variable size leaf type
2024-03-07 14:17:14 -08:00
5e1fb1dac5 Use entry bytes in partial key if entry not present
Closes #8
2024-03-07 13:47:37 -08:00
d1a6b293e9 Revert "Add getChildNodeGeq, use in nextLogical"
All checks were successful
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/63//gcc">weaselab » conflict-set » main #63</a>
Tests / Release [gcc,aarch64] total: 703, passed: 703
Tests / Coverage total: 702, passed: 702
weaselab/conflict-set/pipeline/head This commit looks good
This reverts commit 53bc36f628.

Apparently this used more instructions. Not sure I understand.
2024-03-07 12:41:34 -08:00
be43143891 Tidying
All checks were successful
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/62//gcc">weaselab » conflict-set » main #62</a>
Tests / Release [gcc,aarch64] total: 703, passed: 703
Tests / Coverage total: 702, passed: 702
weaselab/conflict-set/pipeline/head This commit looks good
2024-03-07 12:33:34 -08:00
53bc36f628 Add getChildNodeGeq, use in nextLogical 2024-03-07 12:12:02 -08:00
be5f1b67c8 Interface change! addWrites now takes a single write version
All checks were successful
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/57//gcc">weaselab » conflict-set » main #57</a>
Tests / Release [gcc,aarch64] total: 703, passed: 703
Tests / Coverage total: 702, passed: 702
weaselab/conflict-set/pipeline/head This commit looks good
2024-03-05 16:55:27 -08:00
ec3aec4dff Assume writeVersion highest-ever to avoid max calculation
This is measurably faster
2024-03-05 16:06:50 -08:00
760a99098a Improve coverage slightly
All checks were successful
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/48//gcc">weaselab » conflict-set » main #48</a>
Tests / Coverage total: 702, passed: 702
weaselab/conflict-set/pipeline/head This commit looks good
By moving test-only code to a test-only region. Also the skip_list
shared lib can depend on libstdc++ etc.
2024-03-04 17:04:06 -08:00
e6a88852b3 Add comment explaining interface of maxBetweenExclusive
All checks were successful
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/47//gcc">weaselab » conflict-set » main #47</a>
Tests / Coverage total: 702, passed: 702
weaselab/conflict-set/pipeline/head This commit looks good
2024-03-04 16:47:30 -08:00
a4b03bc216 Add example augmented radix tree figure
All checks were successful
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/45//gcc">weaselab » conflict-set » main #45</a>
Tests / Coverage total: 702, passed: 702
weaselab/conflict-set/pipeline/head This commit looks good
2024-02-29 16:35:07 -08:00
68bd39e130 Put skip list in its own shared lib
Some checks failed
weaselab/conflict-set/pipeline/head There was a failure building this commit
Now we can right benchmarks against one api, and just change the library
path
2024-02-27 12:02:01 -08:00
25a1226667 Fix setOldestVersion bug
We should update the oldest version even if we don't have enough
keyUpdates to do
2024-02-27 10:59:59 -08:00
f38198a39d Amortize cost of pausing gc in setOldestVersion 2024-02-26 19:23:29 -08:00
3f45535f89 Fix setOldestVersion
All checks were successful
Tests / Release [gcc] total: 471, passed: 471
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/40//gcc">weaselab » conflict-set » main #40</a>
Tests / Coverage total: 469, passed: 469
weaselab/conflict-set/pipeline/head This commit looks good
We were not accumulating keyUpdates strictly faster than we were
spending them for a monotonically increasing workload.
2024-02-26 13:51:03 -08:00
2b0dbabb5c Add public showMemory symbol (when SHOW_MEMORY=1) 2024-02-26 13:48:20 -08:00
be7f643f14 Add Node1 and SHOW_MEMORY 2024-02-26 12:25:06 -08:00
6a08bdd40e Add bitSet asserts for Node256 paths 2024-02-26 10:58:16 -08:00
333ac74d91 Use forEachInRange for overfill for Node48 2024-02-26 10:55:50 -08:00
17ac9b38fb Use forEachInRange in setChildrenParents 2024-02-26 10:37:28 -08:00
172dd40648 Check for full words on boundaries 2024-02-26 10:36:45 -08:00
c97c7eee8e Speed up sparse queries
All checks were successful
Tests / Release [gcc] total: 471, passed: 471
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/39//gcc">weaselab » conflict-set » main #39</a>
Tests / Coverage total: 469, passed: 469
weaselab/conflict-set/pipeline/head This commit looks good
2024-02-25 23:08:01 -08:00
9fcfc44dc3 Add forEachInRange 2024-02-25 21:04:39 -08:00
0d3475e229 Use uint64_t array and fewer branches in BitSet
All checks were successful
Tests / Release [gcc] total: 471, passed: 471
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/38//gcc">weaselab » conflict-set » main #38</a>
Tests / Coverage total: 469, passed: 469
weaselab/conflict-set/pipeline/head This commit looks good
2024-02-24 18:20:00 -08:00
adaa652d0d Remove Node::maxVersion 2024-02-23 17:27:19 -08:00
921005edb3 Add childMaxVersion 2024-02-23 17:02:46 -08:00
df8d092a84 Avoid some unnecessary work
All checks were successful
Tests / Release [gcc] total: 471, passed: 471
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/36//gcc">weaselab » conflict-set » main #36</a>
Tests / Coverage total: 469, passed: 469
weaselab/conflict-set/pipeline/head This commit looks good
2024-02-23 14:49:42 -08:00
438a2e2abc Make sure setOldestVersion has work to do in bench 2024-02-23 14:41:05 -08:00
305c218888 Skip checking for partial key match if partial key len == 0
This saves instructions according to cachegrind
2024-02-23 14:27:20 -08:00
db60782c48 Use **self directly in insert 2024-02-23 14:09:04 -08:00
4f32ecc26e Make "begin" a template parameter to insert
cachegrind says this saves instructions
2024-02-23 14:00:55 -08:00
f84aa88202 Copy old node to new more efficiently
Presumably it's generating good code for the memcpy with a static size,
and hopefully also eliminating redundant stores
2024-02-23 13:31:05 -08:00
921da1cb3f Remove redundant code 2024-02-23 13:13:48 -08:00
14de4ee297 Specialize setChildrenParents for each node type
cachegrind says this increases the instruction count somehow. I'm not
sure what's going on there.
2024-02-23 13:09:42 -08:00
7136b5a450 Save more instructions in getOrCreateChild
Take advantage of the property that Node4 is a prefix of Node16
2024-02-23 12:39:24 -08:00
116c79d3de Optimize getOrCreateChild
Add fast path for if it exists

Avoid some unnecessary branches

Try to simplify some
2024-02-23 12:34:28 -08:00
aaf0283f66 Prefer getChild to getChildGeq in happy path
Saves instructions according to cachegrind
2024-02-23 12:12:01 -08:00
259f47664a Save some instructions in getOrCreateChild
All checks were successful
Tests / Release [gcc] total: 471, passed: 471
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/35//gcc">weaselab » conflict-set » main #35</a>
Tests / Coverage total: 469, passed: 469
weaselab/conflict-set/pipeline/head This commit looks good
2024-02-22 22:46:08 -08:00
9a47f2d03a Fixed missed usages of longestCommonPrefixPartialKey
All checks were successful
Tests / Release [gcc] total: 471, passed: 471
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/34//gcc">weaselab » conflict-set » main #34</a>
Tests / Coverage total: 469, passed: 469
weaselab/conflict-set/pipeline/head This commit looks good
2024-02-22 16:24:26 -08:00
b5d5085fd5 Add precondition back to firstNeqStride 2024-02-22 16:16:42 -08:00
40dca168ba Add precondition to longestCommonPrefixPartialKey
All checks were successful
Tests / Release [gcc] total: 471, passed: 471
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/33//gcc">weaselab » conflict-set » main #33</a>
Tests / Coverage total: 469, passed: 469
weaselab/conflict-set/pipeline/head This commit looks good
2024-02-22 16:07:20 -08:00
7a8233ac61 More unnesting 2024-02-22 15:50:54 -08:00
3c93b9a3ce Unnest some in checkPointRead 2024-02-22 15:43:13 -08:00
c16feda9f8 Use longestCommonPrefixPartialKey in SearchStepWise 2024-02-22 15:41:39 -08:00
4c3e7aef30 Save a few instructions in SearchStepWise 2024-02-22 15:30:24 -08:00