Better L4 and array storage design

This commit is contained in:
Youmu Liu
2026-03-04 18:12:58 +08:00
parent 7e970352ab
commit dfa6f4ba92
103 changed files with 853 additions and 6837 deletions
@@ -151,6 +151,24 @@ L4 缓存器是一个纯软件实现的**线程本地数据缓存层**,
- 所在热度级别
- 单链表的 next 指针
### 3.5 并发模型
L4 采用「**部分并发**」设计:
| 操作 | 执行者 | 并发性 |
|---|---|---|
| Lookup(Swiss Table 读) | 各工作线程 | ✅ 完全并行 |
| Load(Slab分配+插入) | L4 服务线程 | 串行(单消费者) |
| Evict(逐出+可选写回) | L4 服务线程 | 串行 |
| Flush(dirty批量写回) | MatrixParallelWrap | 计算任务结束后单次执行 |
**Swiss Table 并发读安全保证**:服务线程插入时遵守严格写顺序:
先写 key/value,`sfence`,再写控制字节,确保工作线程
读到控制字节时 key/value 已完整可见。
**热度更新简化**:热度仅在 Load 时由服务线程设置,
Lookup 命中时不修改热度,确保 Lookup 路径零写操作。
---
## 4. 操作流程