mirror of
https://github.com/volcengine/OpenViking.git
synced 2026-09-30 01:08:26 +08:00
The api_key_watch_interval mechanism reloads account info across replicas by polling compute_store_signature() (a (path, size, modTime) signature over accounts.json + users.json). On S3FS this never detected writer-side changes: S3FS stat() serves from a sliding-TTL StatCache (default 60s, re-armed on every get()), so the watcher's 30s poll kept the entry alive forever and the signature never moved -> reload() never fired. localfs stats live, so it worked there. Thread a bypass_cache flag from the watcher's stat call down to S3FS so signature stats read fresh backend metadata: - FsContext(View): add bypass_cache field + builder/getter - ragfs-python build_fs_context: parse ctx["bypass_cache"] - S3FS stat(): skip stat_cache.get() when bypass_cache is set - AsyncAGFSClient.stat(bypass_cache=...): inject ctx flag - legacy _stat_signature: stat with bypass_cache=True Co-authored-by: TRAE CLI <traecli@bytedance.com>