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| |