这是indexloc提供的服务,不要输入任何密码
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions spanner/batch_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,9 @@ func TestPartitionQuery_Parallel(t *testing.T) {
}

func TestPartitionQuery_Multiplexed(t *testing.T) {
if !isMultiplexEnabled {
t.Skip("Skipping multiplex session tests when regular sessions enabled")
}
t.Parallel()
ctx := context.Background()
server, client, teardown := setupMockedTestServerWithConfig(t, ClientConfig{
Expand Down Expand Up @@ -309,6 +312,9 @@ func TestPartitionQuery_Multiplexed(t *testing.T) {
}

func TestPartitionRead_Multiplexed(t *testing.T) {
if !isMultiplexEnabled {
t.Skip("Skipping multiplex session tests when regular sessions enabled")
}
t.Parallel()
ctx := context.Background()
server, client, teardown := setupMockedTestServerWithConfig(t, ClientConfig{
Expand Down
8 changes: 4 additions & 4 deletions spanner/benchmarks/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ Please look at the [Configurations](#configurations) section for allowed options

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

| Description | Environment variable |
|----------------------------|------------------------------------------------|
| Enabling multiplex session | GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS=true |
| Enabling directpath | GOOGLE_SPANNER_ENABLE_DIRECT_ACCESS=true |
| Description | Environment variable |
|-----------------------------|-------------------------------------------------|
| Disabling multiplex session | GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS=false |
| Enabling directpath | GOOGLE_SPANNER_ENABLE_DIRECT_ACCESS=true |

25 changes: 17 additions & 8 deletions spanner/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -553,27 +553,36 @@ func newClientWithConfig(ctx context.Context, database string, config ClientConf
md.Append(afeMetricHeader, "true")
}

if isMultiplexed := strings.ToLower(os.Getenv("GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS")); isMultiplexed != "" && !config.enableMultiplexSession {
config.enableMultiplexSession, err = strconv.ParseBool(isMultiplexed)
if isMultiplexed, found := os.LookupEnv("GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS"); found {
config.enableMultiplexSession, err = strconv.ParseBool(strings.ToLower(isMultiplexed))
if err != nil {
return nil, spannerErrorf(codes.InvalidArgument, "GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS must be either true or false")
}
} else {
config.enableMultiplexSession = true
}
if isMultiplexForRW := os.Getenv("GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS_FOR_RW"); isMultiplexForRW != "" && !config.enableMultiplexedSessionForRW {
config.enableMultiplexedSessionForRW, err = strconv.ParseBool(isMultiplexForRW)

if isMultiplexForRW, found := os.LookupEnv("GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS_FOR_RW"); found {
config.enableMultiplexedSessionForRW, err = strconv.ParseBool(strings.ToLower(isMultiplexForRW))
if err != nil {
return nil, spannerErrorf(codes.InvalidArgument, "GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS_FOR_RW must be either true or false")
}
config.enableMultiplexedSessionForRW = config.enableMultiplexedSessionForRW && config.SessionPoolConfig.enableMultiplexSession
} else {
config.enableMultiplexedSessionForRW = true
}
if isMultiplexForPartitionOps := os.Getenv("GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS_PARTITIONED_OPS"); isMultiplexForPartitionOps != "" && !config.enableMultiplexedSessionForPartitionedOps {
config.enableMultiplexedSessionForPartitionedOps, err = strconv.ParseBool(isMultiplexForPartitionOps)

if isMultiplexForPartitionOps, found := os.LookupEnv("GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS_PARTITIONED_OPS"); found {
config.enableMultiplexedSessionForPartitionedOps, err = strconv.ParseBool(strings.ToLower(isMultiplexForPartitionOps))
if err != nil {
return nil, spannerErrorf(codes.InvalidArgument, "GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS_PARTITIONED_OPS must be either true or false")
}
config.enableMultiplexedSessionForPartitionedOps = config.enableMultiplexedSessionForPartitionedOps && config.SessionPoolConfig.enableMultiplexSession
} else {
config.enableMultiplexedSessionForPartitionedOps = true
}

config.enableMultiplexedSessionForRW = config.SessionPoolConfig.enableMultiplexSession && config.enableMultiplexedSessionForRW
config.enableMultiplexedSessionForPartitionedOps = config.SessionPoolConfig.enableMultiplexSession && config.enableMultiplexedSessionForPartitionedOps

if config.IsExperimentalHost {
config.SessionPoolConfig.enableMultiplexSession = true
config.enableMultiplexedSessionForRW = true
Expand Down
Loading
Loading