Skip to content

Job

A unit of server-side processing triggered by a UsageJourneyStep or by a RecurrentServerNeed. Defines how much CPU, memory, network bandwidth, and storage are consumed per invocation.

When to use this class

Use Job for CPU jobs running on a Server. Use GPUJob for jobs whose compute requirement is in GPUs. For high-level abstractions over common workloads (video streaming, generative AI), prefer the corresponding service builder rather than wiring jobs by hand.

Common pitfalls

Job.request_duration drives concurrency. If the duration exceeds one hour the job is in flight across multiple modeling buckets at once and consumes a fraction of the server's resources in each.

Params

name

A human readable description of the object.

server

Server that processes the job. The server's resource use and footprint follow from the jobs it hosts.

An instance of Server.

data_transferred

Total bytes uploaded plus downloaded over the network for one invocation of the job.

Unit: kilobyte.

data_stored

Net change in stored data per invocation. Positive values only. Data deletion is handled by Storage.data_storage_duration

Unit: kilobyte_stored.

request_duration

How long the job takes to process from start to finish on the server.

Unit: second.

compute_needed

CPU consumed by one invocation of the job, expressed in CPU cores held for the request duration.

Unit: cpu_core.

ram_needed

RAM held by one invocation of the job for its full duration.

Unit: megabyte_ram.

Calculated attributes

hourly_occurrences_per_usage_pattern

Hourly count of job invocations broken down by usage pattern, derived from when each usage pattern's journeys start and at what point in the journey this job is triggered.

Example value: {
UsagePattern usage pattern (60c504): 26298 values from 2025-01-01 00:00:00+00:00 to 2028-01-01 18:00:00+00:00 in :
first 10 vals [14, 4, 6, 2, 10, 14, 12, 8, 16, 10],
last 10 vals [12, 6, 6, 8, 2, 10, 4, 12, 6, 10],
EdgeUsagePattern Default edge usage pattern (7d23cf): 105192 values from 2025-01-01 00:00:00+00:00 to 2037-01-01 00:00:00+00:00 in M:
first 10 vals [0, 0, 0, 0, 0, 0, 0, 0.000999, 0.002, 0.003],
last 10 vals [0.005, 0.005, 0.005, 0.005, 0.005, 0.004, 0.003, 0.002, 0.000997, 0],
}

Depends directly on:

through the following calculations:

You can also visit the link to Hourly occurrences in usage pattern’s full calculation graph.

hourly_avg_occurrences_per_usage_pattern

Hourly count of job invocations averaged with respect to job duration, so a job that runs longer than an hour contributes a fractional occurrence to several modeling buckets.

Example value: {
UsagePattern usage pattern (60c504): 26298 values from 2025-01-01 00:00:00+00:00 to 2028-01-01 18:00:00+00:00 in :
first 10 vals [0.00389, 0.00111, 0.00167, 0.000556, 0.00278, 0.00389, 0.00333, 0.00222, 0.00444, 0.00278],
last 10 vals [0.00333, 0.00167, 0.00167, 0.00222, 0.000556, 0.00278, 0.00111, 0.00333, 0.00167, 0.00278],
EdgeUsagePattern Default edge usage pattern (7d23cf): 105192 values from 2025-01-01 00:00:00+00:00 to 2037-01-01 00:00:00+00:00 in k:
first 10 vals [0, 0, 0, 0, 0, 0, 0, 0.000277, 0.000555, 0.000833],
last 10 vals [0.00139, 0.00139, 0.00139, 0.00139, 0.00139, 0.00111, 0.000832, 0.000555, 0.000277, 0],
}

Depends directly on:

through the following calculations:

You can also visit the link to Average hourly occurrences in usage pattern’s full calculation graph.

hourly_data_transferred_per_usage_pattern

Hourly volume of data transferred over the network by this job, broken down by usage pattern.

Example value: {
UsagePattern usage pattern (60c504): 26298 values from 2025-01-01 00:00:00+00:00 to 2028-01-01 18:00:00+00:00 in MB:
first 10 vals [2.1, 0.6, 0.9, 0.3, 1.5, 2.1, 1.8, 1.2, 2.4, 1.5],
last 10 vals [1.8, 0.9, 0.9, 1.2, 0.3, 1.5, 0.6, 1.8, 0.9, 1.5],
EdgeUsagePattern Default edge usage pattern (7d23cf): 105192 values from 2025-01-01 00:00:00+00:00 to 2037-01-01 00:00:00+00:00 in TB:
first 10 vals [0, 0, 0, 0, 0, 0, 0, 0.00015, 0.0003, 0.00045],
last 10 vals [0.00075, 0.000749, 0.000749, 0.00075, 0.00075, 0.000599, 0.000449, 0.000299, 0.00015, 0],
}

