Commit Graph

  • 83fedf1f9e Remove dead code andrew 2024-03-15 17:00:20 -07:00
  • 8556caf360 Cachegrind says memset uses fewer instructions here andrew 2024-03-15 16:57:16 -07:00
  • 9d13ca84f5 Fix bug spotted by hand. No test coverage there yet andrew 2024-03-15 16:55:34 -07:00
  • a79436ee9b Use statically-known numChildren in Node3 -> Node16 andrew 2024-03-15 16:49:45 -07:00
  • e9c8537cf2 Copy Node members and set children pointers in copyChildrenAndKeyFrom andrew 2024-03-15 16:28:58 -07:00
  • 5b988efe6f Consolidate copyChildrenAndKeyFrom implementations andrew 2024-03-15 16:12:44 -07:00
  • e35d698b21 Improve copyChildrenAndKeyFrom-related codegen andrew 2024-03-15 08:10:25 -07:00
  • 30496d14e7 Don't print out filename in TestDriver.cpp andrew 2024-03-15 07:44:11 -07:00
  • eb93157ddf Improve codegen in freeAndMakeCapacityAtLeast andrew 2024-03-14 18:49:49 -07:00
  • 9cafef8bbb Update benchmarks after fixing skip list bug in a9b3d3d andrew 2024-03-14 15:50:55 -07:00
  • 6f81580953 Guard SHOW_MEMORY-only code andrew 2024-03-14 15:40:09 -07:00
  • 429fe5baed Fix some uses of uninitialized memory andrew 2024-03-14 15:39:37 -07:00
  • a0451e4423 Give radix tree setOldestVersion an extra 10 work per call andrew 2024-03-14 15:32:39 -07:00
  • a9b3d3d1c9 Show peak memory in skip list, and fix setOldestVersion bug andrew 2024-03-14 15:31:29 -07:00
  • b817e3c749 Track malloc size with a header for SHOW_MEMORY andrew 2024-03-14 15:30:46 -07:00
  • ee36bda8f8 Track initializedness of Node memory more precisely andrew 2024-03-14 14:47:11 -07:00
  • a8f4bd91c8 Use asan and ubsan for whitebox/fuzz tests andrew 2024-03-14 13:47:21 -07:00
  • 35086ee66a Add GCOVR_EXCL_LINE to default labels too andrew 2024-03-13 20:54:05 -07:00
  • 0f795cf163 Set -DNVALGRIND for release artifacts andrew 2024-03-13 20:45:59 -07:00
  • a07c93ffff New switch idiom andrew 2024-03-13 20:07:27 -07:00
  • c68f563017 "partial capacity bytes" -> "partial key capacity bytes" andrew 2024-03-13 18:51:48 -07:00
  • 6b6a9bace9 Fix SHOW_MEMORY for gcc and glibc on linux andrew 2024-03-13 16:57:38 -07:00
  • 3cb0765fdd Rework SHOW_MEMORY andrew 2024-03-13 16:48:28 -07:00
  • 351ff3df3b Cave in and just add the unreachable's gcc wants andrew 2024-03-13 14:58:34 -07:00
  • e818648cdc makeCapacityAtLeast -> freeAndMakeCapacityAtLeast andrew 2024-03-13 14:01:47 -07:00
  • 12540b8713 maybeDecreaseCapacity policy was too strong andrew 2024-03-13 14:00:01 -07:00
  • c2606cd26a Add clang build in jenkins and record issues for clang andrew 2024-03-13 13:39:39 -07:00
  • 4b72fc0b7b Try -fstrict-enums andrew 2024-03-13 13:28:09 -07:00
  • a9caa0249e Use plain enum for type andrew 2024-03-13 13:20:48 -07:00
  • 08b2b7f41a Move comment to above field it's commenting on andrew 2024-03-13 12:38:16 -07:00
  • 26bd8b94cc Lower kBytesPerKey to 144 by changing Node4 to Node3 andrew 2024-03-13 12:29:01 -07:00
  • 55eaef5b1d Remove 16 bytes from Node0 andrew 2024-03-13 10:59:25 -07:00
  • 797e6b4a3e Use switch for type dispatch throughout andrew 2024-03-13 10:52:18 -07:00
  • ee86b5289b Rearrange induction inequalities andrew 2024-03-13 07:31:24 -07:00
  • b779c0f6f7 Fix induction (again). Now it's 176 bytes per key andrew 2024-03-13 07:26:49 -07:00
  • ef802b8acd Only skip free list from maybeDecreaseCapacity andrew 2024-03-12 17:33:28 -07:00
  • 5371c2bede Change kMinChildrenNode4 to 2, fixing the induction andrew 2024-03-12 16:34:20 -07:00
  • 75c304bbe7 WIP my understanding of the memory bound induction was wrong andrew 2024-03-12 15:44:25 -07:00
  • aefb83dbc6 Prepare for erase to invalidate children of parent andrew 2024-03-12 15:54:21 -07:00
  • b0ac7e41b9 Update corpus andrew 2024-03-12 14:48:58 -07:00
  • 4b6b2747bf Relax capacity property so that it _eventually_ needs to hold andrew 2024-03-12 12:47:24 -07:00
  • 1496aa106b Avoid an unnecessary node0 to node4 transition andrew 2024-03-12 11:44:58 -07:00
  • 71e117965e Fix issue with getSearchPath on nullptr on setOldestVersion andrew 2024-03-12 11:02:51 -07:00
  • 471b276947 Downsize nodes in erase andrew 2024-03-12 10:30:14 -07:00
  • b721bc80a9 Document that erase may invalidate search path andrew 2024-03-11 22:47:48 -07:00
  • 5e4eab55fb Avoid re-inserting begin if begin is not a prefix of end andrew 2024-03-11 22:43:52 -07:00
  • 1dcb380c73 Use getInTree in insert andrew 2024-03-11 22:22:49 -07:00
  • 87d650ff00 Change eraseChild to erase andrew 2024-03-11 21:54:20 -07:00
  • b8f6a8edf2 sizeof(Node0) also needs to be < kBytesPerKey andrew 2024-03-11 16:14:26 -07:00
  • 01f1d5850f Create a Node0 when splitting existing partial key andrew 2024-03-11 16:22:14 -07:00
  • cd567383c3 Only keep the assume's that actually improve codegen andrew 2024-03-10 14:34:55 -07:00
  • 53a442abf9 Use the assume attribute for gcc andrew 2024-03-10 14:22:47 -07:00
  • 6e212847ac Add assume macro andrew 2024-03-09 19:45:54 -08:00
  • 44a023c2f4 Bound individual size of allocation to put in free list andrew 2024-03-08 22:41:18 -08:00
  • e32bea7b29 Enforce free list memory bound by tracking bytes directly andrew 2024-03-08 21:46:35 -08:00
  • 504a93bb10 Track partialKeyCapacity andrew 2024-03-08 21:10:47 -08:00
  • b79d8f71d3 Replace destructor call with static assert andrew 2024-03-08 17:17:12 -08:00
  • 34430dbbe7 Remove longestCommonPrefixPartialKey andrew 2024-03-08 17:14:45 -08:00
  • 06fcb2531e Add an analysis on memory usage in static asserts andrew 2024-03-08 17:04:22 -08:00
  • bd24a362e3 Remove dead code and fix whitespace issue andrew 2024-03-08 16:44:42 -08:00
  • 1437280ec7 Attempt valgrind fix andrew 2024-03-08 15:00:40 -08:00
  • e5051bac9e Clean up some vestiges of fixed-size partial keys andrew 2024-03-08 14:56:16 -08:00
  • 733f32b22e Bring back precommit check for SHOW_MEMORY andrew 2024-03-08 14:44:35 -08:00
  • 3fb8bf7c3b Bring back custom allocator andrew 2024-03-08 14:43:18 -08:00
  • 0c8cb8faa5 Add specializations for partialKey() andrew 2024-03-08 14:01:56 -08:00
  • 93e487c8fb Only track partialKeyCapacity in tests andrew 2024-03-08 13:58:40 -08:00
  • d91538dcad Variable length partial keys andrew 2024-03-08 13:50:40 -08:00
  • 43a768d152 Reorder some Node fields andrew 2024-03-08 13:33:38 -08:00
  • 2989866a6d Move type field to end of Node andrew 2024-03-08 13:29:02 -08:00
  • 60df97847c Fix missed memcpy update andrew 2024-03-08 13:23:43 -08:00
  • 0038382661 Prepare to bitpack node fields if desired andrew 2024-03-08 13:11:46 -08:00
  • 782abc70d6 Remove custom allocator andrew 2024-03-08 13:02:33 -08:00
  • 8802d17acd Remove Node::Invalid andrew 2024-03-08 12:57:06 -08:00
  • 02afd47d8f Node1 -> Node0 andrew 2024-03-08 12:07:24 -08:00
  • 987e93b190 Update corpus andrew 2024-03-07 18:31:04 -08:00
  • 81263f5abf Remove -Wpedantic for gcc andrew 2024-03-07 17:53:23 -08:00
  • 2689901637 Suppress gcc warning about anon structs andrew 2024-03-07 17:48:44 -08:00
  • 87dd70c4b6 Fix bug introduced in 5e1fb1dac5 andrew 2024-03-07 17:43:34 -08:00
  • 451ac5b2b6 Improve ConflictSet.h readability andrew 2024-03-07 16:17:17 -08:00
  • a8042ab20d Simplify firstGeq - make it not stepwise andrew 2024-03-07 16:05:38 -08:00
  • 8a36e72640 Update readme benchmarks andrew 2024-03-07 15:53:39 -08:00
  • 1519216d08 Replace is_pod_v with is_trivial_v andrew 2024-03-07 14:26:01 -08:00
  • f2cd05c29d Move Node::type to beginning of Node andrew 2024-03-07 14:17:14 -08:00
  • 5e1fb1dac5 Use entry bytes in partial key if entry not present andrew 2024-03-07 13:33:39 -08:00
  • d1a6b293e9 Revert "Add getChildNodeGeq, use in nextLogical" andrew 2024-03-07 12:41:34 -08:00
  • be43143891 Tidying andrew 2024-03-07 12:33:34 -08:00
  • 53bc36f628 Add getChildNodeGeq, use in nextLogical andrew 2024-03-07 12:12:02 -08:00
  • 0f360fa806 Fill in "Checking point reads" andrew 2024-03-06 21:22:30 -08:00
  • 00389936a8 Update fdb patch andrew 2024-03-06 18:25:23 -08:00
  • 04f75d57e9 Add HOMEPAGE_URL andrew 2024-03-05 18:28:48 -08:00
  • 6a0344e821 Remove some vestigial cmake stuff andrew 2024-03-05 18:10:51 -08:00
  • 2fcf3da29f Use a warmup instead andrew 2024-03-05 17:22:11 -08:00
  • c8495b1695 Drain all pending work in hashtable's setOldestVersion andrew 2024-03-05 17:18:58 -08:00
  • d81d02f11d Don't gc in write benchmarks andrew 2024-03-05 17:09:28 -08:00
  • be5f1b67c8 Interface change! addWrites now takes a single write version andrew 2024-03-05 16:50:53 -08:00
  • ec3aec4dff Assume writeVersion highest-ever to avoid max calculation andrew 2024-03-05 16:06:50 -08:00
  • 9a4eed9453 Try setting more package metadata andrew 2024-03-05 12:58:04 -08:00
  • 30abf7833d Use gcc for coverage build andrew 2024-03-05 12:41:19 -08:00
  • d9c0d24e58 Don't run benchmarks in jenkins andrew 2024-03-05 12:34:35 -08:00
  • 3f121dc681 Trim down docker file and avoid valgrind when cross-compiling andrew 2024-03-05 11:39:36 -08:00