Commit Graph
100 Commits
Author SHA1 Message Date
andrew c46f633dbf Skip sorting if already sorted for skip list 2024-11-12 13:25:29 -08:00
andrew 400350946c Point read/write workload for server_bench 2024-11-12 10:50:03 -08:00
andrew 607a4ef6e2 Require musttail and preserve_none for interleaved 2024-11-11 21:40:05 -08:00
andrew b0750772ec Don't do hardening check if cross compiling 2024-11-11 16:56:28 -08:00
andrew 86abc02188 Build binaries compatible with cf-protection 2024-11-11 16:17:57 -08:00
andrew a90e353fcd Use llvm-objcopy if using clang and it's available
This works around a weird error I was getting when trying to link a
translation unit that included Internal.h with libconflict-set-static.a
with clang + gnu objcopy
2024-11-11 12:09:36 -08:00
andrew f85b92f8db Improve next{Physical,Logical} codegen 2024-11-09 13:21:36 -08:00
andrew 3c44614311 Allocate from freelist with min/max capacity constraints 2024-11-08 21:35:13 -08:00
andrew 9c1ac3702e Move index closer to start of Node{3,16}
This should slightly improve cache hit rate
2024-11-08 20:54:00 -08:00
andrew 224d21648a Make server_bench workload point writes of tuple-encoded keys 2024-11-08 20:50:54 -08:00
andrew 33f9c89328 Try reduceLog: true 2024-11-04 17:03:24 -08:00
andrew 12c2d5eb95 Try not logging ctest output to stdout 2024-11-04 15:36:50 -08:00
andrew db357e747d Add __mem{cpy,set}_chk to allowed symbol imports 2024-11-04 15:08:25 -08:00
andrew 4494359ca2 Make insert_iterations for interleaved writes more closely match 2024-11-04 14:46:30 -08:00
andrew f079d84bda Update README 2024-11-04 14:33:43 -08:00
andrew 724ec09248 Add to corpus 2024-11-04 14:30:12 -08:00
andrew 4eaad39294 Maintain capacity invariant strictly 2024-11-04 13:43:02 -08:00
andrew 891100e649 Add to corpus 2024-11-01 21:32:00 -07:00
andrew 22e55309be Update benchmarks 2024-11-01 17:50:03 -07:00
andrew d6269c5b7c Use interleaved even if preserve_none is missing 2024-11-01 15:12:59 -07:00
andrew faacdff2d9 Add to corpus 2024-11-01 14:11:43 -07:00
andrew 821179b8de Remove dead code 2024-11-01 13:48:32 -07:00
andrew 681a961289 Dispatch on type pairs for end iter 2024-11-01 13:45:41 -07:00
andrew c73a3da14c Dispatch on type pairs for begin iter 2024-11-01 12:46:36 -07:00
andrew 5153d25cce Dispatch on type pairs for common prefix iter 2024-11-01 12:06:48 -07:00
andrew d2ec4e7fae Fix use of wrong member in endIter 2024-11-01 11:17:26 -07:00
andrew c7e2358746 Add memcmp to aarch64 imports 2024-10-31 15:36:19 -07:00
andrew ec1c1cf43f Run gc less frequently
But still run it to account for the version potentially increasing
2024-10-31 15:35:00 -07:00
andrew eaad0c69a7 Store Result* pointer instead of index 2024-10-31 12:59:36 -07:00
andrew 309e6ab816 Dispatch on pair of types 2024-10-30 22:59:00 -07:00
andrew 12b82c1be5 Fix accidentally-checked-in debug change 2024-10-30 16:44:00 -07:00
andrew 0cce9df8a8 Use constexpr int instead of sizeof 2024-10-30 15:36:46 -07:00
andrew 0df09743da Don't assign to nextRangeWrite twice 2024-10-30 15:33:40 -07:00
andrew c4b0aa1085 Skip over point writes in phase 3 2024-10-30 15:08:27 -07:00
andrew 051bfb05fe Fix up DEBUG_VERBOSE 2024-10-30 14:50:34 -07:00
andrew 7e1bcbf9be Follow forwarding pointers for end before addWriteRange 2024-10-30 14:26:37 -07:00
andrew 4e685bbc3b Use deferred release instead of hacky dontInvalidate logic 2024-10-30 14:16:36 -07:00
andrew b6bfc6f48d Remove redundant int conversions 2024-10-30 11:48:55 -07:00
andrew 3b858551f3 Switch std::span<const uint8_t> to TrivialSpan 2024-10-30 11:45:56 -07:00
andrew 2c1c26bc88 Enable interleaved range writes 2024-10-30 11:01:23 -07:00
andrew 958ee15cfc Use forwarding pointers instead of beginIsPrefix 2024-10-29 20:43:58 -07:00
andrew 9015b555de Allow passing two roots to addWriteRange 2024-10-29 17:24:10 -07:00
andrew 7aac73ee80 Process acceptable subranges interleaved 2024-10-29 14:41:42 -07:00
andrew c06afeb81e Add to corpus 2024-10-29 11:59:36 -07:00
andrew b015711b7c Fix write metrics for interleaved implementation 2024-10-29 10:42:22 -07:00
andrew f27ca6d6af Better support a lack of musttail and preserve_none 2024-10-28 22:40:52 -07:00
andrew c0bb175b7e Remove interleaved_insert::begin 2024-10-28 22:17:52 -07:00
andrew 6a6fe5738a Improve "complete" codegen for interleaved state machines 2024-10-28 22:15:05 -07:00
andrew dc16eccf06 Use stack allocation for small counts 2024-10-28 21:51:20 -07:00
andrew 3f15db7e82 Avoid longestCommonPrefix if partialKeyLen == 0 2024-10-28 21:44:16 -07:00
andrew e8a8b5aef1 Implement phase 2 2024-10-28 16:30:06 -07:00
andrew b8fefff3ba Remove accidentally-checked-in debug print 2024-10-28 16:20:51 -07:00
andrew 2706b2f65e Implement "phase 1" of interleaved point writes 2024-10-28 16:02:56 -07:00
andrew f1292efe41 Add getChildUpdatingMaxVersion 2024-10-28 15:31:00 -07:00
andrew a2d3d269ec Add check namespace
Prepare to add write namespace
2024-10-28 13:57:56 -07:00
andrew 8ff7a112b7 Add forwarding pointers + deferred release 2024-10-28 12:34:20 -07:00
andrew cf25b8626c Change server bench to point write heavy workload 2024-10-27 22:28:03 -07:00
andrew e025f934d8 Fix gc-too-slow issue
Previously, with a finite set of keys, latest_extant_version could fall all the way behind so that a call to addWrites would have to do O(n) work eventually.
2024-10-27 21:13:27 -07:00
andrew e5452c0f7d Only check against sequential if we interleaved 2024-10-17 16:17:21 -07:00
andrew 66fc526a55 Add to corpus 2024-10-17 16:07:15 -07:00
andrew 21f08b9f88 Avoid assigning to continuation where unnecessary 2024-10-17 13:16:29 -07:00
andrew 10c2f06199 Mix type dispatch and interleaving for down left spine 2024-10-17 13:13:16 -07:00
andrew 5cf04e9718 Add to corpus 2024-10-17 10:58:02 -07:00
andrew 707b220fbc Improve next{Physical,Logical} codegen more 2024-10-17 09:52:03 -07:00
andrew fd39065498 Add to corpus 2024-10-16 16:38:56 -07:00
andrew b963d481c9 Improve codegen for nextLogical 2024-10-16 15:54:05 -07:00
andrew e7ed47e288 Assert that interleaved and sequential report same metrics 2024-10-15 20:58:13 -07:00
andrew 04f138109b Rename variables from tls 2024-10-15 20:45:11 -07:00
andrew a0d07dd40c Remove no-longer-necessary GCOVR_EXCL_LINE
Now that we exclude noncode lines (why isn't that the default?)
2024-10-15 18:33:40 -07:00
andrew 7fb408b466 Remove tailcall test
We no longer rely on tail call optimization happening where musttail is
not supported
2024-10-15 17:47:36 -07:00
andrew 6d265acfc7 Install llvm-cov 2024-10-15 17:47:01 -07:00
andrew 67a61513b8 Use clang for coverage build 2024-10-15 17:34:30 -07:00
andrew 583f2e7612 Check interleaved and sequential in debug mode 2024-10-15 17:31:06 -07:00
andrew 66e5b033c0 Fix control flow reaches end of non-void function warning 2024-10-15 17:27:36 -07:00
andrew 1d705cd4b7 Add to corpus 2024-10-15 17:12:45 -07:00
andrew 769cf8de9a Bring back sequential read implementation
This will be used if there's only one check to perform or if the
compiler does not support musttail and preserve_none
2024-10-15 17:12:11 -07:00
andrew 84942a5bf8 Try clang 20 2024-10-15 15:59:58 -07:00
andrew 7ad6872ee8 Use clang-19 in jenkins 2024-10-15 15:55:33 -07:00
andrew 9db5eb960d Suppress some unhelpful warnings 2024-10-15 15:06:10 -07:00
andrew 5df25a138a Don't initialize max version if child doesn't exist 2024-10-15 12:55:28 -07:00
andrew 381fbce0c0 Remove duplicate clang build 2024-10-14 22:32:01 -07:00
andrew 87aeb349a3 Use clang for building packages 2024-10-14 22:23:56 -07:00
andrew 28fb0d7faa Cross-compile to aarch64 with clang 2024-10-14 22:19:50 -07:00
andrew 5013c689a0 Remove dead code 2024-10-14 22:06:48 -07:00
andrew 316bbf679f Add to corpus 2024-10-14 21:15:45 -07:00
andrew 58aabe83f5 Improve codegen for tracking check metrics 2024-10-14 17:50:38 -07:00
andrew 0c8a051913 Avoid more branches on type 2024-10-14 17:16:56 -07:00
andrew 11e8717da8 Specific node overloads for checkMaxBetweenExclusive 2024-10-14 16:54:44 -07:00
andrew 824037bf32 Remove dead code 2024-10-13 21:28:27 -07:00
andrew bbe964110e Disable skip list tests by default 2024-10-13 20:42:14 -07:00
andrew 100449c76c Add to corpus 2024-10-13 20:39:39 -07:00
andrew 51b5f638a4 Combine terminal down_left_spine paths 2024-10-13 20:39:07 -07:00
andrew 767dacc742 Fully interleaved range read
Would be great to find a way to make this all more readable
2024-10-13 20:05:06 -07:00
andrew 978a7585b6 Remove backtrack label from checkRangeRightSide 2024-10-13 11:27:36 -07:00
andrew 71b3c7fb7f Stop tracking first iteration
We can tell with other means
2024-10-12 23:56:01 -07:00
andrew 420f50c40f Stop tracking searchPathLen 2024-10-12 23:34:46 -07:00
andrew 69a131df38 Prepare for interleaving checkRangeRightSide 2024-10-12 23:01:47 -07:00
andrew 8a4032e850 Remove dead code 2024-10-12 18:00:19 -07:00
andrew 9c365435ea Add to corpus 2024-10-12 17:39:27 -07:00
andrew 8eb5e76336 Add short-circuiting back to range checks 2024-10-12 17:20:22 -07:00