Files
model-platform/backend
tao.chenandtao.chen c870b7f413 perf(jupyter): 5s (workspace_id, user_id) validation cache
Jupyter 一次会话会拉几十次 auth_request(HTML shell / static /
WebSocket / api/contents / autosave / kernels),每次都跑 JWT
verify + WorkspaceMembers JOIN + Scripts.is_locked 查 + runtime
RPC,重复开销大。

新增 module-level (workspace_id, user_id) -> payload 缓存:
* 只缓存 membership 校验通过 + 拿到 runtime 信息的成功结果
  (x-upstream-addr、x-jupyter-internal-token)
* JWT 验签、lock check 仍每请求执行(前者是信任边界,后者
  per-URI 状态易变)
* TTL 5s,time.monotonic(),threading.Lock 保护
* 失败结果(lock 403 / runtime 500)不写缓存

折衷:被踢出 workspace 后最坏 5s 仍返 200;Runtime 单实例下
无需 Redis。新增 8 个 case 覆盖 hit/miss/TTL/lock-every-request/
jwt-every-request/failure-does-not-populate。
2026-09-02 10:10:41 +08:00
..
2026-08-17 15:59:19 +08:00
2026-08-12 12:21:48 +08:00

Backend

统一 FastAPI 管理服务。包含用户、Workspace、脚本、稳定版本、调度定义、 立即运行以及 S3 对象接口。原 platform_apistorage_api 已在此 模块合并,外部 REST 契约保持不变。

底层走的是 common.storage.AsyncStorageBackend 抽象,按 settings.storage_backend 切换 s3 / local 两种实现。