Commit Graph
612 Commits
Author SHA1 Message Date
andrew 5c0cc1edf5 Add longestCommonPrefix bench 2024-09-05 16:30:58 -07:00
andrew 56893f9702 Update stale comments 2024-09-05 10:06:02 -07:00
andrew ce853680f2 Finish checkRangeRightSide conversion 2024-09-04 12:36:43 -07:00
andrew 5c39c1d64f CheckRangeRightSide conversion WIP 2024-09-04 12:25:16 -07:00
andrew 55b73c8ddb Convert CheckRangeRightSide WIP 2024-09-04 12:22:36 -07:00
andrew b9503f8258 Converting CheckRangeRightSide WIP 2024-09-04 12:19:53 -07:00
andrew c4c4531bd3 Simplify 2024-09-04 12:12:54 -07:00
andrew 2037d37c66 checkRangeLeftSide 2024-09-04 12:11:16 -07:00
andrew 6fe6a244af Get CheckRangeLeftSide closer, WIP 2024-09-04 12:08:16 -07:00
andrew 8a4b370e2a Make CheckRange{Left,Right}Side into normal functions, WIP 2024-09-04 12:04:58 -07:00
andrew 394f09f9fb WIP adding metrics to skiplist 2024-08-30 16:06:43 -07:00
andrew 5e06a30357 Add optional microbenchmarks for rezero/scan avx512 2024-08-29 12:12:24 -07:00
andrew c11b4714b5 Check more preconditions in Debug mode 2024-08-26 12:43:07 -07:00
andrew c9d742b696 Make explicit the precondition that versions must be <= latest version 2024-08-24 13:43:39 -07:00
andrew 7f86fdee66 Test 64 bit versions
Keep 32 bit versions the default though
2024-08-21 14:00:00 -07:00
andrew 311794c37e Update GCOVR annotations now that jenkins agent has avx512 2024-08-20 16:34:27 -07:00
andrew 0a9ac59676 Commit to non-simd Node3 implementations 2024-08-20 10:36:04 -07:00
andrew e3a77ed773 Remove unnecessary casts 2024-08-20 10:30:27 -07:00
andrew cdf9a8a7b0 Save 8 bytes in Node3 2024-08-20 10:30:07 -07:00
andrew 305dfdd52f Change whitespace in node structs for consistency 2024-08-20 09:57:44 -07:00
andrew 7261c91492 Remove Node48::nextFree, and improve padding to save 8 bytes 2024-08-20 09:51:29 -07:00
andrew 3634b6a59b Simplify slightly in checkMaxBetweenExclusive 2024-08-17 14:34:13 -07:00
andrew a3cc14c807 Fix double counting of remove node in showMemory mode 2024-08-17 13:43:47 -07:00
andrew b009de1c2b Avoid branching on type twice in erase 2024-08-16 09:29:22 -07:00
andrew 55a230c75e Remove dontInvalidate arg from erase
Use a new node member "endOfRange" instead
2024-08-16 09:08:56 -07:00
andrew 0711ec3831 Remove dead code 2024-08-15 20:19:00 -07:00
andrew 0280bd77e5 Skip "dontInvalidate" check in erase from gc 2024-08-15 19:07:53 -07:00
andrew fb7cf18f9b Add some comments about safety of calling maxVersion 2024-08-15 17:35:55 -07:00
andrew b808b97940 Remove a bunch of impl plumbing
By making it a precondition that nodes aren't the root for certain
functions
2024-08-15 17:15:37 -07:00
andrew e480f66846 Have caller ensure root max version for insert 2024-08-15 17:05:10 -07:00
andrew d5bc9221a0 Simplify addWriteRange slightly 2024-08-15 16:59:28 -07:00
andrew 9d23b81d6f Bring in some of the changes from erase-between branch 2024-08-15 16:55:26 -07:00
andrew 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
andrew 176df61321 Simplify handling of beginNode invalidation if begin is prefix of end 2024-08-14 14:26:13 -07:00
andrew 45995e3307 Update comments 2024-08-12 17:05:21 -07:00
andrew 359b0b29ff Avoid function call if no partial key 2024-08-12 16:33:03 -07:00
andrew 54e47ebd40 Simplify insert loop 2024-08-12 16:25:12 -07:00
andrew 1c9dda68a6 Call consumePartialKey from getOrCreateChild 2024-08-12 16:24:05 -07:00
andrew 142455dd28 Move consumePartialKey, and allow empty partial key 2024-08-12 16:18:58 -07:00
andrew 567d385fbd WIP create child in getOrCreateChild 2024-08-12 16:11:16 -07:00
andrew 8a44055533 Consume first byte in insert iteration 2024-08-12 15:39:09 -07:00
andrew 3d592bd6a9 Move longestCommonPrefix to its own file 2024-08-12 15:10:05 -07:00
andrew f5f5fb620b Run gc at 200%
150% pessimized the "real data" benchmark
2024-08-12 10:48:24 -07:00
andrew 182c065c8e Insert common prefix in addWriteRange
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
andrew 2dba0d5be3 Have insert return a pointer to the in-tree pointer 2024-08-09 13:58:31 -07:00
andrew a1dfdf355c Use metrics to count change in entry count
This lets us run gc slower safely
2024-08-09 13:44:49 -07:00
andrew ac98d4a443 Remove always_inline attribute - it wasn't affecting codegen 2024-08-08 10:44:54 -07:00
andrew 7d86beb14c Revert 29c05187fb
We're already doing this in checkRangeStartsWith
2024-08-07 16:51:23 -07:00
andrew 2fa954ed36 Fix compiler warning 2024-08-07 16:25:49 -07:00
andrew ded6e7fc2c Require entry present for fixupMaxVersion 2024-08-06 17:59:38 -07:00