task-66: 限制 RustFS 并发读写与重试的总资源预算

- 新增 aiimage.transient-storage.max-total-concurrent-operations 配置
  (默认 0 不启用):跨 upload/read/delete 的总并发预算
- executeWithRetry 入口获取一个总许可,整次操作(含全部重试)全程占用,
  重试不额外消耗,超预算立即拒绝并计入 operation=total rejected 指标
- 失败/完成后 finally 释放总许可,无残留锁;负值/0 视为未启用保持原行为
This commit is contained in:
2026-08-30 18:57:26 +08:00
parent e377814c48
commit e2d6875ef9
3 changed files with 331 additions and 33 deletions
@@ -23,6 +23,11 @@ public class TransientStorageProperties {
private int maxConcurrentUploads = 16;
private int maxConcurrentReads = 32;
private int maxConcurrentDeletes = 8;
/**
* 跨操作类型的总并发预算(含重试期间):一次操作全程占用一个总许可,
* 防止多任务叠加时读写与重试之和突破对后端的总压力上限。0/负值表示不启用。
*/
private long maxTotalConcurrentOperations = 0;
private long acquirePermitTimeoutMillis = 2000;
private long baseRetryDelayMillis = 500;
private long maxRetryDelayMillis = 5000;