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