From 22e095adea77a2bc3900f5d5c57715d4a9ed4fcb Mon Sep 17 00:00:00 2001 From: Alvaro Viebrantz Date: Wed, 30 Aug 2023 13:52:13 -0400 Subject: [PATCH] feat(bigquery): set PreferredMinStreamCount when creating read session (#8476) `PreferredMinStreamCount` must be less than or equal to `MaxStreamCount`, so we only set it when the `MaxStreamCount` is 0, which basically sets no limit to it. Resolves #8432 --- bigquery/storage_client.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/bigquery/storage_client.go b/bigquery/storage_client.go index aa04e2100883..12b7702250f7 100644 --- a/bigquery/storage_client.go +++ b/bigquery/storage_client.go @@ -135,13 +135,19 @@ type readSession struct { // Start initiates a read session func (rs *readSession) start() error { + var preferredMinStreamCount int32 + maxStreamCount := int32(rs.settings.maxStreamCount) + if maxStreamCount == 0 { + preferredMinStreamCount = int32(rs.settings.maxWorkerCount) + } createReadSessionRequest := &storagepb.CreateReadSessionRequest{ Parent: fmt.Sprintf("projects/%s", rs.table.ProjectID), ReadSession: &storagepb.ReadSession{ Table: rs.tableID, DataFormat: storagepb.DataFormat_ARROW, }, - MaxStreamCount: int32(rs.settings.maxStreamCount), + MaxStreamCount: maxStreamCount, + PreferredMinStreamCount: preferredMinStreamCount, } rpcOpts := gax.WithGRPCOptions( // Read API can send batches up to 128MB