Actions
Idea #17849
openFUSE driver v2
Start date:
Due date:
Story points:
-
Release:
Release relationship:
Auto
Description
Background:
Python+llfuse was expedient and has done lots of good work for us, but it's not promising as a long term (fast+reliable+maintainable) solution.
Implementation:- collection-backed filesystem from #12483, plus more general arvados-backed filesystem ("by_id" directory, etc, same as the one exported via webdav) from #13111
- present as fuse using a library like https://godoc.org/bazil.org/fuse or https://godoc.org/github.com/billziss-gh/cgofuse/fuse
- package as a subcommand ("mount") of the source:cmd/arvados-client program
- Approach for handling websocket "update" events
- Selectable mechanisms/options for syncing to server (fflush, fsync, close) (on a shell node, flush-on-close, flush-periodically, or flush-after-idle-time might be best; in crunch-run, flush-on-exit might be best)
- Desired behavior when updates conflict (write error? clobber? create "oops,clobbered" file?)
- Old keep block signatures don't get refreshed, so reading a collection that's been cached for too long returns an I/O error
- Not command-line compatible with arv-mount
- Logging is not great
- No docs
- No way to control overall cache size (currently collectionfs can use lots of RAM in certain non-sequential write scenarios; we need the ability to trade speed for space efficiency in memory-constrained environments)
- No warnings given when cache is thrashing
- No application level instrumentation (just optional Go pprof)
- Special
.arvados#collection
file is incomplete (has manifest_text but not uuid, pdh) - No automatic flush on sigint/sigterm
- No warning given when trying to exit but filesystem can't be unmounted yet (filehandle is open, or a process's cwd is in the mount)
- Mac port has a race bug (see notes below)
- Windows port is untested
- Cross-compiling recipe for Mac/Windows ports is fragile
- chmod is a no-op (chmod 0700 succeeds, but the file mode will still be 0755)
Updated by Peter Amstutz almost 4 years ago
- Related to Bug #16727: [FUSE] [cgofuse] Refresh signatures / reload collection instead of using expired blob signatures added
Updated by Peter Amstutz almost 4 years ago
- Related to Idea #12308: [FUSE] Golang-based fuse driver added
Updated by Peter Amstutz almost 4 years ago
- Start date set to 01/01/2022
- Due date set to 03/31/2022
Updated by Peter Amstutz over 3 years ago
- Start date changed from 01/01/2022 to 04/01/2022
- Due date changed from 03/31/2022 to 07/31/2022
Updated by Peter Amstutz about 3 years ago
- Start date changed from 04/01/2022 to 05/01/2022
- Due date changed from 07/31/2022 to 08/31/2022
Updated by Peter Amstutz about 3 years ago
- Related to Feature #18960: Config option to make crunch-run use Go FUSE driver when all mounts are read-only added
Updated by Peter Amstutz about 3 years ago
- Related to Feature #18961: Go FileSystem / FUSE mount supports block prefetch added
Updated by Peter Amstutz almost 3 years ago
- Start date changed from 05/01/2022 to 06/01/2022
- Due date changed from 08/31/2022 to 09/30/2022
Updated by Peter Amstutz almost 3 years ago
- Start date changed from 06/01/2022 to 08/31/2022
- Due date changed from 09/30/2022 to 11/30/2022
Updated by Peter Amstutz over 2 years ago
- Start date changed from 09/01/2022 to 10/01/2022
- Due date changed from 11/30/2022 to 12/31/2022
Updated by Peter Amstutz over 2 years ago
- Start date changed from 10/01/2022 to 12/01/2022
- Due date changed from 12/31/2022 to 02/28/2023
Updated by Peter Amstutz over 2 years ago
- Start date changed from 12/01/2022 to 03/01/2023
- Due date changed from 02/28/2023 to 07/31/2023
Updated by Peter Amstutz about 2 years ago
- Start date changed from 03/01/2023 to 06/01/2023
- Due date changed from 07/31/2023 to 10/31/2023
Updated by Peter Amstutz almost 2 years ago
- Start date changed from 06/01/2023 to 10/01/2023
- Due date changed from 07/31/2023 to 12/31/2023
Updated by Peter Amstutz over 1 year ago
- Start date changed from 10/01/2023 to 01/01/2024
- Due date changed from 12/31/2023 to 03/31/2024
Updated by Peter Amstutz over 1 year ago
- Start date changed from 01/01/2024 to 05/01/2024
- Due date changed from 03/31/2024 to 10/31/2024
Updated by Peter Amstutz over 1 year ago
- Start date changed from 05/01/2024 to 04/01/2024
- Due date changed from 10/31/2024 to 08/31/2024
Updated by Tom Clegg about 1 year ago
- Related to Feature #21578: Add debug logging option to arvados-client mount added
Actions