Skip to content

Commit 6ce4c2d

Browse files
authored
test: improve execution speed of tests (#1151)
* test: improve execution speed of tests * fix: address review comments + serialize scripts in ITs * fix: add last batch to list * fix: create new list instead of clearing it * build: remove custom skip tests variable * test: add test for retry admin requests
1 parent cd45643 commit 6ce4c2d

24 files changed

+1425
-1580
lines changed

google-cloud-spanner/pom.xml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
</parent>
1616
<properties>
1717
<site.installationModule>google-cloud-spanner</site.installationModule>
18-
<skipUTs>false</skipUTs>
1918
</properties>
2019

2120

@@ -51,7 +50,6 @@
5150
<id>default-test</id>
5251
<configuration>
5352
<excludedGroups>com.google.cloud.spanner.TracerTest,com.google.cloud.spanner.IntegrationTest</excludedGroups>
54-
<skipTests>${skipUTs}</skipTests>
5553
</configuration>
5654
</execution>
5755
<execution>

google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ public class SpannerOptions extends ServiceOptions<Spanner, SpannerOptions> {
104104
private final DatabaseAdminStubSettings databaseAdminStubSettings;
105105
private final Duration partitionedDmlTimeout;
106106
private final boolean autoThrottleAdministrativeRequests;
107+
private final RetrySettings retryAdministrativeRequestsSettings;
107108
private final boolean trackTransactionStarter;
108109
/**
109110
* These are the default {@link QueryOptions} defined by the user on this {@link SpannerOptions}.
@@ -554,6 +555,7 @@ private SpannerOptions(Builder builder) {
554555
}
555556
partitionedDmlTimeout = builder.partitionedDmlTimeout;
556557
autoThrottleAdministrativeRequests = builder.autoThrottleAdministrativeRequests;
558+
retryAdministrativeRequestsSettings = builder.retryAdministrativeRequestsSettings;
557559
trackTransactionStarter = builder.trackTransactionStarter;
558560
defaultQueryOptions = builder.defaultQueryOptions;
559561
envQueryOptions = builder.getEnvironmentQueryOptions();
@@ -606,6 +608,13 @@ public static class Builder
606608
extends ServiceOptions.Builder<Spanner, SpannerOptions, SpannerOptions.Builder> {
607609
static final int DEFAULT_PREFETCH_CHUNKS = 4;
608610
static final QueryOptions DEFAULT_QUERY_OPTIONS = QueryOptions.getDefaultInstance();
611+
static final RetrySettings DEFAULT_ADMIN_REQUESTS_LIMIT_EXCEEDED_RETRY_SETTINGS =
612+
RetrySettings.newBuilder()
613+
.setInitialRetryDelay(Duration.ofSeconds(5L))
614+
.setRetryDelayMultiplier(2.0)
615+
.setMaxRetryDelay(Duration.ofSeconds(60L))
616+
.setMaxAttempts(10)
617+
.build();
609618
private final ImmutableSet<String> allowedClientLibTokens =
610619
ImmutableSet.of(
611620
ServiceOptions.getGoogApiClientLibName(),
@@ -632,6 +641,8 @@ public static class Builder
632641
private DatabaseAdminStubSettings.Builder databaseAdminStubSettingsBuilder =
633642
DatabaseAdminStubSettings.newBuilder();
634643
private Duration partitionedDmlTimeout = Duration.ofHours(2L);
644+
private RetrySettings retryAdministrativeRequestsSettings =
645+
DEFAULT_ADMIN_REQUESTS_LIMIT_EXCEEDED_RETRY_SETTINGS;
635646
private boolean autoThrottleAdministrativeRequests = false;
636647
private boolean trackTransactionStarter = false;
637648
private Map<DatabaseId, QueryOptions> defaultQueryOptions = new HashMap<>();
@@ -680,6 +691,7 @@ private Builder() {
680691
this.databaseAdminStubSettingsBuilder = options.databaseAdminStubSettings.toBuilder();
681692
this.partitionedDmlTimeout = options.partitionedDmlTimeout;
682693
this.autoThrottleAdministrativeRequests = options.autoThrottleAdministrativeRequests;
694+
this.retryAdministrativeRequestsSettings = options.retryAdministrativeRequestsSettings;
683695
this.trackTransactionStarter = options.trackTransactionStarter;
684696
this.defaultQueryOptions = options.defaultQueryOptions;
685697
this.callCredentialsProvider = options.callCredentialsProvider;
@@ -892,6 +904,16 @@ public Builder setAutoThrottleAdministrativeRequests() {
892904
return this;
893905
}
894906

907+
/**
908+
* Sets the retry settings for retrying administrative requests when the quote of administrative
909+
* requests per minute has been exceeded.
910+
*/
911+
Builder setRetryAdministrativeRequestsSettings(
912+
RetrySettings retryAdministrativeRequestsSettings) {
913+
this.retryAdministrativeRequestsSettings = retryAdministrativeRequestsSettings;
914+
return this;
915+
}
916+
895917
/**
896918
* Instructs the client library to track the first request of each read/write transaction. This
897919
* statement will include a BeginTransaction option and will return a transaction id as part of
@@ -1092,6 +1114,10 @@ public boolean isAutoThrottleAdministrativeRequests() {
10921114
return autoThrottleAdministrativeRequests;
10931115
}
10941116

1117+
public RetrySettings getRetryAdministrativeRequestsSettings() {
1118+
return retryAdministrativeRequestsSettings;
1119+
}
1120+
10951121
public boolean isTrackTransactionStarter() {
10961122
return trackTransactionStarter;
10971123
}

0 commit comments

Comments
 (0)