容量与延迟,为什么同时成为问题?
特征容量会沿多个维度同时增长:实体数量、特征宽度、新鲜度窗口,以及同时服务的模型版本。在新功能上线或大范围候选获取期间,活跃群体可能比小热集稳定下来的速度变化得更快。
将低频特征放入存储层可以节省内存,但一次迟到的查询就可能阻塞推理请求。应测量完整特征向量组装时间的分布,包括冷实体和缺失特征;存储整体平均耗时并不等于模型的服务预算。
为这条数据路径而设计
Lavik 在架构中的位置
将特征流水线生成的在线值存入 Lavik。特征定义、事件时间处理与训练数据集继续由现有流水线负责;Lavik 承担服务链路上的按键读写。让值容量摆脱 DRAM 约束,使更宽的记录与更多保留实体更经济。
适用场景:可重建的预计算特征值,每个实体有相当的值数据量,并有明确的物化流水线。
影响采用结果的设计决策
对服务契约进行版本管理
根据客户端实际执行的操作选择打包字符串或哈希。记录中包含模式/模型版本和数据时间戳。为缺失字段定义默认值,并独立于存储过期时间定义新鲜度截止条件。
计算完整查询扇出
分别预算实体读取、特征解码、关联与推理耗时。用真实特征宽度测试有界 HMGET/MGET 请求。对单条记录进行原子写入,并不会自动提供跨所有实体的事件时间一致快照。
验证连接器,而不只是命令名称
将连接器初始化、Lua 调用、流水线、字段过期和序列化映射到版本化命令参考。已验证的客户端示例可作为起点,但不代表已认证 Feast 或其他特征存储连接器。为回填限流和延迟后的对账做好计划。
试用这一命令模式
Redis 兼容命令先按快速入门启动 Lavik 0.2.0,再用这些示例键尝试场景中的基本操作。命令参考提供选项与返回值说明。
查看示例命令
redis-cli HSET features:model7:user42 schema 7 as_of 2026-09-21T00:00:00Z visits_7d 12
redis-cli HMGET features:model7:user42 schema visits_7d missing_feature
redis-cli HGET features:model7:user42 as_of
redis-cli EXPIRE features:model7:user42 600用什么标准决定迁移?
先写下业务预算,再做流量回放。以下标准需要通过你自己的系统验证;已发布基准是起点。
冷实体推理
回放生产实体分布,并以完整特征宽度增加均匀访问压力测试。
特征组装 p99 满足推理链路分配的预算,缺失或过期特征比例可接受。
在线服务期间回填
刷新或回填第二个模型版本时持续读取,并保留应用时间戳。
读取截止时间与新鲜度目标同时满足;发布程序不会用旧事件覆盖新版本。
连接器正确性
测试真实连接器调用、部分记录、缺失实体、重连与反序列化失败。
在引入推理流量前,返回值与回退决策符合现有服务契约。
先迁移一个特征族,保留新鲜度约定与缺失值默认策略。结合模型请求测量完整特征获取预算。
从业务规模推导容量
值数据量 ≈ 实体数 × 序列化特征字节数 × 同时服务的版本数