Commit 88936ea
Yet another key-val map code generator
By popular demand, this is a serial version of fd_map_slot_para.
Because it is serial, the API can be and has been made a lot a simpler.
As a result, this can also be thought of as version of fd_map_dynamic
that has been updated to have the advanced features (sans lockfree
concurrency) of fd_map_slot_para. This includes:
- First class support for seeded hashing (this has also been
backported to fd_map_dynamic).
- First class support for upserting.
- First class support for prefetching (including efficient handling
of expensive key hashing between prefetch and use).
- No requirement for a sentinel key. (Maps that do use sentinel
keys are still supported.)
- Improved support for key-val pairs that are not plain-old-data.
- Bounded and configurable worst case algorithmic bounds (and, as a
side effect, no requirement for the user to guarantee there is
always at least one free element in the element store).
- Iteration over all keys with a common hash (e.g. for maps that
use structured hashing to group keys together).
- A run-time data integrity verification function.
See code comments for more details.1 parent 48feae3 commit 88936ea
3 files changed
+1795
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| 20 | + | |
20 | 21 | | |
21 | 22 | | |
22 | 23 | | |
| |||
47 | 48 | | |
48 | 49 | | |
49 | 50 | | |
| 51 | + | |
50 | 52 | | |
51 | 53 | | |
52 | 54 | | |
| |||
0 commit comments