Skip to content

Commit 0491ba6

Browse files
feat(spanner): Enable multiplex sessions by default for all operations (#12734)
* feat(spanner): Enable multiplex sessions by default for all operations * Fix regular and multiplex session tests * update emulator version
1 parent bfd138a commit 0491ba6

File tree

11 files changed

+247
-191
lines changed

11 files changed

+247
-191
lines changed

spanner/batch_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,9 @@ func TestPartitionQuery_Parallel(t *testing.T) {
245245
}
246246

247247
func TestPartitionQuery_Multiplexed(t *testing.T) {
248+
if !isMultiplexEnabled {
249+
t.Skip("Skipping multiplex session tests when regular sessions enabled")
250+
}
248251
t.Parallel()
249252
ctx := context.Background()
250253
server, client, teardown := setupMockedTestServerWithConfig(t, ClientConfig{
@@ -309,6 +312,9 @@ func TestPartitionQuery_Multiplexed(t *testing.T) {
309312
}
310313

311314
func TestPartitionRead_Multiplexed(t *testing.T) {
315+
if !isMultiplexEnabled {
316+
t.Skip("Skipping multiplex session tests when regular sessions enabled")
317+
}
312318
t.Parallel()
313319
ctx := context.Background()
314320
server, client, teardown := setupMockedTestServerWithConfig(t, ClientConfig{

spanner/benchmarks/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ Please look at the [Configurations](#configurations) section for allowed options
3636

3737
To enable some application specific configurations, you can reference the following table.
3838

39-
| Description | Environment variable |
40-
|----------------------------|------------------------------------------------|
41-
| Enabling multiplex session | GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS=true |
42-
| Enabling directpath | GOOGLE_SPANNER_ENABLE_DIRECT_ACCESS=true |
39+
| Description | Environment variable |
40+
|-----------------------------|-------------------------------------------------|
41+
| Disabling multiplex session | GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS=false |
42+
| Enabling directpath | GOOGLE_SPANNER_ENABLE_DIRECT_ACCESS=true |
4343

spanner/client.go

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -553,27 +553,36 @@ func newClientWithConfig(ctx context.Context, database string, config ClientConf
553553
md.Append(afeMetricHeader, "true")
554554
}
555555

556-
if isMultiplexed := strings.ToLower(os.Getenv("GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS")); isMultiplexed != "" && !config.enableMultiplexSession {
557-
config.enableMultiplexSession, err = strconv.ParseBool(isMultiplexed)
556+
if isMultiplexed, found := os.LookupEnv("GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS"); found {
557+
config.enableMultiplexSession, err = strconv.ParseBool(strings.ToLower(isMultiplexed))
558558
if err != nil {
559559
return nil, spannerErrorf(codes.InvalidArgument, "GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS must be either true or false")
560560
}
561+
} else {
562+
config.enableMultiplexSession = true
561563
}
562-
if isMultiplexForRW := os.Getenv("GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS_FOR_RW"); isMultiplexForRW != "" && !config.enableMultiplexedSessionForRW {
563-
config.enableMultiplexedSessionForRW, err = strconv.ParseBool(isMultiplexForRW)
564+
565+
if isMultiplexForRW, found := os.LookupEnv("GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS_FOR_RW"); found {
566+
config.enableMultiplexedSessionForRW, err = strconv.ParseBool(strings.ToLower(isMultiplexForRW))
564567
if err != nil {
565568
return nil, spannerErrorf(codes.InvalidArgument, "GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS_FOR_RW must be either true or false")
566569
}
567-
config.enableMultiplexedSessionForRW = config.enableMultiplexedSessionForRW && config.SessionPoolConfig.enableMultiplexSession
570+
} else {
571+
config.enableMultiplexedSessionForRW = true
568572
}
569-
if isMultiplexForPartitionOps := os.Getenv("GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS_PARTITIONED_OPS"); isMultiplexForPartitionOps != "" && !config.enableMultiplexedSessionForPartitionedOps {
570-
config.enableMultiplexedSessionForPartitionedOps, err = strconv.ParseBool(isMultiplexForPartitionOps)
573+
574+
if isMultiplexForPartitionOps, found := os.LookupEnv("GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS_PARTITIONED_OPS"); found {
575+
config.enableMultiplexedSessionForPartitionedOps, err = strconv.ParseBool(strings.ToLower(isMultiplexForPartitionOps))
571576
if err != nil {
572577
return nil, spannerErrorf(codes.InvalidArgument, "GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS_PARTITIONED_OPS must be either true or false")
573578
}
574-
config.enableMultiplexedSessionForPartitionedOps = config.enableMultiplexedSessionForPartitionedOps && config.SessionPoolConfig.enableMultiplexSession
579+
} else {
580+
config.enableMultiplexedSessionForPartitionedOps = true
575581
}
576582

583+
config.enableMultiplexedSessionForRW = config.SessionPoolConfig.enableMultiplexSession && config.enableMultiplexedSessionForRW
584+
config.enableMultiplexedSessionForPartitionedOps = config.SessionPoolConfig.enableMultiplexSession && config.enableMultiplexedSessionForPartitionedOps
585+
577586
if config.IsExperimentalHost {
578587
config.SessionPoolConfig.enableMultiplexSession = true
579588
config.enableMultiplexedSessionForRW = true

0 commit comments

Comments
 (0)