mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-21 05:45:37 +08:00
The populator now stamps a freshness token into each writable store's persisted ToolIndex, captured before the tree walk. At boot, _index_needs_population re-probes and a match skips the conf walk and its per-file existence stats entirely — the store provably covers the current tree. A mismatch (or no probe) falls back to the batched coverage scan as before, so a wrong token can only cost work, never correctness. Two probe kinds (galaxy.tools.source_store.freshness): - tool_confs: md5 over tool/data-manager conf contents plus recursive directory mtimes of tool_dir entries. Detects the same addition/removal drift the coverage scan does, at ~a-dozen-file cost. Wired to the default store automatically. - cvmfs: the CernVM-FS repository revision via the user.revision extended attribute on the mount point — one syscall covers the whole repository. Opt-in per named store (freshness: cvmfs, optional freshness_path), since a store published on CVMFS in the same transaction as its tools makes a matching revision a hard consistency proof. Composite aggregation: a stale writable member triggers the populator; a stale read-only member only warns (the publisher owns repopulation); a probe-less member downgrades to the coverage scan. Claude-Session: https://claude.ai/code/session_018L7ZmCv2ubKA3JNeSL8Pkr