100 Commits
Author SHA1 Message Date
andrew 6abd8139f0 Fix clangd warnings 2025-05-20 22:25:49 -04:00
andrew 57cceaf3b7 Fix an issue with versioned-only benchmark
Previously it was reading some of the keys from unversioned storage.

Also add some more benchmarks
2024-06-19 15:08:16 -07:00
andrew 39273424c1 Only search backward for materializing clear range 2024-06-19 12:16:09 -07:00
andrew c4c269ab94 Skip unversioned for adjacent mutations, reverse reads 2024-06-17 12:22:43 -07:00
andrew fcb881f408 Skip unversioned until non-adjacent mutation in facade
Only implemented for forward reads so far
2024-06-17 11:57:36 -07:00
andrew b2ce851d56 Update corpus 2024-06-15 22:16:52 -07:00
andrew e11ee26332 Allow stack to grow in gc
The previous bound was valid in each logical version of the map, but not
for the physical map's structure.
2024-06-15 20:28:43 -07:00
andrew 0af75f5e9c Make gRandom inline
I have no idea why I made it static
2024-06-15 20:18:08 -07:00
andrew 43ba21329b Mark remainder of rightmost page no_access after gc 2024-06-15 18:11:18 -07:00
andrew 3e9c69e857 Update corpus 2024-06-15 09:47:20 -07:00
andrew edb76feadf Remove "next" argument from materializeMutations 2024-06-14 23:40:09 -07:00
andrew 2eea70f063 Fix a bug where a range end's version wasn't updated 2024-06-14 23:26:00 -07:00
andrew be3032e2f3 Fix a use of an invalid iterator 2024-06-14 23:25:43 -07:00
andrew b34d559c02 Strengthen valgrind checks 2024-06-14 22:31:05 -07:00
andrew e4a77c88d8 Fix two canonicalization bugs 2024-06-14 21:51:59 -07:00
andrew a63fd3970b Reworking the representation for the beginning of a clear range
Most tests pass. Some tests fail.
2024-06-14 19:13:51 -07:00
andrew 685b49c96d WIP adhoc test looks ok 2024-06-14 17:58:33 -07:00
andrew 8b22fbe261 Tinker with main 2024-06-14 17:19:02 -07:00
andrew 729fcdb616 Avoid some insertions in point clears 2024-06-14 16:00:08 -07:00
andrew 551f34baf4 Add whitebox tests
Previously we had NDEBUG set for all testing (except libfuzzer)
2024-06-14 14:44:01 -07:00
andrew 63bea7ff1e Add LICENSE 2024-06-14 14:31:08 -07:00
andrew b5997d5ccc Add disclaimer to README 2024-06-14 14:30:14 -07:00
andrew efd2405443 Check "latestRoot" property 2024-06-05 12:41:07 -07:00
andrew 1492a1c3d4 Fix linux symbol exports 2024-06-05 12:27:42 -07:00
andrew 0d059ec1fd Move all * to weaselab column in readme 2024-06-05 10:47:28 -07:00
andrew f1d10a1fed Amortize cost of searching for continueKey 2024-06-05 10:41:21 -07:00
andrew 742f1da722 Improve clarity in operator{--,++} 2024-06-04 16:31:19 -07:00
andrew 13f6279970 Branch-free child function 2024-06-04 13:59:26 -07:00
andrew 118071e3e9 Share kStackAllocThreshold 2024-06-03 22:35:49 -07:00
andrew b92f0ec227 Add efficient firstGeq overload for latestVersion 2024-06-03 22:32:47 -07:00
andrew ba11412584 Fix typo 2024-06-03 14:51:17 -07:00
andrew e772f066d5 Add rough memory usage 2024-06-03 14:50:49 -07:00
andrew 7667d02987 Add benchmarks to readme 2024-06-03 14:46:39 -07:00
andrew 47c1ff5636 Remove unnecessary hyphen 2024-06-03 14:41:35 -07:00
andrew 03ec6326a4 Add README.md 2024-06-03 14:40:35 -07:00
andrew 509dab82e3 Don't declare move constructors for Iterator unless c++11 2024-06-03 13:44:38 -07:00
andrew 9e90d5aadf Use more conventional field order in Mutation 2024-06-03 13:26:27 -07:00
andrew a3591ebdb8 Reuse iterators in bench 2024-06-03 13:20:55 -07:00
andrew 96f9492a97 Use distinct but larger versions in firstGeq bench 2024-06-03 13:20:21 -07:00
andrew fd618d0f07 Bug fix
The bottommost node of a finger isn't necessarily the root for an
iterator's version. It could be "end"
2024-06-03 12:56:17 -07:00
andrew f5fdc3eaf1 Store version instead of pointer to version 2024-06-03 12:28:26 -07:00
andrew ae2b50d765 Interleave key search 2024-06-03 12:27:37 -07:00
andrew f8b8c92b40 ILP firstGeq WIP 2024-06-03 12:23:54 -07:00
andrew 62cefe1990 Add bulkFirstGeq benchmark 2024-06-03 10:46:35 -07:00
andrew 169afd629c Clarify addMutations documentation 2024-05-31 14:24:53 -07:00
andrew 5da76e4585 Fix linux build 2024-05-30 18:02:05 -07:00
andrew 6c3eae219d Remove duplicated operator<=> 2024-05-30 11:14:44 -07:00
andrew 7a7eef2b7d Tweak header documentation 2024-05-30 10:41:57 -07:00
andrew 5b6e610d54 Update corpus 2024-05-30 10:29:24 -07:00
andrew 16c2bb1d11 Enable asserts in fuzz target 2024-05-29 22:00:18 -07:00
andrew 10b032076e Update corpus 2024-05-29 17:59:00 -07:00
andrew 887f400a47 Expand clears 2024-05-29 17:45:23 -07:00
andrew dab6929e88 Add Entry::pointClear 2024-05-29 16:13:45 -07:00
andrew f1f4d66678 Prepare to fully canonicalize views 2024-05-28 21:38:08 -07:00
andrew 93ff83e422 Start facade past window in bench 2024-05-28 17:17:30 -07:00
andrew 25dea71f00 Add TODO 2024-05-28 17:00:49 -07:00
andrew 0de303b6c6 Improve SHOW_MEMORY accounting 2024-05-28 16:54:46 -07:00
andrew dc587e627b Fuzzer thinks FdbVersionedMap seems ok 2024-05-28 16:35:58 -07:00
andrew 3aa192255e Identify some FdbVersionedMap bugs 2024-05-28 14:01:51 -07:00
andrew 1b5ed72ab9 Add FdbVersionedMap. Not working yet 2024-05-28 13:47:13 -07:00
andrew 42298a911a Prepare to add fdb implementation
Fixes a end iter deref and remove rpath from test
2024-05-28 13:23:06 -07:00
andrew 37f972145e Re-use search implementation in insert 2024-05-24 14:49:59 -07:00
andrew d11150926b Preserve finger after insert 2024-05-24 14:17:11 -07:00
andrew d51c58e6d5 Add operator== for Finger 2024-05-24 13:58:19 -07:00
andrew 8f8ea62ed5 Remove dead code 2024-05-23 21:15:12 -07:00
andrew 9917078682 Fix weird whitespace 2024-05-23 18:30:06 -07:00
andrew 021569f033 Templatize direction for move 2024-05-23 18:26:26 -07:00
andrew b5dbf4a049 Avoid copies in Facade 2024-05-23 17:27:55 -07:00
andrew 2764a049a8 Merge two iterators approach for reverse case 2024-05-23 16:52:23 -07:00
andrew 5ff7ecc6fc Facade: two iterator merge approach for forward case 2024-05-23 16:25:29 -07:00
andrew 5b4c7ddf7d Don't scan+apply every setOldestVersion call 2024-05-23 14:54:07 -07:00
andrew e08ec7c54d Don't reapply mutations at unversionedVersion 2024-05-23 14:31:54 -07:00
andrew c65004d60f Skip applied mutations in Facade::setOldestVersion 2024-05-23 11:22:38 -07:00
andrew 262c9cd10c Scan and remove old entries in addMutations 2024-05-22 16:07:34 -07:00
andrew 82c8f95dbe More benchmarks 2024-05-22 14:26:05 -07:00
andrew 3e1bd9c7b8 Add benchmark. Looks slow :/ 2024-05-22 13:14:25 -07:00
andrew 49a1ec0ab7 Add fuzz corpus and blackbox tests 2024-05-20 15:12:05 -07:00
andrew 89c6aae53a Fix bugs found through fuzzing 2024-05-19 20:08:27 -07:00
andrew e23f11c1f0 Add reference implementation 2024-05-19 17:02:27 -07:00
andrew 445aee2ce9 Fix bug where gc was scanning uninit memory 2024-05-17 13:36:03 -07:00
andrew d3dc7406cf Fix gc memory leak 2024-05-16 22:31:05 -07:00
andrew ba9db0ddae Add basic debug printing 2024-05-16 21:41:18 -07:00
andrew 2bc827f767 Fix linux includes 2024-05-16 21:16:29 -07:00
andrew 190cd05c13 Initialize version sooner in VersionedMap::begin 2024-05-16 18:45:26 -07:00
andrew 1e1f5d6d5c Add FacadeFuzz 2024-05-16 17:29:02 -07:00
andrew 36779a068e Remove cmp for now 2024-05-16 16:38:41 -07:00
andrew 3819b83d78 Logically revert 0071600
Return mutation intersecting query key if it exists
2024-05-16 16:09:39 -07:00
andrew d0bfdcb07d Remove redundant code 2024-05-15 19:47:30 -07:00
andrew 7526e119af Annotate interposable calls to fix later 2024-05-15 17:05:14 -07:00
andrew 3eea0f6a60 s/readThrough/readFrom/g 2024-05-15 16:34:49 -07:00
andrew 007160098e Change firstGeq to compare to param1 2024-05-15 16:31:34 -07:00
andrew 464d720a6b Handle decrementing end 2024-05-15 14:53:58 -07:00
andrew 2b22a7823a Add gRandom and gArbitrary and initFuzz 2024-05-15 14:14:44 -07:00
andrew 75d5e811de Avoid some copies in Facade 2024-05-15 13:53:05 -07:00
andrew 63fdc5e4f5 Allow begin >= end for unversionedRead 2024-05-15 13:49:48 -07:00
andrew 3bdf345ae7 Add x86 linux symbols 2024-05-14 18:31:45 -07:00
andrew 207314d950 Fix putchar import 2024-05-14 18:13:55 -07:00
andrew 006807b17f Add symbols imported in seededRandom 2024-05-14 18:05:04 -07:00
andrew a7005af6ba Rotate all the way to the bottom for simplicity 2024-05-14 18:04:35 -07:00
andrew 5afe1037b2 Call Facade::setOldestVersion 2024-05-14 17:46:01 -07:00