Skip to main content

总体思路

Chaintable 的核心思路,是首先在链下构建与链上状态及执行语义相对应的运行环境。在此基础上,进一步解决规模化处理、一致性约束与低延迟在线服务的问题。

设计原则

同一任务内的行级计算相互独立

同一任务中的各行计算不依赖彼此的执行顺序或中间结果,可以共享已就绪的状态,但不通过可变状态相互影响。通过这一约束,执行引擎能够充分并行调度,在不改变计算结果的前提下提升处理效率。

不同任务之间的计算相互独立

同一目标表的不同任务,在上游依赖已就绪的前提下,基于各自所需的世界状态独立计算;这一世界状态不包含目标表自身。在上游数据与业务逻辑固定的前提下,任务不依赖目标表已有的结果或处理进度,执行顺序、并行程度与回填方式不应改变最终结果。

计算引擎自身保持无状态

任务编排由 Notebook 中的客户端逻辑管理,数据状态由 BlockDB 维护;计算引擎专注于高性能执行任务,不承担这些状态的最终维护职责。

仅支持区块驱动的计算模式

平台管道以 Block Table 的区块就绪事件驱动计算,包括 Event 与 State 两类表,不以任意表的单行变更作为独立触发源。

函数是一等公民

函数是平台中的独立模块,承载最小颗粒度的业务逻辑表达。其定义与身份不依附于其他模块,仅在具体运行场景中与执行、编排或服务模块建立协作关系。 函数是平台提升开发生产力与计算效率的核心。平台围绕函数的编写、调试、组合与复用提升开发效率,围绕函数的执行与状态访问优化计算性能,使同一份业务逻辑能够更高效地开发、运行和应用。

表格的计算逻辑复用

同一张表的计算逻辑,包括输入表、上游依赖、业务函数及输出定义,可以同时用于历史回填与实时计算。平台采用不同的执行粒度与调度方式,在保持计算语义一致的前提下,分别满足大规模处理与低延迟更新的需求。