rough-terabyte-71304
05/19/2021, 6:05 PM@resources(
local_storage="100",
cpu_limit="0.6",
memory="500",
memory_limit="1G",
volume="11G",
)
square-wire-39606
05/19/2021, 6:11 PMdisk
attribute to @resources
make sense?square-wire-39606
05/19/2021, 6:12 PMcpu_limit
, memory_limit
seem more specific to the underlying compute infrastructurerough-terabyte-71304
05/19/2021, 7:08 PMdisk
or volume
?... https://www.maketecheasier.com/difference-between-disk-drive-volume-partition-image/
I believe a disk
can have multiple volumes, hence why I selected volume
square-wire-39606
05/19/2021, 7:15 PMdisk
as a keyword signifying the amount of physical storage in the user space needed for a particular step is easier to grok for the end user. We can expose volume
as an advanced functionality.rough-terabyte-71304
05/19/2021, 7:22 PMrough-terabyte-71304
05/19/2021, 7:24 PMephemeral-storage
(local_storage in the @resources) or an attached volume (PVC).square-wire-39606
05/19/2021, 7:30 PMdisk
which works for say 80% of the use cases, but we still expose setting volumes
and volume_types
as advanced functionality. That way different enterprises can configure their deployments appropriately by setting global environment variables in the user's workstation.rough-terabyte-71304
05/19/2021, 7:30 PMdisk
mean?rough-terabyte-71304
05/19/2021, 7:31 PMsquare-wire-39606
05/19/2021, 7:31 PMdisk
in @resources
and volume
in @k8s
and if we are able to map disk
appropriately to a specific volume configuration in k8s we can allow folks to set disk
at the resource levelrough-terabyte-71304
05/19/2021, 7:36 PM@kubernetes(volume="11G") # attaches a volume to a default /opt/metaflow_volume
@step
def start(self):
pass
@resources(disk="110G") # works on AWS batch, and on k8s "disk" maps to ephemeral-storage!
@step
def start(self):
pass
@kubernetes(volume="11G") # attaches a volume to a default /opt/metaflow_volume
@resources(disk="110G") # ephemeral-storage of 110G
@step
def start(self):
pass
thoughts? 💭square-wire-39606
05/19/2021, 7:40 PMvolume
for kubernetes
a persistent volume?square-wire-39606
05/19/2021, 7:41 PMrough-terabyte-71304
05/19/2021, 7:44 PMrough-terabyte-71304
05/19/2021, 7:45 PM@kubernetes
only concept?
Why not make it meta and a @resources
concept as originally proposed? AWS Batch may not support it, that's fine.
@resources(volume="11G") # attaches a volume to a default /opt/metaflow_volume
@step
def start(self):
pass
@resources(disk="110G") # works on AWS batch, and on k8s "disk" maps to ephemeral-storage!
@step
def start(self):
pass
@resources(disk="110G", volume="11G")) # ephemeral-storage of 110G and attaches a volume to a default /opt/metaflow_volume
@step
def start(self):
pass
square-wire-39606
05/19/2021, 7:46 PMsquare-wire-39606
05/19/2021, 7:47 PM@resources(disk="110G", volume="11G")) # ephemeral-storage of 110G and attaches a volume to a default /opt/metaflow_volume
@step
def start(self):
pass
?rough-terabyte-71304
05/19/2021, 7:48 PMrough-terabyte-71304
05/19/2021, 7:49 PMsquare-wire-39606
05/19/2021, 7:50 PMs3
alongside the metaflow.s3
client. That also ensures that artifacts stored as visible and recoverable later using the Metaflow client.narrow-lion-2703
05/19/2021, 8:03 PMnarrow-lion-2703
05/19/2021, 8:03 PMnarrow-lion-2703
05/19/2021, 8:05 PM@kubernetes
, but it seems like it wouldn't work for non-ephemeral as you still have to create a separate PVC resource and manage its lifecycle somehowrough-terabyte-71304
06/02/2021, 1:38 AM