FUSE v2 » History » Version 1
Tom Clegg, 03/12/2024 03:29 PM
| 1 | 1 | Tom Clegg | h1. FUSE v2 |
|---|---|---|---|
| 2 | |||
| 3 | @arv-mount@ (source:services/fuse) is our Python-based fuse mount that has been used in production for years. |
||
| 4 | |||
| 5 | @arvados-client mount@ (source:lib/mount), aka "fuse v2", is our Go-based fuse mount that is currently flagged "experimental" and is missing some of arv-mount's features. Nearly all of the v2 functionality is provided by the same "filesystem" code used in production by keep-web to provide WebDAV and S3 services. |
||
| 6 | |||
| 7 | Ultimately we aim to retire @arv-mount@ and provide @arvados-client mount@ as a faster, more reliable drop-in replacement. |
||
| 8 | |||
| 9 | For some use cases, v2 will be usable before reaching full feature parity. |
||
| 10 | |||
| 11 | |\2. *Before supporting/recommending READ-ONLY production use*| |
||
| 12 | |✅|Manual stress tests| |
||
| 13 | ||Automated stress tests| |
||
| 14 | ||Listen to websocket and sync remote changes| |
||
| 15 | ||Ensure memory footprint of a long-running mount doesn't expand indefinitely| |
||
| 16 | ||Ensure inodes don't change in a way that confuses kernel (see #12870)| |
||
| 17 | |\2. *Before supporting/recommending READ/WRITE production use*| |
||
| 18 | ||Sync local changes automatically (on timer?) even if fsync is not called| |
||
| 19 | |\2. *Before replacing arv-mount in crunch-run use case*| |
||
| 20 | ||Option to mount temp collections at specified paths| |
||
| 21 | ||Option to mount by_id and by_pdh magic dirs at specified paths| |
||
| 22 | ||Option to specify cache directory and max size| |
||
| 23 | ||Option to specify storage classes for writes| |
||
| 24 | ||Option to write crunchstat metrics at specified interval| |
||
| 25 | |\2. *Before replacing arv-mount entirely*| |
||
| 26 | ||Accept project/collection/tag filters on command line| |