Skip to content

Commit

Permalink
feat: Add ProvisioningModelMix to support mixing of spot and standa…
Browse files Browse the repository at this point in the history
…rd instances for secondary workers

feat: Add support for configuration of bootdisk IOPS and throughput when bootdisk is a hyperdisk

PiperOrigin-RevId: 686008645
  • Loading branch information
Google APIs authored and copybara-github committed Oct 15, 2024
1 parent f78cd2f commit 2f49d44
Showing 1 changed file with 42 additions and 0 deletions.
42 changes: 42 additions & 0 deletions google/cloud/dataproc/v1/clusters.proto
Original file line number Diff line number Diff line change
Expand Up @@ -794,6 +794,30 @@ message ManagedGroupConfig {
// Instance flexibility Policy allowing a mixture of VM shapes and provisioning
// models.
message InstanceFlexibilityPolicy {
// Defines how Dataproc should create VMs with a mixture of provisioning
// models.
message ProvisioningModelMix {
// Optional. The base capacity that will always use Standard VMs to avoid
// risk of more preemption than the minimum capacity you need. Dataproc will
// create only standard VMs until it reaches standard_capacity_base, then it
// will start using standard_capacity_percent_above_base to mix Spot with
// Standard VMs. eg. If 15 instances are requested and
// standard_capacity_base is 5, Dataproc will create 5 standard VMs and then
// start mixing spot and standard VMs for remaining 10 instances.
optional int32 standard_capacity_base = 1
[(google.api.field_behavior) = OPTIONAL];

// Optional. The percentage of target capacity that should use Standard VM.
// The remaining percentage will use Spot VMs. The percentage applies only
// to the capacity above standard_capacity_base. eg. If 15 instances are
// requested and standard_capacity_base is 5 and
// standard_capacity_percent_above_base is 30, Dataproc will create 5
// standard VMs and then start mixing spot and standard VMs for remaining 10
// instances. The mix will be 30% standard and 70% spot.
optional int32 standard_capacity_percent_above_base = 2
[(google.api.field_behavior) = OPTIONAL];
}

// Defines machines types and a rank to which the machines types belong.
message InstanceSelection {
// Optional. Full machine-type names, e.g. "n1-standard-16".
Expand All @@ -818,6 +842,11 @@ message InstanceFlexibilityPolicy {
optional int32 vm_count = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
}

// Optional. Defines how the Group selects the provisioning model to ensure
// required reliability.
ProvisioningModelMix provisioning_model_mix = 1
[(google.api.field_behavior) = OPTIONAL];

// Optional. List of instance selection options that the group will use when
// creating new VMs.
repeated InstanceSelection instance_selection_list = 2
Expand Down Expand Up @@ -883,6 +912,19 @@ message DiskConfig {
// See [local SSD
// performance](https://cloud.google.com/compute/docs/disks/local-ssd#performance).
string local_ssd_interface = 4 [(google.api.field_behavior) = OPTIONAL];

// Optional. Indicates how many IOPS to provision for the disk. This sets the
// number of I/O operations per second that the disk can handle. Note: This
// field is only supported if boot_disk_type is hyperdisk-balanced.
optional int64 boot_disk_provisioned_iops = 5
[(google.api.field_behavior) = OPTIONAL];

// Optional. Indicates how much throughput to provision for the disk. This
// sets the number of throughput mb per second that the disk can handle.
// Values must be greater than or equal to 1. Note: This field is only
// supported if boot_disk_type is hyperdisk-balanced.
optional int64 boot_disk_provisioned_throughput = 6
[(google.api.field_behavior) = OPTIONAL];
}

// Node group identification and configuration information.
Expand Down

0 comments on commit 2f49d44

Please sign in to comment.