From bd873bc82f0b210312fd442678c801758291935e Mon Sep 17 00:00:00 2001 From: Diego Gomez <90649271+diegomez17@users.noreply.github.com> Date: Thu, 9 Dec 2021 15:12:14 -0500 Subject: [PATCH] fix: remove tracking latency from channel priming requests (#1082) Created a callable that will not publish latency from channel priming to client metrics. --- .../data/v2/stub/BigtableChannelPrimer.java | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableChannelPrimer.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableChannelPrimer.java index 15be8f730..93f2cf3ef 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableChannelPrimer.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableChannelPrimer.java @@ -15,8 +15,6 @@ */ package com.google.cloud.bigtable.data.v2.stub; -import static com.google.cloud.bigtable.data.v2.models.Filters.FILTERS; - import com.google.api.core.ApiFuture; import com.google.api.core.BetaApi; import com.google.api.gax.core.FixedCredentialsProvider; @@ -25,7 +23,11 @@ import com.google.api.gax.grpc.GrpcTransportChannel; import com.google.api.gax.rpc.FixedTransportChannelProvider; import com.google.auth.Credentials; -import com.google.cloud.bigtable.data.v2.models.Query; +import com.google.bigtable.v2.ReadRowsRequest; +import com.google.bigtable.v2.RowFilter; +import com.google.bigtable.v2.RowSet; +import com.google.bigtable.v2.TableName; +import com.google.cloud.bigtable.data.v2.models.DefaultRowAdapter; import com.google.cloud.bigtable.data.v2.models.Row; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; @@ -144,8 +146,20 @@ private void sendPrimeRequests(ManagedChannel managedChannel) throws IOException // Prime all of the table ids in parallel for (String tableId : tableIds) { ApiFuture f = - stub.readRowCallable() - .futureCall(Query.create(tableId).rowKey(PRIMING_ROW_KEY).filter(FILTERS.block())); + stub.createReadRowsRawCallable(new DefaultRowAdapter()) + .first() + .futureCall( + ReadRowsRequest.newBuilder() + .setTableName( + TableName.format( + primingSettings.getProjectId(), + primingSettings.getInstanceId(), + tableId)) + .setAppProfileId(primingSettings.getAppProfileId()) + .setRows(RowSet.newBuilder().addRowKeys(PRIMING_ROW_KEY).build()) + .setFilter(RowFilter.newBuilder().setBlockAllFilter(true).build()) + .setRowsLimit(1) + .build()); primeFutures.put(tableId, f); }