docs(runtime): clarify ledger authority and scheduler durability boundaries

This commit is contained in:
2026-11-12 12:44:51 +08:00
parent dadfd0e41d
commit 56a9806bc0
3 changed files with 68 additions and 29 deletions
+4 -2
View File
@@ -1,6 +1,7 @@
/**
* runtime 使用的基础调度容器,不包含任务状态事实:FIFO 存可执行顺序,min-heap 存优先项。
* 两者都是内存结构,ledger/checkpoint 才负责可恢复事实;容器本身不去重、不校验依赖或执行网络。
* T 值按引用保存/返回,不复制冻结任务对象,也不以 size/clear 修改外部任务事实。
*/
/** FIFO with amortized O(1) removal, without Array.shift on each item. */
/** 当前接口是先进先出队列:push 入尾、pop 出头,并非 history 的后进先出 stack。
@@ -24,12 +25,13 @@ export function createDeque<T>() {
},
/** 同时丢弃底层数组和游标,释放旧任务引用。 */
clear() { items = []; head = 0; },
/** 返回有效区间的数组副本,外部改副本不会更改队列成员。 */
/** 返回有效区间的浅数组副本,改副本成员位置不改队列;对象成员仍共享引用。 */
values() { return items.slice(head); },
};
}
/** 数组实现二叉最小堆,compare<0 表示左项优先;peek O(1),push/pop O(log n)。
* 相等优先级不保证插入稳定性,上层若需要 FIFO tie-break 必须把序列写进 comparator。 */
* 相等优先级不保证插入稳定性,上层若需要 FIFO tie-break 必须把序列写进 comparator。
* compare 应稳定、同步且不抛错;容器不校验 comparator,比较中途异常也不提供事务回滚。 */
export function createMinHeap<T>(compare: (left: T, right: T) => number) {
// 父下标 (i-1)>>1,左右孩子 2i+1/2i+2;堆序只要求父不大于孩子,不是全数组排序。
const items: T[] = [];