Depends directly on:

through the following calculations:

You can also visit the link to Hourly data transferred in usage pattern’s full calculation graph.

hourly_data_stored_per_usage_pattern

Hourly net change in storage volume caused by this job, broken down by usage pattern.

Example value: {
UsagePattern usage pattern (60c504): 26298 values from 2025-01-01 00:00:00+00:00 to 2028-01-01 18:00:00+00:00 in kB stored:
first 10 vals [1400, 400, 600, 200, 1000, 1400, 1200, 800, 1600, 1000],
last 10 vals [1200, 600, 600, 800, 200, 1000, 400, 1200, 600, 1000],
EdgeUsagePattern Default edge usage pattern (7d23cf): 105192 values from 2025-01-01 00:00:00+00:00 to 2037-01-01 00:00:00+00:00 in TB stored:
first 10 vals [0, 0, 0, 0, 0, 0, 0, 0.0000999, 0.0002, 0.0003],
last 10 vals [0.0005, 0.0005, 0.0005, 0.0005, 0.0005, 0.0004, 0.0003, 0.0002, 0.0000997, 0],
}

Depends directly on:

through the following calculations:

You can also visit the link to Hourly data stored in usage pattern’s full calculation graph.

hourly_avg_occurrences_across_usage_patterns

Total hourly count of duration-averaged job invocations summed over every usage pattern.

Example value: 105192 values from 2025-01-01 00:00:00+00:00 to 2037-01-01 00:00:00+00:00 in k:
first 10 vals [0.00000389, 0.00000111, 0.00000167, 0.000000556, 0.00000278, 0.00000389, 0.00000333, 0.00028, 0.000559, 0.000835],
last 10 vals [0.00139, 0.00139, 0.00139, 0.00139, 0.00139, 0.00111, 0.000832, 0.000555, 0.000277, 0]

Depends directly on:

through the following calculations:

You can also visit the link to Hourly average occurrences across usage patterns’s full calculation graph.

hourly_data_transferred_across_usage_patterns

Total hourly volume of data transferred over the network by this job, summed over every usage pattern.

Example value: 105192 values from 2025-01-01 00:00:00+00:00 to 2037-01-01 00:00:00+00:00 in TB:
first 10 vals [0.0000021, 0.0000006, 0.0000009, 0.0000003, 0.0000015, 0.0000021, 0.0000018, 0.000151, 0.000302, 0.000451],
last 10 vals [0.00075, 0.000749, 0.000749, 0.00075, 0.00075, 0.000599, 0.000449, 0.000299, 0.00015, 0]

Depends directly on:

through the following calculations:

You can also visit the link to Hourly data transferred across usage patterns’s full calculation graph.

hourly_data_stored_across_usage_patterns

Total hourly net change in storage volume caused by this job, summed over every usage pattern.

Example value: 105192 values from 2025-01-01 00:00:00+00:00 to 2037-01-01 00:00:00+00:00 in TB stored:
first 10 vals [0.0000014, 0.0000004, 0.0000006, 0.0000002, 0.000001, 0.0000014, 0.0000012, 0.000101, 0.000201, 0.000301],
last 10 vals [0.0005, 0.0005, 0.0005, 0.0005, 0.0005, 0.0004, 0.0003, 0.0002, 0.0000997, 0]

Depends directly on:

through the following calculations:

You can also visit the link to Hourly data stored across usage patterns’s full calculation graph.

fabrication_impact_repartition_weights

Weights used to attribute fabrication-phase emissions of upstream impact sources to each container of this object.

Example value: {
UsageJourneyStep 20 min streaming (264451): 26298 values from 2025-01-01 00:00:00+00:00 to 2028-01-01 18:00:00+00:00 in :
first 10 vals [4.67, 1.33, 2, 0.667, 3.33, 4.67, 4, 2.67, 5.33, 3.33],
last 10 vals [4, 2, 2, 2.67, 0.667, 3.33, 1.33, 4, 2, 3.33],
RecurrentServerNeed Server need (3ffca2): 105192 values from 2025-01-01 00:00:00+00:00 to 2037-01-01 00:00:00+00:00 in M:
first 10 vals [0, 0, 0, 0, 0, 0, 0, 0.000999, 0.002, 0.003],
last 10 vals [0.005, 0.005, 0.005, 0.005, 0.005, 0.004, 0.003, 0.002, 0.000997, 0],
}

