Skip to content

Commit

Permalink
feat: add Data Boost configurations to admin API
Browse files Browse the repository at this point in the history
PiperOrigin-RevId: 617925342
  • Loading branch information
Google APIs authored and Copybara-Service committed Mar 21, 2024
1 parent a47753e commit 6f289d7
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 0 deletions.
22 changes: 22 additions & 0 deletions google/bigtable/admin/v2/bigtable_table_admin.proto
Expand Up @@ -836,8 +836,30 @@ message CheckConsistencyRequest {

// Required. The token created using GenerateConsistencyToken for the Table.
string consistency_token = 2 [(google.api.field_behavior) = REQUIRED];

// Which type of read needs to consistently observe which type of write?
// Default: `standard_read_remote_writes`
oneof mode {
// Checks that reads using an app profile with `StandardIsolation` can
// see all writes committed before the token was created, even if the
// read and write target different clusters.
StandardReadRemoteWrites standard_read_remote_writes = 3;

// Checks that reads using an app profile with `DataBoostIsolationReadOnly`
// can see all writes committed before the token was created, but only if
// the read and write target the same cluster.
DataBoostReadLocalWrites data_boost_read_local_writes = 4;
}
}

// Checks that all writes before the consistency token was generated are
// replicated in every cluster and readable.
message StandardReadRemoteWrites {}

// Checks that all writes before the consistency token was generated in the same
// cluster are readable by Databoost.
message DataBoostReadLocalWrites {}

// Response message for
// [google.bigtable.admin.v2.BigtableTableAdmin.CheckConsistency][google.bigtable.admin.v2.BigtableTableAdmin.CheckConsistency]
message CheckConsistencyResponse {
Expand Down
33 changes: 33 additions & 0 deletions google/bigtable/admin/v2/instance.proto
Expand Up @@ -297,6 +297,35 @@ message AppProfile {
Priority priority = 1;
}

// Data Boost is a serverless compute capability that lets you run
// high-throughput read jobs on your Bigtable data, without impacting the
// performance of the clusters that handle your application traffic.
// Currently, Data Boost exclusively supports read-only use-cases with
// single-cluster routing.
//
// Data Boost reads are only guaranteed to see the results of writes that
// were written at least 30 minutes ago. This means newly written values may
// not become visible for up to 30m, and also means that old values may
// remain visible for up to 30m after being deleted or overwritten. To
// mitigate the staleness of the data, users may either wait 30m, or use
// CheckConsistency.
message DataBoostIsolationReadOnly {
// Compute Billing Owner specifies how usage should be accounted when using
// Data Boost. Compute Billing Owner also configures which Cloud Project is
// charged for relevant quota.
enum ComputeBillingOwner {
// Unspecified value.
COMPUTE_BILLING_OWNER_UNSPECIFIED = 0;

// The host Cloud Project containing the targeted Bigtable Instance /
// Table pays for compute.
HOST_PAYS = 1;
}

// The Compute Billing Owner for this Data Boost App Profile.
optional ComputeBillingOwner compute_billing_owner = 1;
}

// The unique name of the app profile. Values are of the form
// `projects/{project}/instances/{instance}/appProfiles/[_a-zA-Z0-9][-_.a-zA-Z0-9]*`.
string name = 1;
Expand Down Expand Up @@ -335,6 +364,10 @@ message AppProfile {
// The standard options used for isolating this app profile's traffic from
// other use cases.
StandardIsolation standard_isolation = 11;

// Specifies that this app profile is intended for read-only usage via the
// Data Boost feature.
DataBoostIsolationReadOnly data_boost_isolation_read_only = 10;
}
}

Expand Down

0 comments on commit 6f289d7

Please sign in to comment.