建议:评价一套优化的同步订货,以替代 " 并行 " 系统,处理繁重的阅读工作量
< img width="2700" height="750" alt="Image" src="https://GitHub.com/user-attachments/assets/fe0316ac-053f-4904-bdce-9959bdf45e50" />
背景
我已经构建了一个并发红黑树 — ConcurrentRBTree — 其 API 与 folly::ConcurrentSkipList 兼容(相同的 Accessor 模式,相同的 EBR 样式 NodeRecycler,相同的 find / insert / erase / lower_bound / iterator 表面)。在读写负载中,它在 Intel i9-13900K 上的总体吞吐率上比 ConcurrentSkipList 高 1.4–1.55 倍。
我想征求团队的意见,看看是否有兴趣进行上游评估 — 或者至少将其添加为 ConcurrentSkipList 的基准。无论哪种情况,都没有强烈的期望;主要是想让团队了解这一数据点。
基准总结
工作负载:int32_t,所有线程均进行混合读/写,写操作概率从 10⁻³ 扫描到 0.5,写操作分为 50/50 插入/删除(50/50 现有/不存在的键)。Intel i9-13900K,Linux,clang++ -O2 -DNDEBUG。
聚合吞吐率比(红黑树/跳表):
| 线程 × 初始化大小 | 比率 |
|---|---|
| 1 × 8M | 1.16× |
| 16 × 8M | 1.52× |
| 27 × 8M | 1.41× |
| … |
内容来源: facebook/folly