术语表 / Glossary¶
统一项目内反复出现的模式与领域词汇——尤其是缓存 / 懒加载这一族,容易和编程语言
理论里的「惰性求值」混淆。约定:中文一律用「懒加载」,不用「惰性求值」;英文用
lazy loading / cache-aside / write-through 等业界标准词。写代码注释、ADR、文档时
以本表为准。
1. 懒加载与缓存(核心词族)¶
QuantumAtlas 的 OpenAlex 语料、PDF、Markdown 都不预先全量物化,而是首次被请求时才现产 并缓存。这一族词描述的就是这套机制。
中文 |
English |
定义 |
|---|---|---|
懒加载 |
lazy loading / load-on-demand |
首次访问某数据时才现产(拉取 / 计算),而非预先全量加载。 |
旁路缓存 |
cache-aside |
读路径:先查缓存;未命中 → 从事实源现产 → 写回缓存 → 返回。懒加载的标准实现形态。 |
写穿(缓存) |
write-through (cache) |
现产后在同一路径内把结果写回缓存 / 持久层,使下次读命中本地。 |
按需拉取 / 未命中拉取 |
fetch-on-miss |
cache-aside 里「未命中 → 现产」那一步的具体说法。 |
记忆化 |
memoization |
把一次(昂贵)计算的结果缓存,后续同输入直接返回。懒加载「缓存结果」的本质。 |
预热 |
pre-warm |
提前批量灌入缓存以减少运行时未命中。QA 的 |
自愈 |
self-heal |
未命中时懒加载自动补齐,无需人工 / 批处理干预。 |
别用「惰性求值」
编程语言语义的惰性求值 / lazy evaluation / call-by-need(thunk、生成器那一套「用到才算」) 在 QA 里不存在。QA 是 cache-aside 式懒加载——写文档 / 注释统一用「懒加载」。
代码出处:corpus.UpsertFetchedWork(写穿)、Resolver.FetchWorkRecord(按需拉取)、
internal/routes/papers_lookup.go::fetchOnMiss(OpenAlex 懒加载);设计见 ADR 0006。
2. 执行模式:同步物化 vs 异步物化¶
同一套懒加载,按「现产成本」分两种执行模式。默认约定:OpenAlex 语料同步、PDF/MD 异步。
中文 |
English |
语义 |
QA 用在哪 |
|---|---|---|---|
同步物化 |
synchronous materialization |
在请求内阻塞现产 + 写回,响应直接带结果。产得快才适合。 |
OpenAlex 语料 by-id 解析( |
异步物化 / 长时操作 |
asynchronous materialization / long-running operation (LRO) |
后台现产,请求立即返回一个「操作句柄」,客户端轮询到就绪。产得慢 / 贵才用。 |
PDF / Markdown(MinerU:网络拉取 + 分钟级转换 + 每日配额) |
LRO 轮询协议(PDF / MD 走这个):未命中 → 202 Accepted + Operation-Location: …/status
Retry-After→ 客户端轮询…/status→ 就绪后取内容200。对齐 AzureOperation-Location/ Google AIP-151 的长时操作约定。设计见 ADR 0011。
PDF / MD 有没有同步调用?
热(资产已在存储):首次调用即
200返回字节 / 直链 —— 等价同步。冷(尚未物化):永远
202+ 轮询,没有?wait=阻塞参数。这是刻意的:MinerU 转换分钟级 + 限流 + 有配额,同步阻塞会吃满连接。
3. 相关并发 / 操作模式¶
中文 |
English |
定义 |
出处 |
|---|---|---|---|
并发合并 |
singleflight / request coalescing |
同一 key 的并发调用合并成一次现产、共享结果,避免重复拉取。 |
|
在途去重 / 搭车 |
in-flight dedup / piggyback |
同一资产已有任务在跑,新请求搭车共享、不另起。MinerU converter 的 |
|
有界并发 / 信号量限流 |
bounded concurrency (semaphore) |
用带缓冲 channel 限制并发任务数。 |
|
优雅降级 |
graceful degradation |
依赖(PG / 对象存储)不可达时降级返回( |
ADR 0006 |
4. 领域术语(项目高频)¶
中文 |
English |
定义 |
|---|---|---|
语料 |
corpus |
本地留存的 OpenAlex works 元数据( |
规范 ID |
canonical id |
arXiv 论文的归一主键(裸 id + 版本后缀 |
catalog(目录) |
catalog |
论文资产目录( |
资产 / artifact |
asset / artifact |
一篇论文的某种物化产物:PDF / Markdown / JSON。 |
claim(声明) |
claim |
lean 侧的文献学声明(哪条 Lean 定理引用哪篇论文),只读引用 |
lease(租约) |
lease |
MinerU 转换的独占租约(防并发重复转换),per-asset。与 claim 是两回事,已改名解耦。 |
访问开关 |
access gate |
|
5. 弃用 → 规范 对照¶
弃用 / 易混 |
用这个 |
原因 |
|---|---|---|
惰性求值、惰性(填充) |
懒加载 |
与 PL 的 lazy evaluation(thunk)混淆;QA 是 cache-aside 式懒加载 |
惰性(休眠义,如「插件处于惰性状态」) |
休眠 / 未激活(dormant) |
与「懒加载」撞词;表达「未启用」用休眠更准 |
MinerU claim(旧名) |
lease(租约) |
「claim」现专指 lean 的文献学声明;转换独占改叫 lease |