Idea #7473
open[FUSE] [SDKs] Ensure FUSE and other SDK clients work with a default replication level != 2
Description
We have a report that when an API server is configured with default_collection_replication: 1, and knows about one Keep service, any attempt to write to the FUSE mount returns I/O errors. This seems to be happening because the FUSE server does not respect this option in the API server, and tries to replicate everything twice.
Implementation¶
Add tests to the Python SDK to ensure the defaultCollectionReplication given in the discovery document is used as the default if a client does not specify a number of copies. If those tests fail, make them pass. (Currently, arv-put (in commands/put.py) uses the discovery doc to get the default. But the KeepClient class in the SDK should do this by itself: i.e., if put() is called with copies=None or no copies arg at all then use api_client._rootDesc.get('defaultCollectionReplication', 2)
)
Add tests to ensure that FUSE behaves correctly when the API server's default replication level is 1 (lower than the "default default" 2), and when it's 3 (higher than 2). If those tests fail, make them pass.
Updated by Brett Smith almost 9 years ago
- Target version set to Arvados Future Sprints
Updated by Tom Clegg almost 9 years ago
- Subject changed from [FUSE] Ensure FUSE works with a default replication level != 2 to [FUSE] [SDKs] Ensure FUSE works with a default replication level != 2
- Description updated (diff)
Updated by Tom Clegg almost 9 years ago
- Subject changed from [FUSE] [SDKs] Ensure FUSE works with a default replication level != 2 to [FUSE] [SDKs] Ensure FUSE and other SDK clients work with a default replication level != 2
- Description updated (diff)
Updated by Ward Vandewege over 3 years ago
- Target version deleted (
Arvados Future Sprints)