Skip to content

v1.26.0

Choose a tag to compare

@erikwang2013 erikwang2013 released this 30 Oct 20:35
· 147 commits to main since this release

v1.26.0

控制面与租户硬化版:feature level 7 交付 tier restore 后续状态复制与调度租约,账户硬字节/对象数配额与 legacy 账户规范化 worker 落地,并补齐流式读、缓存、审计与复制的一批数据面优化。

新增

  • M8 feature level 7:TierRestoreUpsert / TierRestoreDelete 复制 tier restore 后续状态(restored/清理/回滚),leader 切换不再丢在途 Restore 状态;ScheduleLeaseAcquire 实现调度租约 acquire/renew/takeover(TTL 默认 30s,OSS_SCHEDULE_LEASE_SECS),job worker、inventory、lifecycle 与 tier sweep 统一经租约 fencing。apply 幂等、fence 单调;快照仍为 OSSCTL3,无迁移。
  • 账户硬配额:账户当前版本字节数与对象数上限;Put/Complete/Copy 写入前单条条件 UPDATE 原子预留,Delete/DeleteObjects 释放;跨节点用量按 30s 惰性/60s 采样(mesh 合并列举),对端不可达时只按已知下界拒绝、未知增量 fail-open,DB 错误 fail-closed。PUT /accounts/{id}/hard-quota 在 standalone 生效。
  • legacy 账户规范化 worker:serve 启动后 leader 门控补齐账户/成员行;standalone 单事务 + marker(失败回滚),Raft leader 复用既有 AccountCreate / AccountMemberAttach。
  • 流式 GET 批量读:远端 EC 分片按 OSS_SHARD_READ_BATCH_BYTES(默认 1 MiB,上限 16 MiB)一次读取多块,显著减少 RPC;CRC32C、加密 unit 解密与明文 SHA-256 语义不变。
  • 缓存与保留:MPU 索引增加 OSS_MPU_INDEX_TTL_SECS(默认 300s)并收敛 clean/加载竞态;0009 为 terminal_jobs_before 增加 (state, updated_at) 索引;/metrics 导出 oss_audit_dropped_total。
  • 桶复制:支持 Prefix / Tag / And 过滤器与回读归一化;复制体改为 256 KiB 分块令牌桶,跨请求共享远端配额。

兼容性 / 启用前置

  • feature 7 是单向门:v1.25.0 及更早节点 advertise ≤6,全集群升级并移除/升级旧节点前 effective 停在 6,TierRestore* / ScheduleLeaseAcquire 在 append 前被拒。配置 [raft].feature_level=7 后逐节点重启;快照仍为 OSSCTL3。
  • 硬配额配置暂仅 standalone:Raft 模式 PUT /accounts/{id}/hard-quota 返回 501,待复制命令;限额已写入后配额执行在集群生效。用量为有界陈旧(30s/60s),未知 content-length 与版本定向删除依赖采样器收敛。
  • Tag 复制规则不复制删除事件:删除请求没有标签快照,规则会跳过删除(代码已标 shortcut:);Prefix 规则行为不变。
  • 远端分片批量读的单次缓冲上限 16 MiB,与 mesh MAX_BLOCK_READ 对齐;MPU 索引 TTL 到点后首次列举会增加一次桶目录扫描。

验证

  • cargo fmt --all --check、五 crate clippy --all-targets -D warnings 通过。
  • 合并后 xl-store --lib 369/0、xl-s3 --lib 194/0、oss-server --lib 248/0;raft_command_contract 3/0/1。
  • Agent 套件:复制 35/0、账户 12/0、3-voter restore/lease 3/0、observability 4/0;新增流式批量读、并行写、MPU TTL、保留索引与配额边界测试。
  • 完整 cargo test --workspace 在宿主高负载下未完成,本次发布以分 crate/分套件闸门为准。

仍未交付

Raft 模式硬配额配置命令、follower Restore 清理的即时 fencing、Level C 双向混写与数据面滚动、跨版本 MPU、AP 动态 registry(需 feature 8)、真实 PrivateLink、单机→集群工具化、Raft 日志/快照增量存储。