Commit Graph
100 Commits
Author SHA1 Message Date
andrew 987e93b190 Update corpus
Tests / Release [gcc] total: 827, passed: 827
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / Release [gcc,aarch64] total: 826, passed: 826
Tests / Coverage total: 825, passed: 825
weaselab/conflict-set/pipeline/head This commit looks good
2024-03-07 18:31:04 -08:00
andrew 81263f5abf Remove -Wpedantic for gcc
Tests / Release [gcc] total: 704, passed: 704
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
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:53:23 -08:00
andrew 2689901637 Suppress gcc warning about anon structs
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:48:44 -08:00
andrew 87dd70c4b6 Fix bug introduced in 5e1fb1dac5
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
andrew 451ac5b2b6 Improve ConflictSet.h readability
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/67//gcc">weaselab » conflict-set » main #67</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:17:17 -08:00
andrew a8042ab20d Simplify firstGeq - make it not stepwise
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
andrew 8a36e72640 Update readme benchmarks 2024-03-07 15:55:31 -08:00
andrew 1519216d08 Replace is_pod_v with is_trivial_v
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
andrew f2cd05c29d Move Node::type to beginning of Node
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
andrew 5e1fb1dac5 Use entry bytes in partial key if entry not present
Closes #8
2024-03-07 13:47:37 -08:00
andrew d1a6b293e9 Revert "Add getChildNodeGeq, use in nextLogical"
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
andrew be43143891 Tidying
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
andrew 53bc36f628 Add getChildNodeGeq, use in nextLogical 2024-03-07 12:12:02 -08:00
andrew 0f360fa806 Fill in "Checking point reads"
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/61//gcc">weaselab » conflict-set » main #61</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-06 21:22:30 -08:00
andrew 00389936a8 Update fdb patch
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/60//gcc">weaselab » conflict-set » main #60</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-06 18:25:23 -08:00
andrew 04f75d57e9 Add HOMEPAGE_URL
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/59//gcc">weaselab » conflict-set » main #59</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 18:28:48 -08:00
andrew 6a0344e821 Remove some vestigial cmake stuff
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/58//gcc">weaselab » conflict-set » main #58</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 18:10:51 -08:00
andrew 2fcf3da29f Use a warmup instead
Seems more stable
2024-03-05 17:22:11 -08:00
andrew c8495b1695 Drain all pending work in hashtable's setOldestVersion 2024-03-05 17:18:58 -08:00
andrew d81d02f11d Don't gc in write benchmarks
This makes it easier to evaluate the claim that "point writes are
comparable to point reads" in performance, which should be the case.
2024-03-05 17:09:28 -08:00
andrew be5f1b67c8 Interface change! addWrites now takes a single write version
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
andrew ec3aec4dff Assume writeVersion highest-ever to avoid max calculation
This is measurably faster
2024-03-05 16:06:50 -08:00
andrew 9a4eed9453 Try setting more package metadata
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/56//gcc">weaselab » conflict-set » main #56</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 12:58:04 -08:00
andrew 30abf7833d Use gcc for coverage build
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: 703, passed: 703
Tests / Coverage total: 702, passed: 702
weaselab/conflict-set/pipeline/head This commit looks good
2024-03-05 12:41:19 -08:00
andrew d9c0d24e58 Don't run benchmarks in jenkins
It's probably too noisy and I don't even look anyway
2024-03-05 12:34:35 -08:00
andrew 3f121dc681 Trim down docker file and avoid valgrind when cross-compiling
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: 703, passed: 703
Tests / Coverage total: 702, passed: 702
weaselab/conflict-set/pipeline/head There was a failure building this commit
2024-03-05 11:39:36 -08:00
andrew 3ea0f405f2 Allow __stack_chk_[a-z]* 2024-03-05 11:37:33 -08:00
andrew 1811342cb6 Try to fix cross-compile packaging
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
Tests / Coverage total: 702, passed: 702
weaselab/conflict-set/pipeline/head There was a failure building this commit
2024-03-05 11:06:14 -08:00
andrew 16aa52c071 Try cross-compiling to arm in jenkins
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
2024-03-04 22:58:04 -08:00
andrew b68e04ba80 Fix file pattern
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/50//gcc">weaselab » conflict-set » main #50</a>
Tests / Coverage total: 702, passed: 702
weaselab/conflict-set/pipeline/head This commit looks good
2024-03-04 20:09:38 -08:00
andrew 45e8d68234 Try building an RPM in jenkins
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/49//gcc">weaselab » conflict-set » main #49</a>
Tests / Coverage total: 702, passed: 702
weaselab/conflict-set/pipeline/head This commit looks good
2024-03-04 19:55:45 -08:00
andrew 760a99098a Improve coverage slightly
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
andrew e6a88852b3 Add comment explaining interface of maxBetweenExclusive
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
andrew b97f611a3c Present gc as ratio of time in gc to time in add or gc
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/46//gcc">weaselab » conflict-set » main #46</a>
Tests / Coverage total: 702, passed: 702
weaselab/conflict-set/pipeline/head This commit looks good
2024-03-03 20:53:29 -08:00
andrew 10436096d1 Fix leak of mmap'd memory 2024-03-03 20:53:19 -08:00
andrew ad11782029 Fix iterator invalidation bug
Standard says operator[] may invalidate iterators. Never actually
crashed though /shrug
2024-03-03 20:44:13 -08:00
andrew 8bf3aa7f56 Add std::unordered_map implementation
As a rough upper bound for point query throughput
2024-03-03 20:32:19 -08:00
andrew a4b03bc216 Add example augmented radix tree figure
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
andrew 946694b8a5 Prepare for tikz files
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/44//gcc">weaselab » conflict-set » main #44</a>
Tests / Coverage total: 702, passed: 702
weaselab/conflict-set/pipeline/head This commit looks good
2024-02-28 18:28:57 -08:00
andrew 7345eceab3 Minor paper edits 2024-02-28 16:43:04 -08:00
andrew 9b50393e15 Don't number Abstract 2024-02-28 16:42:44 -08:00
andrew 6c8655798a Add draft watermark 2024-02-28 14:59:23 -08:00
andrew 86e99e4664 Apparently latexmk is what I was looking for 2024-02-28 14:45:59 -08:00
andrew 6b99b85f9e Set version and soversion on skip_list
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/41//gcc">weaselab » conflict-set » main #41</a>
Tests / Coverage total: 702, passed: 702
weaselab/conflict-set/pipeline/head This commit looks good
2024-02-27 18:21:16 -08:00
andrew 92fea7f56b Add missing includes
Tests / Release [gcc] total: 704, passed: 704
Tests / Coverage total: 702, passed: 702
weaselab/conflict-set/pipeline/head There was a failure building this commit
2024-02-27 17:33:23 -08:00
andrew 717264b452 Remove show memory for skip list for now 2024-02-27 12:02:51 -08:00
andrew 68bd39e130 Put skip list in its own shared lib
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
andrew 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
andrew d4d2dbcbda Strip off leading {P,L}<tab> 2024-02-27 10:29:59 -08:00
andrew 6d9b35396f Rename to real_data_bench 2024-02-26 19:37:15 -08:00
andrew 0c177fb40f Measure throughput in RealDataBench 2024-02-26 19:34:28 -08:00
andrew f38198a39d Amortize cost of pausing gc in setOldestVersion 2024-02-26 19:23:29 -08:00
andrew 5f7789128e Add RealDataBench.cpp 2024-02-26 17:17:07 -08:00
andrew 3f45535f89 Fix setOldestVersion
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
andrew 2b0dbabb5c Add public showMemory symbol (when SHOW_MEMORY=1) 2024-02-26 13:48:20 -08:00
andrew be7f643f14 Add Node1 and SHOW_MEMORY 2024-02-26 12:25:06 -08:00
andrew 6a08bdd40e Add bitSet asserts for Node256 paths 2024-02-26 10:58:16 -08:00
andrew 333ac74d91 Use forEachInRange for overfill for Node48 2024-02-26 10:55:50 -08:00
andrew 17ac9b38fb Use forEachInRange in setChildrenParents 2024-02-26 10:37:28 -08:00
andrew 172dd40648 Check for full words on boundaries 2024-02-26 10:36:45 -08:00
andrew c97c7eee8e Speed up sparse queries
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
andrew 9fcfc44dc3 Add forEachInRange 2024-02-25 21:04:39 -08:00
andrew 0d3475e229 Use uint64_t array and fewer branches in BitSet
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
andrew 70e3377eac Update benchmark in README.md
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/37//gcc">weaselab » conflict-set » main #37</a>
Tests / Coverage total: 469, passed: 469
weaselab/conflict-set/pipeline/head This commit looks good
Don't try to make sense of the diff - the benchmark itself changed too
2024-02-23 17:31:48 -08:00
andrew adaa652d0d Remove Node::maxVersion 2024-02-23 17:27:19 -08:00
andrew 921005edb3 Add childMaxVersion 2024-02-23 17:02:46 -08:00
andrew d43a8a5907 Run benchmark in jenkins 2024-02-23 16:17:28 -08:00
andrew 588e8eb87f Add monotonic increasing point writes workload 2024-02-23 16:13:53 -08:00
andrew df8d092a84 Avoid some unnecessary work
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
andrew 438a2e2abc Make sure setOldestVersion has work to do in bench 2024-02-23 14:41:05 -08:00
andrew 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
andrew db60782c48 Use **self directly in insert 2024-02-23 14:09:04 -08:00
andrew 4f32ecc26e Make "begin" a template parameter to insert
cachegrind says this saves instructions
2024-02-23 14:00:55 -08:00
andrew 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
andrew 921da1cb3f Remove redundant code 2024-02-23 13:13:48 -08:00
andrew 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
andrew 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
andrew 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
andrew aaf0283f66 Prefer getChild to getChildGeq in happy path
Saves instructions according to cachegrind
2024-02-23 12:12:01 -08:00
andrew 259f47664a Save some instructions in getOrCreateChild
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
andrew 9a47f2d03a Fixed missed usages of longestCommonPrefixPartialKey
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
andrew b5d5085fd5 Add precondition back to firstNeqStride 2024-02-22 16:16:42 -08:00
andrew 40dca168ba Add precondition to longestCommonPrefixPartialKey
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
andrew 7a8233ac61 More unnesting 2024-02-22 15:50:54 -08:00
andrew 3c93b9a3ce Unnest some in checkPointRead 2024-02-22 15:43:13 -08:00
andrew c16feda9f8 Use longestCommonPrefixPartialKey in SearchStepWise 2024-02-22 15:41:39 -08:00
andrew 4c3e7aef30 Save a few instructions in SearchStepWise 2024-02-22 15:30:24 -08:00
andrew 7f5598af2b Save a few instructions in addWriteRange 2024-02-22 15:25:50 -08:00
andrew 8016d44c04 Use simple loop for longestCommonPrefixPartialKey
The benchmark has this as faster
2024-02-22 14:49:04 -08:00
andrew 505c060a28 Use longestCommonPrefixPartialKey in insert 2024-02-22 14:46:52 -08:00
andrew 608b4fb6c7 Remove some branches 2024-02-22 14:29:24 -08:00
andrew 0fbc8b0190 Use longestCommonPrefix on partial keys 2024-02-22 13:57:00 -08:00
andrew 125ce88268 Suppress gcc warning
Accept that our usage is non-portable: https://stackoverflow.com/questions/3129916/what-is-wrong-with-this-use-of-offsetof
2024-02-22 12:37:14 -08:00
andrew 3a5db2d2ac Share some Node4/16 and Node48/256 implementations
This cuts down on the number of instructions (confirmed with
cachegrind). Also avoid initializing some memory unnecessarily.
2024-02-22 12:31:10 -08:00
andrew bd5d0259d9 Update corpus 2024-02-21 22:13:57 -08:00
andrew 09782ba833 Fix O(k^2) behavior when begin is a prefix of end
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/32//gcc">weaselab » conflict-set » main #32</a>
Tests / Coverage total: 581, passed: 581
weaselab/conflict-set/pipeline/head This commit looks good
2024-02-21 20:11:37 -08:00
andrew 0cb16c384f Fix include path 2024-02-21 16:48:33 -08:00
andrew 3750aa7b5b Vendor valgrind headers
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/31//gcc">weaselab » conflict-set » main #31</a>
Tests / Coverage total: 581, passed: 581
weaselab/conflict-set/pipeline/head This commit looks good
This is encouraged according to https://valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.clientreq
2024-02-21 16:15:40 -08:00
andrew 28e61340f4 Add valgrind annotations
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/30//gcc">weaselab » conflict-set » main #30</a>
Tests / Coverage total: 581, passed: 581
weaselab/conflict-set/pipeline/head This commit looks good
This appears to affect the binary (how else could it possibly work??),
but the microbenchmarks don't show a difference
2024-02-21 15:58:01 -08:00
andrew 07839b4687 Fix class-memaccess warning
Tests / Release [gcc] total: 583, passed: 583
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|4|:clap: Reference build: <a href="https://jenkins.weaselab.dev/job/weaselab/job/conflict-set/job/main/29//gcc">weaselab » conflict-set » main #29</a>
Tests / Coverage total: 581, passed: 581
weaselab/conflict-set/pipeline/head This commit looks good
The lifetime of T ended, so it's appropriate to treat it as a void*
2024-02-21 15:27:46 -08:00