Skip to content

运行时对象与缓存 Metadata ​

本页定义 runtime.object 和 cache.reference 帧的固定 metadata。多取值字段统一使用运行时控制取值注册表。

Object Descriptor Metadata ​

用于 OBJECT_DECLARE。

Offset字段类型必填含义
0object_idu64是运行时对象身份。
8object_kindu16是见取值注册表里的 object_kind。
10producer_roleu8是见取值注册表里的 role codes。
11consumer_roleu8是见取值注册表里的 role codes。
12session_idu32是所属 session。
16byte_sizeu64是对象大小。
24compute_cost_unitsu32否协商成本模型下的计算单元。
28memory_location_hintu16否见取值注册表里的 memory_location_hint。
30ownership_hintu16是见取值注册表里的 ownership_hint。
32lifetime_hint_msu32否建议生命周期。
36metadata_bytesu32否可选对象 metadata body 长度。
40reservedu64是必须为零。

Object Reference Metadata ​

用于 OBJECT_REF。

Offset字段类型必填含义
0object_idu64是被引用对象。
8operation_idu64否使用该对象的 operation。
16object_versionu64否版本或 generation。
24offsetu64否被引用字节或区域 offset。
32lengthu64否被引用字节或区域长度。
40flagsu32是见取值注册表里的 flag masks。
44metadata_bytesu32否可选引用 metadata body 长度。

Object Release Metadata ​

用于 OBJECT_RELEASE。

Offset字段类型必填含义
0object_idu64是被释放对象。
8operation_idu64否不再需要该对象的 operation。
16release_reasonu16是见取值注册表里的 release_reason。
18source_roleu8是见取值注册表里的 role codes。
19flagsu8是见取值注册表里的 flag masks。
20diagnostic_bytesu32否可选诊断 body 长度。
24reservedu64是必须为零。

Object Delta Metadata ​

用于 OBJECT_PATCH 和 OBJECT_DELTA。

Offset字段类型必填含义
0object_idu64是被 patch 的对象。
8delta_sequenceu64是该对象内单调递增 delta 序号。
16region_offsetu64否区域 offset。
24region_bytesu32否区域长度。
28delta_bytesu32是Delta payload 长度。
32flagsu32是见取值注册表里的 flag masks。
36metadata_bytesu32否可选 delta metadata body 长度。

Cache Reference Metadata ​

用于 CACHE_REFERENCE。

Offset字段类型必填含义
0cache_namespaceu32是规范缓存身份的 namespace。
4profile_idu16是定义解释方式的 profile。
6reuse_scopeu16是见取值注册表里的 reuse_scope。
8cache_key_hiu64是缓存身份高 64 位。
16cache_key_lou64是缓存身份低 64 位。
24lease_idu64否Lease anchor。
32producer_trace_idu64否Producer trace ID。
40expiration_hint_msu32否过期提示。
44metadata_bytesu32否可选 metadata body 长度。
48flagsu32是见取值注册表里的 flag masks。
52reservedu32是必须为零。

Cache Miss Metadata ​

用于 CACHE_MISS。

Offset字段类型必填含义
0cache_namespaceu32是规范缓存身份的 namespace。
4profile_idu16否拒绝解释的 profile。
6miss_reasonu16是见取值注册表里的 miss_reason。
8cache_key_hiu64是缓存身份高 64 位。
16cache_key_lou64是缓存身份低 64 位。
24diagnostic_bytesu32否可选诊断 body 长度。
28reservedu32是必须为零。

SDK 本地缓存策略约定 ​

SDK 暴露本地 CachePolicyOptions 值,要求应用显式启用缓存复用。该值不是线路 payload, 不会被自动序列化,也不会触发隐式缓存查询。应用和 profile 仍须显式发送 CACHE_REFERENCE、CACHE_MISS 和 CACHE_INVALIDATE 帧。

语义字段类型默认值校验规则
enabledboolfalse为 true 时必须提供 reuse_scope。
reuse_scope可选 CacheReuseScope无enabled 为 false 时必须缺省。
expiration_hint_msu640enabled 为 false 时必须为零;写入线路上的 u32 hint 时必须显式收窄并校验。
invalidation_reasonCachePolicyInvalidationReasonexplicit仅在应用显式发送失效帧时传播。

CachePolicyInvalidationReason 冻结为 explicit、dependency_invalidated、lease_expired、 version_mismatch 和 schema_mismatch。语言绑定使用各自惯用命名风格,但必须保持这些语义。 禁用策略不得携带 reuse scope 或非零 expiration hint。

一致性测试要求 ​

线路级一致性测试必须通过直接交换 NNRP 帧验证这些 profile。SDK adapter manifest 可以帮助生成场景,但不能替代真实客户端/服务端线路检查。

NNRP Documentation