Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: handle retry info so client respect the delay server sets #2026

Merged
merged 14 commits into from
Dec 19, 2023
Prev Previous commit
Next Next commit
format
  • Loading branch information
mutianf committed Dec 18, 2023
commit 8a92dfd010e57763b778301d09eee8a594d94405
Original file line number Diff line number Diff line change
Expand Up @@ -1066,10 +1066,11 @@ private <RequestT, ResponseT> UnaryCallable<RequestT, ResponseT> withRetries(
UnaryCallable<RequestT, ResponseT> innerCallable, UnaryCallSettings<?, ?> unaryCallSettings) {
UnaryCallable<RequestT, ResponseT> retrying;
if (settings.getEnableRetryInfo()) {
retrying = com.google.cloud.bigtable.gaxx.retrying.Callables.retrying(innerCallable, unaryCallSettings, clientContext);
} else {
retrying =
Callables.retrying(innerCallable, unaryCallSettings, clientContext);
com.google.cloud.bigtable.gaxx.retrying.Callables.retrying(
innerCallable, unaryCallSettings, clientContext);
} else {
retrying = Callables.retrying(innerCallable, unaryCallSettings, clientContext);
}
if (settings.getEnableRoutingCookie()) {
return new CookiesUnaryCallable<>(retrying);
Expand All @@ -1084,7 +1085,8 @@ private <RequestT, ResponseT> ServerStreamingCallable<RequestT, ResponseT> withR
ServerStreamingCallable<RequestT, ResponseT> retrying;
if (settings.getEnableRetryInfo()) {
retrying =
com.google.cloud.bigtable.gaxx.retrying.Callables.retrying(innerCallable, serverStreamingCallSettings, clientContext);
com.google.cloud.bigtable.gaxx.retrying.Callables.retrying(
innerCallable, serverStreamingCallSettings, clientContext);
} else {
retrying = Callables.retrying(innerCallable, serverStreamingCallSettings, clientContext);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -806,10 +806,10 @@ public void routingCookieIsEnabled() throws IOException {
CredentialsProvider credentialsProvider = Mockito.mock(CredentialsProvider.class);
Mockito.when(credentialsProvider.getCredentials()).thenReturn(new FakeCredentials());
EnhancedBigtableStubSettings.Builder builder =
EnhancedBigtableStubSettings.newBuilder()
.setProjectId(dummyProjectId)
.setInstanceId(dummyInstanceId)
.setCredentialsProvider(credentialsProvider);
EnhancedBigtableStubSettings.newBuilder()
.setProjectId(dummyProjectId)
.setInstanceId(dummyInstanceId)
.setCredentialsProvider(credentialsProvider);

assertThat(builder.getEnableRoutingCookie()).isTrue();
assertThat(builder.build().getEnableRoutingCookie()).isTrue();
Expand All @@ -822,10 +822,10 @@ public void enableRetryInfoDefaultValueTest() throws IOException {
CredentialsProvider credentialsProvider = Mockito.mock(CredentialsProvider.class);
Mockito.when(credentialsProvider.getCredentials()).thenReturn(new FakeCredentials());
EnhancedBigtableStubSettings.Builder builder =
EnhancedBigtableStubSettings.newBuilder()
.setProjectId(dummyProjectId)
.setInstanceId(dummyInstanceId)
.setCredentialsProvider(credentialsProvider);
EnhancedBigtableStubSettings.newBuilder()
.setProjectId(dummyProjectId)
.setInstanceId(dummyInstanceId)
.setCredentialsProvider(credentialsProvider);
assertThat(builder.getEnableRetryInfo()).isTrue();
assertThat(builder.build().getEnableRetryInfo()).isTrue();
assertThat(builder.build().toBuilder().getEnableRetryInfo()).isTrue();
Expand All @@ -838,11 +838,11 @@ public void routingCookieFalseValueSet() throws IOException {
CredentialsProvider credentialsProvider = Mockito.mock(CredentialsProvider.class);
Mockito.when(credentialsProvider.getCredentials()).thenReturn(new FakeCredentials());
EnhancedBigtableStubSettings.Builder builder =
EnhancedBigtableStubSettings.newBuilder()
.setProjectId(dummyProjectId)
.setInstanceId(dummyInstanceId)
.setEnableRoutingCookie(false)
.setCredentialsProvider(credentialsProvider);
EnhancedBigtableStubSettings.newBuilder()
.setProjectId(dummyProjectId)
.setInstanceId(dummyInstanceId)
.setEnableRoutingCookie(false)
.setCredentialsProvider(credentialsProvider);
assertThat(builder.getEnableRoutingCookie()).isFalse();
assertThat(builder.build().getEnableRoutingCookie()).isFalse();
assertThat(builder.build().toBuilder().getEnableRoutingCookie()).isFalse();
Expand Down
Loading