Depends directly on:

through the following calculations:

You can also visit the link to 20 min streaming weight in impact repartition’s full calculation graph.

fabrication_impact_repartition_weight_sum

Sum of fabrication impact repartition weights, used as the denominator when normalising into per-container shares.

Example value: 105192 values from 2025-01-01 00:00:00+00:00 to 2037-01-01 00:00:00+00:00 in M:
first 10 vals [0.00000467, 0.00000133, 0.000002, 0.000000667, 0.00000333, 0.00000467, 0.000004, 0.001, 0.002, 0.003],
last 10 vals [0.005, 0.005, 0.005, 0.005, 0.005, 0.004, 0.003, 0.002, 0.000997, 0]

Depends directly on:

through the following calculations:

You can also visit the link to Fabrication impact repartition weights sum’s full calculation graph.

fabrication_impact_repartition

Normalised share of fabrication-phase emissions that this object attributes to each container.

Example value: {
UsageJourneyStep 20 min streaming (264451): 105192 values from 2025-01-01 00:00:00+00:00 to 2037-01-01 00:00:00+00:00 in :
first 10 vals [1, 1, 1, 1, 1, 1, 1, 0.00266, 0.00266, 0.00111],
last 10 vals [0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
RecurrentServerNeed Server need (3ffca2): 105192 values from 2025-01-01 00:00:00+00:00 to 2037-01-01 00:00:00+00:00 in :
first 10 vals [0, 0, 0, 0, 0, 0, 0, 0.997, 0.997, 0.999],
last 10 vals [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
}

Depends directly on:

through the following calculations:

You can also visit the link to fabrication impact attribution to 20 min streaming’s full calculation graph.

usage_impact_repartition_weights

Weights used to attribute usage-phase emissions of upstream impact sources to each container of this object.

Example value: {
UsageJourneyStep 20 min streaming (264451): 26298 values from 2025-01-01 00:00:00+00:00 to 2028-01-01 18:00:00+00:00 in ·g/kWh:
first 10 vals [397, 113, 170, 56.7, 283, 397, 340, 227, 453, 283],
last 10 vals [340, 170, 170, 227, 56.7, 283, 113, 340, 170, 283],
RecurrentServerNeed Server need (3ffca2): 105192 values from 2025-01-01 00:00:00+00:00 to 2037-01-01 00:00:00+00:00 in ·g/kWh:
first 10 vals [0, 0, 0, 0, 0, 0, 0, 84900, 170000, 255000],
last 10 vals [425000, 425000, 425000, 425000, 425000, 340000, 255000, 170000, 84700, 0],
}

Depends directly on:

through the following calculations:

You can also visit the link to 20 min streaming weight in impact repartition’s full calculation graph.

usage_impact_repartition_weight_sum

Sum of usage impact repartition weights, used as the denominator when normalising into per-container shares.

Example value: 105192 values from 2025-01-01 00:00:00+00:00 to 2037-01-01 00:00:00+00:00 in ·g/kWh:
first 10 vals [397, 113, 170, 56.7, 283, 397, 340, 85100, 170000, 255000],
last 10 vals [425000, 425000, 425000, 425000, 425000, 340000, 255000, 170000, 84700, 0]

Depends directly on:

through the following calculations:

You can also visit the link to Usage impact repartition weights sum’s full calculation graph.

usage_impact_repartition

Normalised share of usage-phase emissions that this object attributes to each container.

Example value: {
UsageJourneyStep 20 min streaming (264451): 105192 values from 2025-01-01 00:00:00+00:00 to 2037-01-01 00:00:00+00:00 in :
first 10 vals [1, 1, 1, 1, 1, 1, 1, 0.00266, 0.00266, 0.00111],
last 10 vals [0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
RecurrentServerNeed Server need (3ffca2): 105192 values from 2025-01-01 00:00:00+00:00 to 2037-01-01 00:00:00+00:00 in :
first 10 vals [0, 0, 0, 0, 0, 0, 0, 0.997, 0.997, 0.999],
last 10 vals [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
}

Depends directly on:

through the following calculations:

You can also visit the link to usage impact attribution to 20 min streaming’s full calculation graph.