Project

General

Profile

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|