Commit 917a616
Release v3.0: Complete rewrite with benchmarks and paper updates
Major Changes:
- Migrated to C++23 for std::expected and concepts
- Implemented maph v3 with composable design (hashers, storage, table)
- Archived v1/v2 implementations to archive/ directory
- Fixed critical hash truncation bug (32-bit storage vs 64-bit comparison)
New Features:
- Comprehensive benchmark suite (latency, throughput, comparison)
- Memory-mapped storage with lock-free reads
- Hybrid hasher (perfect hash + FNV-1a with linear probing)
- Fixed 512-byte slots with cache-line alignment
Benchmarks (1M keys, 200-byte values):
- Median GET latency: 351ns (sub-microsecond)
- Throughput: 2.69M ops/sec single-threaded, 17.24M with 8 threads
- Near-linear scaling: 4.42× speedup on 4 cores (110% efficiency)
- 1.88× faster bulk inserts vs std::unordered_map
Paper Updates:
- Updated Tables I-V with real measured data
- Removed fictional benchmarks (SIMD, YCSB, case studies)
- Added honest comparison showing trade-offs vs std::unordered_map
- Fixed architecture description (removed incorrect 80/20 claim)
- Added complete experimental methodology section
Documentation:
- BENCHMARK_RESULTS.md with comprehensive analysis
- PAPER_CHANGES_SUMMARY.md tracking all revisions
- REFACTORING_SUMMARY.md documenting code cleanup
Build System:
- Updated CMakeLists.txt for C++23 and v3 only
- Added benchmark and test targets
- OpenMP support for future optimizations
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>1 parent c5e448e commit 917a616
46 files changed
Lines changed: 8892 additions & 137 deletions
File tree
- archive
- include
- maph
- integrations/rest_api
- src
- tests
- benchmarks
- docs
- examples
- include/maph/v3
- tests/v3
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
5 | | - | |
| 4 | + | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | | - | |
| 25 | + | |
26 | 26 | | |
27 | | - | |
| 27 | + | |
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| 31 | + | |
31 | 32 | | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
37 | 38 | | |
38 | 39 | | |
39 | | - | |
40 | | - | |
| 40 | + | |
| 41 | + | |
41 | 42 | | |
42 | | - | |
| 43 | + | |
43 | 44 | | |
44 | 45 | | |
45 | 46 | | |
46 | 47 | | |
47 | | - | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
52 | 55 | | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
57 | 63 | | |
58 | | - | |
59 | | - | |
60 | | - | |
61 | | - | |
62 | | - | |
63 | | - | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
64 | 68 | | |
65 | 69 | | |
66 | 70 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
0 commit comments