Skip to content

Commit 2db1cc6

Browse files
Merge branch 'main' of https://github.com/googleapis/java-spanner into partitioned-query
2 parents f4271cc + 134be9b commit 2db1cc6

File tree

66 files changed

+601
-429
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+601
-429
lines changed

google-cloud-spanner-executor/pom.xml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -145,10 +145,6 @@
145145
<groupId>com.google.api</groupId>
146146
<artifactId>gax-grpc</artifactId>
147147
</dependency>
148-
<dependency>
149-
<groupId>org.threeten</groupId>
150-
<artifactId>threetenbp</artifactId>
151-
</dependency>
152148
<dependency>
153149
<groupId>com.google.code.findbugs</groupId>
154150
<artifactId>jsr305</artifactId>

google-cloud-spanner-executor/src/main/java/com/google/cloud/executor/spanner/CloudClientExecutor.java

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,8 @@
170170
import java.io.Serializable;
171171
import java.math.BigDecimal;
172172
import java.text.ParseException;
173+
import java.time.Duration;
174+
import java.time.LocalDate;
173175
import java.util.ArrayList;
174176
import java.util.List;
175177
import java.util.Map;
@@ -186,8 +188,6 @@
186188
import javax.annotation.Nonnull;
187189
import javax.annotation.Nullable;
188190
import org.apache.commons.io.FileUtils;
189-
import org.threeten.bp.Duration;
190-
import org.threeten.bp.LocalDate;
191191

