Glossary#
本页定义 Perago 文档中的固定术语。避免使用 表示容易混淆、在 Perago 语境中不宜替代固定术语的说法。
Task language#
Task Module#
一个 Python module,且只声明一个 Perago task worker。
避免使用:app、registry module、multi-task worker file。
Task Worker#
由 typed Python function 和 Perago task metadata 共同定义的一个 Conductor task type。
避免使用:route、endpoint、handler app。
Task Contract#
从 Python 函数签名推导出的输入和输出结构。
避免使用:duplicated params declaration、duplicated output declaration。
Task Controls#
映射到 Conductor TaskDef retry、timeout 和 execution-limit 字段的 Perago 配置对象。
避免使用:task contract、business params、workflow input。
Task Function Signature#
Task worker 必须使用的 Python callable 签名:workspace task 接收 workspace 和 params,workspace-free task 只接收 params,并返回 typed Pydantic model。
避免使用:arbitrary callable、variadic args、keyword-only contract。
Contract fields#
Workspace Input#
Conductor input 中标识 LakeFS repository、writable branch、immutable commit ref 的字段。Perago 会把它暴露成本地路径。
避免使用:business parameter、params field、workspace prefix。
Workspace Output#
Conductor output 中携带成功完成后的 LakeFS repository、writable branch、immutable commit ref 的字段。
避免使用:business result、params field、workspace prefix。
Params Input#
Conductor input 中承载业务 payload 的字段。
避免使用:top-level business fields、workspace metadata。
Result Output#
Conductor output 中承载业务返回值的字段。
避免使用:workspace metadata、top-level business fields。
Workspace language#
Workspace Prefix#
task 在代码里声明的 LakeFS path prefix。Perago 把这个 prefix 暴露成本地 workspace root。
避免使用:workflow input、workflow output、runtime credential。
Workspace Check#
task 声明的本地 workspace 文件检查。源码和公开 API 中仍使用 guardrail 命名,例如 require_file、require_glob 和 check_guardrails。
避免使用:business validator、schema validator、data transformer。
Workspace Access Mode#
task 声明的 workspace 意图,用来说明 workspace task worker 是否允许发布 workspace 变更。
避免使用:inferred write mode、runtime guess。
Read-Only Workspace Task Worker#
workspace access mode 禁止 workspace publication 的 workspace task worker。
避免使用:workspace-free task、fake workspace。
Workspace Path#
相对于本地 workspace root 的逻辑路径。
避免使用:absolute path、process working directory path、host-specific storage path。
Attempt Workspace#
一次 task attempt 执行 workspace task worker 时使用的本地文件系统目录。
避免使用:shared worker workspace、task-type workspace、process workspace。
Workspace Branch#
可写 workspace task worker 成功发布时写入的 LakeFS branch。
避免使用:immutable input version、temporary branch。
Protected Workspace Branch#
只接受 Perago 通过 LakeFS merge 更新的 workspace branch。
避免使用:direct object writes、direct branch commit、business lock。
Workspace Ref#
workspace task worker 读取的不可变 LakeFS commit ref。
避免使用:mutable branch name、latest branch head。
Runtime language#
Task Attempt#
Conductor 对一个 task worker 的一次执行 attempt。
避免使用:logical task、worker process。
Logical Task Key#
workflow step 跨重试保持稳定的身份。
避免使用:task id、worker id、process id。
Workspace Transaction#
Perago 管理的发布边界,用于把本地 workspace 结果变成 workspace output。
避免使用:direct branch write、business transaction。
No-Op Workspace Completion#
成功完成但 output workspace ref 与 input workspace ref 相同的 workspace task worker completion。
避免使用:empty commit、fake success。
Serial Workspace Workflow#
所有写入同一个 workspace branch 的 workspace task worker 都按顺序执行,不能并行。
避免使用:parallel workspace writers、fan-out writers。
Single Active Workspace Workflow#
同一时刻只有一个 workflow instance 可以写入某个 workspace branch。
避免使用:duplicate workspace workflow、concurrent rerun。
Staging Branch#
发布前隔离一次 workspace transaction 的短生命周期 LakeFS branch。
避免使用:target branch、workflow branch、permanent branch。
Attempt Fence#
Perago 在发布 workspace transaction 前检查当前 task attempt 是否仍然是 Conductor 的当前 attempt。
避免使用:retry policy、timeout setting。
Publish Fence#
Perago 在发布 workspace transaction 前检查目标 workspace branch 是否仍处于可发布状态。
避免使用:merge strategy、schema validation。
Publish Budget#
Perago 为 LakeFS merge、Conductor completion、heartbeat 和 worker shutdown 预留的操作性时间边界。
避免使用:hard transaction guarantee、exact worst-case duration。
Workspace Task Worker#
接收 versioned workspace 并产出 workspace output 的 task worker。
避免使用:task with optional workspace。
Workspace-Free Task Worker#
只接收 business params 并只返回 business result 的 task worker。
避免使用:empty workspace、fake workspace。
Worker Process#
加载一个 task module 并独立 poll Conductor 的操作系统进程。
避免使用:internal worker slot、process-pool worker。
Worker ID#
运行时给一个 worker process 分配的身份,用于日志和 Conductor polling。
避免使用:task id、process id、logical task key。
Worker ID Prefix#
部署时配置的前缀,worker supervisor 用它生成 worker IDs。
避免使用:worker id、task id、task name。
Worker Supervisor#
perago start -j 启动的父进程,负责启动和重启 worker processes。
避免使用:internal task scheduler、shared task pool。
Module Target#
用于定位一个 task module 的 Python import path。
避免使用:file path、object path、module:app target。