From 180ec67f241105b6555f16590e8ac41f837b8dab Mon Sep 17 00:00:00 2001 From: Hanzhen Yi Date: Fri, 15 Jun 2018 12:10:42 -0700 Subject: [PATCH] Fix code review issues --- .../main/java/com/google/cloud/spanner/SpannerImpl.java | 6 +----- .../com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java | 9 +++++++++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/google-cloud-clients/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerImpl.java b/google-cloud-clients/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerImpl.java index e67129c92d2d..6b4c4b25ba16 100644 --- a/google-cloud-clients/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerImpl.java +++ b/google-cloud-clients/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerImpl.java @@ -1069,11 +1069,7 @@ CloseableIterator startStream(@Nullable ByteString resumeToken : request.toBuilder().setResumeToken(resumeToken).build(), stream.consumer(), session.options); - // StreamController does not auto-request 1 message. Kick it off mannually - call.request(1); - if (prefetchChunks > 1) { - call.request(prefetchChunks - 1); - } + call.request(prefetchChunks); stream.setCall(call); return stream; } diff --git a/google-cloud-clients/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java b/google-cloud-clients/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java index 394107661671..6e4346ab0857 100644 --- a/google-cloud-clients/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java +++ b/google-cloud-clients/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java @@ -125,6 +125,12 @@ public GapicSpannerRpc(SpannerOptions options) { this.projectId = options.getProjectId(); this.projectName = PROJECT_NAME_TEMPLATE.instantiate("project", this.projectId); + // TODO(hzyi): inject userAgent to headerProvider so that it + // can be picked up by ChannelProvider + + // create a metadataProvider which combines both internal headers and + // per-method-call extra headers for channelProvider to inject the headers + // for rpc calls ApiClientHeaderProvider.Builder internalHeaderProviderBuilder = ApiClientHeaderProvider.newBuilder(); ApiClientHeaderProvider internalHeaderProvider = @@ -528,6 +534,9 @@ public SpannerResponseObserver(ResultStreamConsumer consumer) { @Override public void onStart(StreamController controller) { + + // Disable the auto flow control to allow client library + // set the number of messages it prefers to request controller.disableAutoInboundFlowControl(); this.controller = controller; }