附录 A —— Runtime 与集合 API 速查

本附录用于定位入口,不替代各章的语义、失败窗口和证据边界。API 以 DSM 505e7557 / 0.1.2 为准。

Runtime

动作 入口 关键约束
构建 DsmRuntimeBuilder.builder() 固定 clusterIdserviceId、membership 与安全/观测扩展
注册 Register runtime.register(spec) start() 前完成;locator 不重复
注册 Lease runtime.leaseRegister(spec) 需要 codec、entity factory 与 Lease policy
注册 CRDT runtime.crdt(spec, merger) 需要 update/state codec、initial state 与 merger
启动 runtime.start() registry freeze;成功后进入 RUNNING
诊断 runtime.diagnostics() 节点本地不可变快照,不是全局一致视图
就绪 runtime.isReady() 只有 RUNNING 为 true
关闭 runtime.close() 释放本地资源,不回滚业务副作用

集合公共身份

CollectionLocator = tenantId / applicationId / collectionId
CollectionSpec = locator + schemaId/fingerprint + codec + consistency tier

同名 entryKey 只有在相同通信域与 locator 内才属于同一逻辑集合。schema 不兼容应拒绝,而不是尝试猜测解码。

Register

操作 含义 不保证
put(entity) 本地提交当前候选值 返回时远端已可见
get(key) 当前节点可见值 线性化全局读取
remove(key) 本地提交删除 所有 peer 同步删除完成
all() / size() 本地 projection 查询 全局精确快照
changes(options) 有界观察流 不丢事件的历史日志

冲突 resolver 需要确定;若依赖输入顺序,应明确拒绝或证明交换律。

Lease

操作 关注结果
acquire granteduncertain、holder、expiry、fencing token、reason
renew token/holder 仍有效,成员与模式允许
transfer 新 owner 与更高 fencing token
release 释放本地协调状态,不撤销已发生外部写入

外部资源需要校验 fencing token。AUTONOMOUS 分区模式可能出现临时双 holder;QUORUM 模式在成员不稳定或 quorum 不足时应 fail closed。

CRDT

动作 含义
apply(update) 把本地 update 合入 state 并生成可传播 delta
state() 当前节点的合并状态

merger 应满足交换、结合和幂等。PN-Counter 适合可合并运行计数,不自动成为账务事实。

常用构建器

先设置稳定 locator 和 schemaId,再提供 typed codec;spec 由集中装配边界统一构建,避免散落在业务服务中。

源码入口