动作类型详解

规模与属性限制(Scale & limits):守住性能边界

动作不是"想改多少就改多少"。Foundry 在配置、编辑、批量调用三个层面设了上限,确保被编辑的对象类型能快速处理改动、不让线上应用变慢。超限的提交会直接报错。

原文 Palantir Foundry · Action types 预计阅读 11 分钟 互动演示 + 5 道测验
本文来源 · Source 内容整理自 Palantir Foundry 官方文档:
https://www.palantir.com/docs/foundry/action-types/scale-property-limits/
原始标题:Scale and property limits

一句话速览

规模与属性限制(Scale & limits):守住性能边界:动作不是"想改多少就改多少"。Foundry 在配置、编辑、批量调用三个层面设了上限,确保被编辑的对象类型能快速处理改动、不让线上应用变慢。超限的提交会直接报错。

1 为什么要有这些限制
这些上限存在的目的是:确保被编辑的对象类型能快速处理编辑(process edits quickly),并更新面向用户的数据,而不拖…
2 配置限制(configuration limits)
Allow multiple values(允许多值)开关允许向一个参数传入值列表
3 批量调用限制(batch call limits)
一个动作在一次批量(batch)中最多可被调用 10,000 次
4 支持的属性类型与不可编辑项
文档列出了支持的单值与数组属性类型,其中不少仅 OSv2 支持(如 Media reference、Struct、Time seri…
1

为什么要有这些限制

限制是为了"快",不是故意为难你。

这些上限存在的目的是:确保被编辑的对象类型能快速处理编辑(process edits quickly),并更新面向用户的数据,而不拖慢实时应用。

"Actions submitted that exceed these limits will not succeed and will display an error message to the user."超过这些限制的提交不会成功,并向用户显示错误信息。

所以,设计动作时要把规模上限当成"红线"——尤其是要在表格里批量跑动作的场景。

2

配置限制(configuration limits)

与"允许多值"相关的列表长度上限。

Allow multiple values(允许多值)开关允许向一个参数传入值列表。列表能有多长,分三种情况:

列表类型最大元素数
原始类型列表参数(primitive list)10,000
对象引用列表参数(object reference list)1,000
在 submission criteria 中使用的列表参数1,000
上面三种列表的最大元素数分别是多少?点击揭晓。
3

编辑限制(edit limits)

单次提交能碰多少对象、每个对象改多大。

限制项最大值
单次提交可编辑的对象类型(object types)数50
单次提交可编辑的对象(objects)数10,000
单个对象在一次提交中的编辑大小32KB(OSv1)/ 3MB(OSv2)
动手试:单个对象的编辑大小上限(按存储版本)
OSv1 上限
32KB
Object Storage v2(OSv2)放宽到 3MB;许多高级属性类型也仅 OSv2 支持。
4

批量调用限制(batch call limits)

一个批量里能调多少次动作。

一个动作在一次批量(batch)中最多可被调用 10,000 次。但如果动作是 function-backed(函数支撑)、且函数没有配置 batched execution(批量执行),这个上限会被降到 20

关键点:批量调用里产生的编辑,在套用"编辑限制"时会被当作一个整体(single group)来算,不管具体是哪一次请求造成的编辑。此外,视调用应用不同,还可能叠加其他限制。

5

支持的属性类型与不可编辑项

哪些属性能用、主键为什么不能改。

文档列出了支持的单值与数组属性类型,其中不少仅 OSv2 支持(如 Media reference、Struct、Time series reference、Vector 等)。多数常见类型(String、Integer、Boolean、Date、Timestamp…)两端都支持。

有一条尤其要记住:动作不能用来编辑对象的主键(primary key)。修改主键本质上等于"先删对象、再建新对象"。与其用动作改主键,不如通过 rules(规则)直接创建或删除对象。

另外,使用副作用通知(side effect notifications)时,单次动作最多通知 500 个收件人;若通知内容"来自函数(From a function)"渲染,则降到 50 个。

动作能否编辑对象的主键(primary key)?点击揭晓。

一页带走

① 限制为性能而生
超限提交直接失败并报错;设计动作要把上限当红线。
② 编辑上限
单次提交编辑对象类型 50、对象 10,000;单对象编辑 32KB(OSv1)/3MB(OSv2)。
③ 批量上限
普通批量 10,000 次;function-backed 未配批量执行时降为 20;编辑按整体计。
④ 不可编辑主键
动作不能改主键;应走 rules。通知收件人普通 500、函数渲染 50。

延伸阅读 · 相关页面

按主题横向跳转,不必顺着目录一篇篇读。

常见问题速答 · FAQ

关于「规模与属性限制(Scale & limits):守住性能边界」,读者最常问的几个问题。

为什么要有这些限制?
这些上限存在的目的是:确保被编辑的对象类型能快速处理编辑(process edits quickly),并更新面向用户的数据,而不拖慢实时应用。
支持的属性类型与不可编辑项是什么?
文档列出了支持的单值与数组属性类型,其中不少仅 OSv2 支持(如 Media reference、Struct、Time series reference、Vector 等)。