规模与属性限制(Scale & limits):守住性能边界
动作不是"想改多少就改多少"。Foundry 在配置、编辑、批量调用三个层面设了上限,确保被编辑的对象类型能快速处理改动、不让线上应用变慢。超限的提交会直接报错。
https://www.palantir.com/docs/foundry/action-types/scale-property-limits/
原始标题:Scale and property limits
一句话速览
规模与属性限制(Scale & limits):守住性能边界:动作不是"想改多少就改多少"。Foundry 在配置、编辑、批量调用三个层面设了上限,确保被编辑的对象类型能快速处理改动、不让线上应用变慢。超限的提交会直接报错。
为什么要有这些限制
限制是为了"快",不是故意为难你。
这些上限存在的目的是:确保被编辑的对象类型能快速处理编辑(process edits quickly),并更新面向用户的数据,而不拖慢实时应用。
所以,设计动作时要把规模上限当成"红线"——尤其是要在表格里批量跑动作的场景。
配置限制(configuration limits)
与"允许多值"相关的列表长度上限。
Allow multiple values(允许多值)开关允许向一个参数传入值列表。列表能有多长,分三种情况:
| 列表类型 | 最大元素数 |
|---|---|
| 原始类型列表参数(primitive list) | 10,000 |
| 对象引用列表参数(object reference list) | 1,000 |
| 在 submission criteria 中使用的列表参数 | 1,000 |
编辑限制(edit limits)
单次提交能碰多少对象、每个对象改多大。
| 限制项 | 最大值 |
|---|---|
| 单次提交可编辑的对象类型(object types)数 | 50 |
| 单次提交可编辑的对象(objects)数 | 10,000 |
| 单个对象在一次提交中的编辑大小 | 32KB(OSv1)/ 3MB(OSv2) |
批量调用限制(batch call limits)
一个批量里能调多少次动作。
一个动作在一次批量(batch)中最多可被调用 10,000 次。但如果动作是 function-backed(函数支撑)、且函数没有配置 batched execution(批量执行),这个上限会被降到 20。
关键点:批量调用里产生的编辑,在套用"编辑限制"时会被当作一个整体(single group)来算,不管具体是哪一次请求造成的编辑。此外,视调用应用不同,还可能叠加其他限制。
支持的属性类型与不可编辑项
哪些属性能用、主键为什么不能改。
文档列出了支持的单值与数组属性类型,其中不少仅 OSv2 支持(如 Media reference、Struct、Time series reference、Vector 等)。多数常见类型(String、Integer、Boolean、Date、Timestamp…)两端都支持。
有一条尤其要记住:动作不能用来编辑对象的主键(primary key)。修改主键本质上等于"先删对象、再建新对象"。与其用动作改主键,不如通过 rules(规则)直接创建或删除对象。
另外,使用副作用通知(side effect notifications)时,单次动作最多通知 500 个收件人;若通知内容"来自函数(From a function)"渲染,则降到 50 个。
一页带走
延伸阅读 · 相关页面
按主题横向跳转,不必顺着目录一篇篇读。
常见问题速答 · FAQ
关于「规模与属性限制(Scale & limits):守住性能边界」,读者最常问的几个问题。