Project

General

Profile

Actions

Feature #17395

closed

Control storage class of container / container_request output

Added by Peter Amstutz about 3 years ago. Updated over 2 years ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
API
Target version:
Story points:
-
Release relationship:
Auto

Description

New field on container called output_storage_classes
New field on container_request called output_storage_classes

When accepting a container request and creating a new container, the new container should take the storage classes from the request. Crunch-run will ensure that container outputs are sent to that storage class.

The output collection of the file will be assigned the storage classes from output_storage_classes

  • crunch-run will respect the value of output_storage_classes on the container record when writing the output collection.

When we create the container request output collection (copied from the container output) the new collection is assigned the storage classes from the container_request output_storage_classes


Subtasks 1 (0 open1 closed)

Task #17797: Review 17395-container-output-storage-classResolvedPeter Amstutz06/30/2021Actions

Related issues

Related to Arvados Epics - Idea #16107: Storage classesResolved03/01/202109/30/2021Actions
Actions #1

Updated by Peter Amstutz about 3 years ago

Actions #2

Updated by Peter Amstutz about 3 years ago

  • Description updated (diff)
Actions #3

Updated by Peter Amstutz almost 3 years ago

  • Description updated (diff)
Actions #4

Updated by Peter Amstutz almost 3 years ago

  • Target version set to 2021-06-23 sprint
Actions #5

Updated by Peter Amstutz almost 3 years ago

  • Assigned To set to Peter Amstutz
Actions #6

Updated by Peter Amstutz almost 3 years ago

  • Category set to API
Actions #7

Updated by Peter Amstutz almost 3 years ago

  • Target version changed from 2021-06-23 sprint to 2021-07-07 sprint
Actions #8

Updated by Peter Amstutz almost 3 years ago

17395-container-output-storage-class @ 4dfa520bd6eb1c594c83f85431d6a39e340fa9cb

  • Migration to add output_storage_classes to container and container_request
  • Add OutputStorageClasses to Container and ContainerRequest in Go SDK
  • Use Container.OutputStorageClasses to set the storage classes used by the "dispatcher" and "container" keep clients used in crunch-run.
  • Add tests & update API documentation.

developer-run-tests: #2560

Actions #9

Updated by Peter Amstutz almost 3 years ago

  • Status changed from New to In Progress
Actions #10

Updated by Lucas Di Pentima almost 3 years ago

Some comments below:

  • It seems that the migration file is missing.
  • There's a sentence on the docs: "This feature does not provide a hard guarantee on where data will be stored. Data may be written to default storage and moved to the desired storage class later. If controlling data locality is a hard requirement (such as legal restrictions on the location of data) we recommend setting up multiple Arvados clusters." at the end of https://doc.arvados.org/v2.2/admin/storage-classes.html -- not sure if this story is the right one but I think we'll need to fix it as soon it won't be completely correct.
  • Somewhat related: Should keepproxy use the newly created SetStorageClasses() function at services/keepproxy/keepproxy.go Line 477? Also, some tests could use it.
  • Other than that, it LGTM.
Actions #11

Updated by Peter Amstutz almost 3 years ago

  • Status changed from In Progress to Resolved
Actions #12

Updated by Peter Amstutz over 2 years ago

  • Release set to 42
Actions

Also available in: Atom PDF