Project

General

Profile

Actions

FUSE v2

arv-mount (source:services/fuse) is our Python-based fuse mount that has been used in production for years.

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.

Ultimately we aim to retire arv-mount and provide arvados-client mount as a faster, more reliable drop-in replacement.

For some use cases, v2 will be usable before reaching full feature parity.

Before supporting/recommending READ-ONLY production use
Manual stress tests
Automated stress tests
Listen to websocket and sync remote changes
Ensure memory footprint of a long-running mount doesn't expand indefinitely
Ensure inodes don't change in a way that confuses kernel (see #12870)
Before supporting/recommending READ/WRITE production use
Sync local changes automatically (on timer?) even if fsync is not called
Before replacing arv-mount in crunch-run use case
Option to mount temp collections at specified paths
Option to mount by_id and by_pdh magic dirs at specified paths
Option to specify cache directory and max size
Option to specify storage classes for writes
Option to write crunchstat metrics at specified interval
Before replacing arv-mount entirely
Accept project/collection/tag filters on command line

Updated by Tom Clegg 9 months ago · 1 revisions