192192
/**
193193
* Implementation of the SpannerExecutorProxy gRPC service that proxies action request through the
@@ -818,21 +818,26 @@ private synchronized Spanner getClient(long timeoutSeconds, boolean useMultiplex
818818
}
819819
RetrySettings retrySettings =
820820
RetrySettings.newBuilder()
821-
.setInitialRetryDelay(Duration.ofSeconds(1))
821+
.setInitialRetryDelayDuration(Duration.ofSeconds(1))
822822
.setRetryDelayMultiplier(1.3)
823-
.setMaxRetryDelay(Duration.ofSeconds(32))
824-
.setInitialRpcTimeout(rpcTimeout)
823+
.setMaxRetryDelayDuration(Duration.ofSeconds(32))
824+
.setInitialRpcTimeoutDuration(rpcTimeout)
825825
.setRpcTimeoutMultiplier(1.0)
826-
.setMaxRpcTimeout(rpcTimeout)
827-
.setTotalTimeout(rpcTimeout)
826+
.setMaxRpcTimeoutDuration(rpcTimeout)
827+
.setTotalTimeoutDuration(rpcTimeout)
828828
.build();
829829

830830
com.google.cloud.spanner.SessionPoolOptions.Builder poolOptionsBuilder =
831831
com.google.cloud.spanner.SessionPoolOptions.newBuilder();
832-
SessionPoolOptionsHelper.setUseMultiplexedSession(
833-
com.google.cloud.spanner.SessionPoolOptions.newBuilder(), useMultiplexedSession);
832+
SessionPoolOptionsHelper.setUseMultiplexedSession(poolOptionsBuilder, useMultiplexedSession);
834833
SessionPoolOptionsHelper.setUseMultiplexedSessionBlindWrite(
835-
com.google.cloud.spanner.SessionPoolOptions.newBuilder(), useMultiplexedSession);
834+
poolOptionsBuilder, useMultiplexedSession);
835+
SessionPoolOptionsHelper.setUseMultiplexedSessionForRW(
836+
poolOptionsBuilder, useMultiplexedSession);
837+
LOGGER.log(
838+
Level.INFO,
839+
String.format(
840+
"Using multiplexed sessions for read-write transactions: %s", useMultiplexedSession));
836841
com.google.cloud.spanner.SessionPoolOptions sessionPoolOptions = poolOptionsBuilder.build();
837842
// Cloud Spanner Client does not support global retry settings,
838843
// Thus, we need to add retry settings to each individual stub.

google-cloud-spanner-executor/src/main/java/com/google/cloud/spanner/SessionPoolOptionsHelper.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,10 @@ public static SessionPoolOptions.Builder setUseMultiplexedSessionBlindWrite(
3838
return sessionPoolOptionsBuilder.setUseMultiplexedSessionBlindWrite(
3939
useMultiplexedSessionBlindWrite);
4040
}
41+
42+
// TODO: Remove when multiplexed session for read write is released.
43+
public static SessionPoolOptions.Builder setUseMultiplexedSessionForRW(
44+
SessionPoolOptions.Builder sessionPoolOptionsBuilder, boolean useMultiplexedSessionForRW) {
45+
return sessionPoolOptionsBuilder.setUseMultiplexedSessionForRW(useMultiplexedSessionForRW);
46+
}
4147
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
package com.google.cloud.spanner;
1818

19-
import org.threeten.bp.Instant;
19+
import java.time.Instant;
2020

2121
/**
2222
* Wrapper around current time so that we can fake it in tests. TODO(user): Replace with Java 8

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

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,17 @@
1616

1717
package com.google.cloud.spanner;
1818

19+
import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration;
20+
1921
import com.google.api.core.InternalApi;
2022
import com.google.api.gax.tracing.ApiTracer;
2123
import com.google.api.gax.tracing.BaseApiTracer;
2224
import com.google.api.gax.tracing.MetricsTracer;
2325
import com.google.common.collect.ImmutableList;
26+
import java.time.Duration;
2427
import java.util.ArrayList;
2528
import java.util.List;
2629
import java.util.Map;
27-
import org.threeten.bp.Duration;
2830

2931
@InternalApi
3032
public class CompositeTracer extends BaseApiTracer {
@@ -109,14 +111,14 @@ public void attemptCancelled() {
109111
}
110112

111113
@Override
112-
public void attemptFailed(Throwable error, Duration delay) {
114+
public void attemptFailed(Throwable error, org.threeten.bp.Duration delay) {
113115
for (ApiTracer child : children) {
114-
child.attemptFailed(error, delay);
116+
child.attemptFailedDuration(error, toJavaTimeDuration(delay));
115117
}
116118
}
117119

118120
@Override
119-
public void attemptFailedDuration(Throwable error, java.time.Duration delay) {
121+
public void attemptFailedDuration(Throwable error, Duration delay) {
120122
for (ApiTracer child : children) {
121123
child.attemptFailedDuration(error, delay);
122124
}

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,14 @@
2424
import com.google.common.collect.AbstractIterator;
2525
import com.google.common.util.concurrent.Uninterruptibles;
2626
import com.google.spanner.v1.PartialResultSet;
27+
import java.time.Duration;
2728
import java.util.Optional;
2829
import java.util.concurrent.BlockingQueue;
2930
import java.util.concurrent.LinkedBlockingQueue;
3031
import java.util.concurrent.TimeUnit;
3132
import java.util.logging.Level;
3233
import java.util.logging.Logger;
3334
import javax.annotation.Nullable;
34-
import org.threeten.bp.Duration;
3535

3636
/** Adapts a streaming read/query call into an iterator over partial result sets. */
3737
@VisibleForTesting
@@ -77,7 +77,8 @@ public void setCall(SpannerRpc.StreamingCall call, boolean withBeginTransaction)
7777
this.call = call;
7878
this.withBeginTransaction = withBeginTransaction;
7979
ApiCallContext callContext = call.getCallContext();
80-
Duration streamWaitTimeout = callContext == null ? null : callContext.getStreamWaitTimeout();
80+
Duration streamWaitTimeout =
81+
callContext == null ? null : callContext.getStreamWaitTimeoutDuration();
8182
if (streamWaitTimeout != null) {
8283
// Determine the timeout unit to use. This reduces the precision to seconds if the timeout
8384
// value is more than 1 second, which is lower than the precision that would normally be

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@
1919
import com.google.cloud.spanner.SpannerOptions.FixedCloseableExecutorProvider;
2020
import java.nio.file.Files;
2121
import java.nio.file.Paths;
22+
import java.time.Duration;
2223
import java.util.concurrent.Executors;
2324
import java.util.concurrent.ScheduledExecutorService;
2425
import java.util.concurrent.ThreadFactory;
2526
import java.util.concurrent.ThreadLocalRandom;
26-
import org.threeten.bp.Duration;
2727

2828
public class LatencyTest {
2929

@@ -42,7 +42,7 @@ public static void main(String[] args) throws Exception {
4242
Paths.get("/Users/loite/Downloads/appdev-soda-spanner-staging.json"))))
4343
.setSessionPoolOption(
4444
SessionPoolOptions.newBuilder()
45-
.setWaitForMinSessions(Duration.ofSeconds(5L))
45+
.setWaitForMinSessionsDuration(Duration.ofSeconds(5L))
4646
// .setUseMultiplexedSession(true)
4747
.build())
4848
.setUseVirtualThreads(true)

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ public void onSessionCreateFailure(Throwable t, int createFailureForSessionCount
276276

277277
private static void maybeWaitForSessionCreation(
278278
SessionPoolOptions sessionPoolOptions, ApiFuture<SessionReference> future) {
279-
org.threeten.bp.Duration waitDuration = sessionPoolOptions.getWaitForMinSessions();
279+
Duration waitDuration = sessionPoolOptions.getWaitForMinSessions();
280280
if (waitDuration != null && !waitDuration.isZero()) {
281281
long timeoutMillis = waitDuration.toMillis();
282282
try {

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

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616

1717
package com.google.cloud.spanner;
1818

19+
import static com.google.api.gax.util.TimeConversionUtils.toJavaTimeDuration;
20+
21+
import com.google.api.core.ObsoleteApi;
1922
import com.google.api.gax.tracing.ApiTracer;
2023
import com.google.api.gax.tracing.ApiTracerFactory.OperationType;
2124
import com.google.common.base.Preconditions;
@@ -24,10 +27,10 @@
2427
import io.opentelemetry.api.common.AttributesBuilder;
2528
import io.opentelemetry.api.trace.Span;
2629
import io.opentelemetry.api.trace.StatusCode;
30+
import java.time.Duration;
2731
import java.util.concurrent.atomic.AtomicLong;
2832
import javax.annotation.Nonnull;
2933
import javax.annotation.Nullable;
30-
import org.threeten.bp.Duration;
3134

3235
/**
3336
* {@link com.google.api.gax.tracing.ApiTracer} for use with OpenTelemetry. Based on {@link
@@ -163,8 +166,15 @@ public void attemptCancelled() {
163166
lastConnectionId = null;
164167
}
165168

169+
/** This method is obsolete. Use {@link #attemptFailedDuration(Throwable, Duration)} instead. */
170+
@Override
171+
@ObsoleteApi("Use attemptFailedDuration(Throwable, Duration) instead")
172+
public void attemptFailed(Throwable error, org.threeten.bp.Duration delay) {
173+
attemptFailedDuration(error, toJavaTimeDuration(delay));
174+
}
175+
166176
@Override
167-
public void attemptFailed(Throwable error, Duration delay) {
177+
public void attemptFailedDuration(Throwable error, Duration delay) {
168178
AttributesBuilder builder = baseAttemptAttributesBuilder();
169179
if (delay != null) {
170180
builder.put(RETRY_DELAY_KEY, delay.toMillis());

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@
2828
import com.google.longrunning.Operation.ResultCase;
2929
import com.google.protobuf.Any;
3030
import com.google.rpc.Status;
31+
import java.time.Duration;
3132
import java.util.concurrent.ExecutionException;
3233
import javax.annotation.Nullable;
33-
import org.threeten.bp.Duration;
3434

3535
/**
3636
* Represents a long-running operation.
@@ -43,11 +43,11 @@ public class Operation<R, M> {
4343

4444
private final RetrySettings DEFAULT_OPERATION_WAIT_SETTINGS =
4545
RetrySettings.newBuilder()
46-
.setTotalTimeout(Duration.ofHours(12L))
47-
.setInitialRetryDelay(Duration.ofMillis(500L))
46+
.setTotalTimeoutDuration(Duration.ofHours(12L))
47+
.setInitialRetryDelayDuration(Duration.ofMillis(500L))
4848
.setRetryDelayMultiplier(1.0)
4949
.setJittered(false)
50-
.setMaxRetryDelay(Duration.ofMinutes(500L))
50+
.setMaxRetryDelayDuration(Duration.ofMinutes(500L))
5151
.build();
5252

5353
interface Parser<R, M> {

0 commit comments

Comments
 (0)