aicam opened a new pull request, #8666: URL: https://github.com/apache/texera/pull/8666
### What changes were proposed in this PR? `bin/mounter/mounter.py` starts geesefs with `--memory-limit 512` and no `--cache`, whose default is off. Nothing a mount serves is written to local disk, so every read goes back to the object store through the file service and LakeFS. Reading the same 200 MiB three times through a mount measured 179, 137 and 124 MB/s — no warming at all — against 12.4 GB/s for the same file on the node's local disk. This adds `mounter.cacheRoot`, empty by default. When set, geesefs is given `--cache <dir>`. The cache is keyed by repository and commit, not by computing unit: a commit is immutable, so every unit on a node reads one cache instead of each new unit starting cold — which matters most for a shared public unit, where the first execution pays and the rest benefit. `cacheRoot` is a separate value from `hostMountRoot` rather than a directory inside it. `hostMountRoot` holds only mount points and usually sits on the OS disk, while a cache is sized by the data being cached, so the two generally belong on different volumes. Off by default, so no deployment changes behaviour until an operator opts in. ### Any related issues, documentation, discussions? Fixes #8665. ### How was this PR tested? Two cases added to `bin/mounter/tests/test_mounter.py`: that no `--cache` is passed by default, and that with a cache root set the directory handed to geesefs is `<cacheRoot>/<repo>/<commit>` and exists. Full mounter suite passes (95 tests). The chart was rendered both ways with `mounter.enabled=true`: without `cacheRoot` the DaemonSet has no `CACHE_ROOT` env, no extra volumeMount and no extra volume; with `cacheRoot` set it has all three, pointing at the configured path. `bin/k8s/tests/test_helm_values.sh` passes. Not exercised against a live mount: that needs restarting the mounter DaemonSet, which tears down the FUSE mounts under any in-flight execution, and the mounter image would need rebuilding since `mounter.py` is baked into it rather than mounted from a ConfigMap. ### Was this PR authored or co-authored using generative AI tooling? Generated-by: Claude Opus 5 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
