public abstract class SpannerClient
Reference documentation and code samples for the Google Cloud Spanner v1 API class SpannerClient.
Spanner client wrapper, for convenient use.
Derived Types
Namespace
GoogleGoogle.CloudGoogle.Cloud.SpannerV1Assembly
Google.Cloud.Spanner.V1.dll
Remarks
Cloud Spanner API
The Cloud Spanner API can be used to manage sessions and execute transactions on data stored in Cloud Spanner databases.
Properties
DefaultEndpoint
public static string DefaultEndpoint { get; }
The default endpoint for the Spanner service, which is a host of "spanner.googleapis.com" and a port of 443.
Type | Description |
string |
DefaultScopes
public static IReadOnlyList<string> DefaultScopes { get; }
The default Spanner scopes.
Type | Description |
IReadOnlyListstring |
The default Spanner scopes are:
GrpcClient
public virtual Spanner.SpannerClient GrpcClient { get; }
The underlying gRPC Spanner client
Type | Description |
SpannerSpannerClient |
ServiceMetadata
public static ServiceMetadata ServiceMetadata { get; }
The service metadata associated with this client type.
Type | Description |
ServiceMetadata |
Settings
public virtual SpannerSettings Settings { get; protected set; }
Returns the effective CallSettings used for each API call. This can be used to create a modified instance of CallSettings to pass for a single API request.
Type | Description |
SpannerSettings |
Methods
BatchCreateSessions(DatabaseName, int, CallSettings)
public virtual BatchCreateSessionsResponse BatchCreateSessions(DatabaseName database, int sessionCount, CallSettings callSettings = null)
Creates multiple new sessions.
This API can be used to initialize a session cache on the clients. See https://goo.gl/TgSFN2 for best practices on session cache management.
Name | Description |
database | DatabaseName Required. The database in which the new sessions are created. |
sessionCount | int Required. The number of sessions to be created in this batch call. The API may return fewer than the requested number of sessions. If a specific number of sessions are desired, the client can make additional calls to BatchCreateSessions (adjusting [session_count][google.spanner.v1.BatchCreateSessionsRequest.session_count] as necessary). |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
BatchCreateSessionsResponse | The RPC response. |
// Create client
SpannerClient spannerClient = SpannerClient.Create();
// Initialize request argument(s)
DatabaseName database = DatabaseName.FromProjectInstanceDatabase("[PROJECT]", "[INSTANCE]", "[DATABASE]");
int sessionCount = 0;
// Make the request
BatchCreateSessionsResponse response = spannerClient.BatchCreateSessions(database, sessionCount);
BatchCreateSessions(BatchCreateSessionsRequest, CallSettings)
public virtual BatchCreateSessionsResponse BatchCreateSessions(BatchCreateSessionsRequest request, CallSettings callSettings = null)
Creates multiple new sessions.
This API can be used to initialize a session cache on the clients. See https://goo.gl/TgSFN2 for best practices on session cache management.
Name | Description |
request | BatchCreateSessionsRequest The request object containing all of the parameters for the API call. |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
BatchCreateSessionsResponse | The RPC response. |
// Create client
SpannerClient spannerClient = SpannerClient.Create();
// Initialize request argument(s)
BatchCreateSessionsRequest request = new BatchCreateSessionsRequest
{
DatabaseAsDatabaseName = DatabaseName.FromProjectInstanceDatabase("[PROJECT]", "[INSTANCE]", "[DATABASE]"),
SessionTemplate = new Session(),
SessionCount = 0,
};
// Make the request
BatchCreateSessionsResponse response = spannerClient.BatchCreateSessions(request);
BatchCreateSessions(string, int, CallSettings)
public virtual BatchCreateSessionsResponse BatchCreateSessions(string database, int sessionCount, CallSettings callSettings = null)
Creates multiple new sessions.
This API can be used to initialize a session cache on the clients. See https://goo.gl/TgSFN2 for best practices on session cache management.
Name | Description |
database | string Required. The database in which the new sessions are created. |
sessionCount | int Required. The number of sessions to be created in this batch call. The API may return fewer than the requested number of sessions. If a specific number of sessions are desired, the client can make additional calls to BatchCreateSessions (adjusting [session_count][google.spanner.v1.BatchCreateSessionsRequest.session_count] as necessary). |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
BatchCreateSessionsResponse | The RPC response. |
// Create client
SpannerClient spannerClient = SpannerClient.Create();
// Initialize request argument(s)
string database = "projects/[PROJECT]/instances/[INSTANCE]/databases/[DATABASE]";
int sessionCount = 0;
// Make the request
BatchCreateSessionsResponse response = spannerClient.BatchCreateSessions(database, sessionCount);
BatchCreateSessionsAsync(DatabaseName, int, CallSettings)
public virtual Task<BatchCreateSessionsResponse> BatchCreateSessionsAsync(DatabaseName database, int sessionCount, CallSettings callSettings = null)
Creates multiple new sessions.
This API can be used to initialize a session cache on the clients. See https://goo.gl/TgSFN2 for best practices on session cache management.
Name | Description |
database | DatabaseName Required. The database in which the new sessions are created. |
sessionCount | int Required. The number of sessions to be created in this batch call. The API may return fewer than the requested number of sessions. If a specific number of sessions are desired, the client can make additional calls to BatchCreateSessions (adjusting [session_count][google.spanner.v1.BatchCreateSessionsRequest.session_count] as necessary). |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
TaskBatchCreateSessionsResponse | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
DatabaseName database = DatabaseName.FromProjectInstanceDatabase("[PROJECT]", "[INSTANCE]", "[DATABASE]");
int sessionCount = 0;
// Make the request
BatchCreateSessionsResponse response = await spannerClient.BatchCreateSessionsAsync(database, sessionCount);
BatchCreateSessionsAsync(DatabaseName, int, CancellationToken)
public virtual Task<BatchCreateSessionsResponse> BatchCreateSessionsAsync(DatabaseName database, int sessionCount, CancellationToken cancellationToken)
Creates multiple new sessions.
This API can be used to initialize a session cache on the clients. See https://goo.gl/TgSFN2 for best practices on session cache management.
Name | Description |
database | DatabaseName Required. The database in which the new sessions are created. |
sessionCount | int Required. The number of sessions to be created in this batch call. The API may return fewer than the requested number of sessions. If a specific number of sessions are desired, the client can make additional calls to BatchCreateSessions (adjusting [session_count][google.spanner.v1.BatchCreateSessionsRequest.session_count] as necessary). |
cancellationToken | CancellationToken A CancellationToken to use for this RPC. |
Type | Description |
TaskBatchCreateSessionsResponse | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
DatabaseName database = DatabaseName.FromProjectInstanceDatabase("[PROJECT]", "[INSTANCE]", "[DATABASE]");
int sessionCount = 0;
// Make the request
BatchCreateSessionsResponse response = await spannerClient.BatchCreateSessionsAsync(database, sessionCount);
BatchCreateSessionsAsync(BatchCreateSessionsRequest, CallSettings)
public virtual Task<BatchCreateSessionsResponse> BatchCreateSessionsAsync(BatchCreateSessionsRequest request, CallSettings callSettings = null)
Creates multiple new sessions.
This API can be used to initialize a session cache on the clients. See https://goo.gl/TgSFN2 for best practices on session cache management.
Name | Description |
request | BatchCreateSessionsRequest The request object containing all of the parameters for the API call. |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
TaskBatchCreateSessionsResponse | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
BatchCreateSessionsRequest request = new BatchCreateSessionsRequest
{
DatabaseAsDatabaseName = DatabaseName.FromProjectInstanceDatabase("[PROJECT]", "[INSTANCE]", "[DATABASE]"),
SessionTemplate = new Session(),
SessionCount = 0,
};
// Make the request
BatchCreateSessionsResponse response = await spannerClient.BatchCreateSessionsAsync(request);
BatchCreateSessionsAsync(BatchCreateSessionsRequest, CancellationToken)
public virtual Task<BatchCreateSessionsResponse> BatchCreateSessionsAsync(BatchCreateSessionsRequest request, CancellationToken cancellationToken)
Creates multiple new sessions.
This API can be used to initialize a session cache on the clients. See https://goo.gl/TgSFN2 for best practices on session cache management.
Name | Description |
request | BatchCreateSessionsRequest The request object containing all of the parameters for the API call. |
cancellationToken | CancellationToken A CancellationToken to use for this RPC. |
Type | Description |
TaskBatchCreateSessionsResponse | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
BatchCreateSessionsRequest request = new BatchCreateSessionsRequest
{
DatabaseAsDatabaseName = DatabaseName.FromProjectInstanceDatabase("[PROJECT]", "[INSTANCE]", "[DATABASE]"),
SessionTemplate = new Session(),
SessionCount = 0,
};
// Make the request
BatchCreateSessionsResponse response = await spannerClient.BatchCreateSessionsAsync(request);
BatchCreateSessionsAsync(string, int, CallSettings)
public virtual Task<BatchCreateSessionsResponse> BatchCreateSessionsAsync(string database, int sessionCount, CallSettings callSettings = null)
Creates multiple new sessions.
This API can be used to initialize a session cache on the clients. See https://goo.gl/TgSFN2 for best practices on session cache management.
Name | Description |
database | string Required. The database in which the new sessions are created. |
sessionCount | int Required. The number of sessions to be created in this batch call. The API may return fewer than the requested number of sessions. If a specific number of sessions are desired, the client can make additional calls to BatchCreateSessions (adjusting [session_count][google.spanner.v1.BatchCreateSessionsRequest.session_count] as necessary). |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
TaskBatchCreateSessionsResponse | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
string database = "projects/[PROJECT]/instances/[INSTANCE]/databases/[DATABASE]";
int sessionCount = 0;
// Make the request
BatchCreateSessionsResponse response = await spannerClient.BatchCreateSessionsAsync(database, sessionCount);
BatchCreateSessionsAsync(string, int, CancellationToken)
public virtual Task<BatchCreateSessionsResponse> BatchCreateSessionsAsync(string database, int sessionCount, CancellationToken cancellationToken)
Creates multiple new sessions.
This API can be used to initialize a session cache on the clients. See https://goo.gl/TgSFN2 for best practices on session cache management.
Name | Description |
database | string Required. The database in which the new sessions are created. |
sessionCount | int Required. The number of sessions to be created in this batch call. The API may return fewer than the requested number of sessions. If a specific number of sessions are desired, the client can make additional calls to BatchCreateSessions (adjusting [session_count][google.spanner.v1.BatchCreateSessionsRequest.session_count] as necessary). |
cancellationToken | CancellationToken A CancellationToken to use for this RPC. |
Type | Description |
TaskBatchCreateSessionsResponse | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
string database = "projects/[PROJECT]/instances/[INSTANCE]/databases/[DATABASE]";
int sessionCount = 0;
// Make the request
BatchCreateSessionsResponse response = await spannerClient.BatchCreateSessionsAsync(database, sessionCount);
BeginTransaction(BeginTransactionRequest, CallSettings)
public virtual Transaction BeginTransaction(BeginTransactionRequest request, CallSettings callSettings = null)
Begins a new transaction. This step can often be skipped: [Read][google.spanner.v1.Spanner.Read], [ExecuteSql][google.spanner.v1.Spanner.ExecuteSql] and [Commit][google.spanner.v1.Spanner.Commit] can begin a new transaction as a side-effect.
Name | Description |
request | BeginTransactionRequest The request object containing all of the parameters for the API call. |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
Transaction | The RPC response. |
// Create client
SpannerClient spannerClient = SpannerClient.Create();
// Initialize request argument(s)
BeginTransactionRequest request = new BeginTransactionRequest
{
SessionAsSessionName = SessionName.FromProjectInstanceDatabaseSession("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]"),
Options = new TransactionOptions(),
RequestOptions = new RequestOptions(),
};
// Make the request
Transaction response = spannerClient.BeginTransaction(request);
BeginTransaction(SessionName, TransactionOptions, CallSettings)
public virtual Transaction BeginTransaction(SessionName session, TransactionOptions options, CallSettings callSettings = null)
Begins a new transaction. This step can often be skipped: [Read][google.spanner.v1.Spanner.Read], [ExecuteSql][google.spanner.v1.Spanner.ExecuteSql] and [Commit][google.spanner.v1.Spanner.Commit] can begin a new transaction as a side-effect.
Name | Description |
session | SessionName Required. The session in which the transaction runs. |
options | TransactionOptions Required. Options for the new transaction. |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
Transaction | The RPC response. |
// Create client
SpannerClient spannerClient = SpannerClient.Create();
// Initialize request argument(s)
SessionName session = SessionName.FromProjectInstanceDatabaseSession("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]");
TransactionOptions options = new TransactionOptions();
// Make the request
Transaction response = spannerClient.BeginTransaction(session, options);
BeginTransaction(string, TransactionOptions, CallSettings)
public virtual Transaction BeginTransaction(string session, TransactionOptions options, CallSettings callSettings = null)
Begins a new transaction. This step can often be skipped: [Read][google.spanner.v1.Spanner.Read], [ExecuteSql][google.spanner.v1.Spanner.ExecuteSql] and [Commit][google.spanner.v1.Spanner.Commit] can begin a new transaction as a side-effect.
Name | Description |
session | string Required. The session in which the transaction runs. |
options | TransactionOptions Required. Options for the new transaction. |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
Transaction | The RPC response. |
// Create client
SpannerClient spannerClient = SpannerClient.Create();
// Initialize request argument(s)
string session = "projects/[PROJECT]/instances/[INSTANCE]/databases/[DATABASE]/sessions/[SESSION]";
TransactionOptions options = new TransactionOptions();
// Make the request
Transaction response = spannerClient.BeginTransaction(session, options);
BeginTransactionAsync(BeginTransactionRequest, CallSettings)
public virtual Task<Transaction> BeginTransactionAsync(BeginTransactionRequest request, CallSettings callSettings = null)
Begins a new transaction. This step can often be skipped: [Read][google.spanner.v1.Spanner.Read], [ExecuteSql][google.spanner.v1.Spanner.ExecuteSql] and [Commit][google.spanner.v1.Spanner.Commit] can begin a new transaction as a side-effect.
Name | Description |
request | BeginTransactionRequest The request object containing all of the parameters for the API call. |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
TaskTransaction | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
BeginTransactionRequest request = new BeginTransactionRequest
{
SessionAsSessionName = SessionName.FromProjectInstanceDatabaseSession("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]"),
Options = new TransactionOptions(),
RequestOptions = new RequestOptions(),
};
// Make the request
Transaction response = await spannerClient.BeginTransactionAsync(request);
BeginTransactionAsync(BeginTransactionRequest, CancellationToken)
public virtual Task<Transaction> BeginTransactionAsync(BeginTransactionRequest request, CancellationToken cancellationToken)
Begins a new transaction. This step can often be skipped: [Read][google.spanner.v1.Spanner.Read], [ExecuteSql][google.spanner.v1.Spanner.ExecuteSql] and [Commit][google.spanner.v1.Spanner.Commit] can begin a new transaction as a side-effect.
Name | Description |
request | BeginTransactionRequest The request object containing all of the parameters for the API call. |
cancellationToken | CancellationToken A CancellationToken to use for this RPC. |
Type | Description |
TaskTransaction | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
BeginTransactionRequest request = new BeginTransactionRequest
{
SessionAsSessionName = SessionName.FromProjectInstanceDatabaseSession("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]"),
Options = new TransactionOptions(),
RequestOptions = new RequestOptions(),
};
// Make the request
Transaction response = await spannerClient.BeginTransactionAsync(request);
BeginTransactionAsync(SessionName, TransactionOptions, CallSettings)
public virtual Task<Transaction> BeginTransactionAsync(SessionName session, TransactionOptions options, CallSettings callSettings = null)
Begins a new transaction. This step can often be skipped: [Read][google.spanner.v1.Spanner.Read], [ExecuteSql][google.spanner.v1.Spanner.ExecuteSql] and [Commit][google.spanner.v1.Spanner.Commit] can begin a new transaction as a side-effect.
Name | Description |
session | SessionName Required. The session in which the transaction runs. |
options | TransactionOptions Required. Options for the new transaction. |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
TaskTransaction | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
SessionName session = SessionName.FromProjectInstanceDatabaseSession("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]");
TransactionOptions options = new TransactionOptions();
// Make the request
Transaction response = await spannerClient.BeginTransactionAsync(session, options);
BeginTransactionAsync(SessionName, TransactionOptions, CancellationToken)
public virtual Task<Transaction> BeginTransactionAsync(SessionName session, TransactionOptions options, CancellationToken cancellationToken)
Begins a new transaction. This step can often be skipped: [Read][google.spanner.v1.Spanner.Read], [ExecuteSql][google.spanner.v1.Spanner.ExecuteSql] and [Commit][google.spanner.v1.Spanner.Commit] can begin a new transaction as a side-effect.
Name | Description |
session | SessionName Required. The session in which the transaction runs. |
options | TransactionOptions Required. Options for the new transaction. |
cancellationToken | CancellationToken A CancellationToken to use for this RPC. |
Type | Description |
TaskTransaction | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
SessionName session = SessionName.FromProjectInstanceDatabaseSession("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]");
TransactionOptions options = new TransactionOptions();
// Make the request
Transaction response = await spannerClient.BeginTransactionAsync(session, options);
BeginTransactionAsync(string, TransactionOptions, CallSettings)
public virtual Task<Transaction> BeginTransactionAsync(string session, TransactionOptions options, CallSettings callSettings = null)
Begins a new transaction. This step can often be skipped: [Read][google.spanner.v1.Spanner.Read], [ExecuteSql][google.spanner.v1.Spanner.ExecuteSql] and [Commit][google.spanner.v1.Spanner.Commit] can begin a new transaction as a side-effect.
Name | Description |
session | string Required. The session in which the transaction runs. |
options | TransactionOptions Required. Options for the new transaction. |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
TaskTransaction | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
string session = "projects/[PROJECT]/instances/[INSTANCE]/databases/[DATABASE]/sessions/[SESSION]";
TransactionOptions options = new TransactionOptions();
// Make the request
Transaction response = await spannerClient.BeginTransactionAsync(session, options);
BeginTransactionAsync(string, TransactionOptions, CancellationToken)
public virtual Task<Transaction> BeginTransactionAsync(string session, TransactionOptions options, CancellationToken cancellationToken)
Begins a new transaction. This step can often be skipped: [Read][google.spanner.v1.Spanner.Read], [ExecuteSql][google.spanner.v1.Spanner.ExecuteSql] and [Commit][google.spanner.v1.Spanner.Commit] can begin a new transaction as a side-effect.
Name | Description |
session | string Required. The session in which the transaction runs. |
options | TransactionOptions Required. Options for the new transaction. |
cancellationToken | CancellationToken A CancellationToken to use for this RPC. |
Type | Description |
TaskTransaction | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
string session = "projects/[PROJECT]/instances/[INSTANCE]/databases/[DATABASE]/sessions/[SESSION]";
TransactionOptions options = new TransactionOptions();
// Make the request
Transaction response = await spannerClient.BeginTransactionAsync(session, options);
Commit(CommitRequest, CallSettings)
public virtual CommitResponse Commit(CommitRequest request, CallSettings callSettings = null)
Commits a transaction. The request includes the mutations to be applied to rows in the database.
Commit
might return an ABORTED
error. This can occur at any time;
commonly, the cause is conflicts with concurrent
transactions. However, it can also happen for a variety of other
reasons. If Commit
returns ABORTED
, the caller should re-attempt
the transaction from the beginning, re-using the same session.
On very rare occasions, Commit
might return UNKNOWN
. This can happen,
for example, if the client job experiences a 1+ hour networking failure.
At that point, Cloud Spanner has lost track of the transaction outcome and
we recommend that you perform another read from the database to see the
state of things as they are now.
Name | Description |
request | CommitRequest The request object containing all of the parameters for the API call. |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
CommitResponse | The RPC response. |
// Create client
SpannerClient spannerClient = SpannerClient.Create();
// Initialize request argument(s)
CommitRequest request = new CommitRequest
{
SessionAsSessionName = SessionName.FromProjectInstanceDatabaseSession("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]"),
TransactionId = ByteString.Empty,
Mutations = { new Mutation(), },
ReturnCommitStats = false,
RequestOptions = new RequestOptions(),
};
// Make the request
CommitResponse response = spannerClient.Commit(request);
Commit(SessionName, TransactionOptions, IEnumerable<Mutation>, CallSettings)
public virtual CommitResponse Commit(SessionName session, TransactionOptions singleUseTransaction, IEnumerable<Mutation> mutations, CallSettings callSettings = null)
Commits a transaction. The request includes the mutations to be applied to rows in the database.
Commit
might return an ABORTED
error. This can occur at any time;
commonly, the cause is conflicts with concurrent
transactions. However, it can also happen for a variety of other
reasons. If Commit
returns ABORTED
, the caller should re-attempt
the transaction from the beginning, re-using the same session.
On very rare occasions, Commit
might return UNKNOWN
. This can happen,
for example, if the client job experiences a 1+ hour networking failure.
At that point, Cloud Spanner has lost track of the transaction outcome and
we recommend that you perform another read from the database to see the
state of things as they are now.
Name | Description |
session | SessionName Required. The session in which the transaction to be committed is running. |
singleUseTransaction | TransactionOptions Execute mutations in a temporary transaction. Note that unlike
commit of a previously-started transaction, commit with a
temporary transaction is non-idempotent. That is, if the
|
mutations | IEnumerableMutation The mutations to be executed when this transaction commits. All mutations are applied atomically, in the order they appear in this list. |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
CommitResponse | The RPC response. |
// Create client
SpannerClient spannerClient = SpannerClient.Create();
// Initialize request argument(s)
SessionName session = SessionName.FromProjectInstanceDatabaseSession("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]");
TransactionOptions singleUseTransaction = new TransactionOptions();
IEnumerable<Mutation> mutations = new Mutation[] { new Mutation(), };
// Make the request
CommitResponse response = spannerClient.Commit(session, singleUseTransaction, mutations);
Commit(SessionName, ByteString, IEnumerable<Mutation>, CallSettings)
public virtual CommitResponse Commit(SessionName session, ByteString transactionId, IEnumerable<Mutation> mutations, CallSettings callSettings = null)
Commits a transaction. The request includes the mutations to be applied to rows in the database.
Commit
might return an ABORTED
error. This can occur at any time;
commonly, the cause is conflicts with concurrent
transactions. However, it can also happen for a variety of other
reasons. If Commit
returns ABORTED
, the caller should re-attempt
the transaction from the beginning, re-using the same session.
On very rare occasions, Commit
might return UNKNOWN
. This can happen,
for example, if the client job experiences a 1+ hour networking failure.
At that point, Cloud Spanner has lost track of the transaction outcome and
we recommend that you perform another read from the database to see the
state of things as they are now.
Name | Description |
session | SessionName Required. The session in which the transaction to be committed is running. |
transactionId | ByteString Commit a previously-started transaction. |
mutations | IEnumerableMutation The mutations to be executed when this transaction commits. All mutations are applied atomically, in the order they appear in this list. |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
CommitResponse | The RPC response. |
// Create client
SpannerClient spannerClient = SpannerClient.Create();
// Initialize request argument(s)
SessionName session = SessionName.FromProjectInstanceDatabaseSession("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]");
ByteString transactionId = ByteString.Empty;
IEnumerable<Mutation> mutations = new Mutation[] { new Mutation(), };
// Make the request
CommitResponse response = spannerClient.Commit(session, transactionId, mutations);
Commit(string, TransactionOptions, IEnumerable<Mutation>, CallSettings)
public virtual CommitResponse Commit(string session, TransactionOptions singleUseTransaction, IEnumerable<Mutation> mutations, CallSettings callSettings = null)
Commits a transaction. The request includes the mutations to be applied to rows in the database.
Commit
might return an ABORTED
error. This can occur at any time;
commonly, the cause is conflicts with concurrent
transactions. However, it can also happen for a variety of other
reasons. If Commit
returns ABORTED
, the caller should re-attempt
the transaction from the beginning, re-using the same session.
On very rare occasions, Commit
might return UNKNOWN
. This can happen,
for example, if the client job experiences a 1+ hour networking failure.
At that point, Cloud Spanner has lost track of the transaction outcome and
we recommend that you perform another read from the database to see the
state of things as they are now.
Name | Description |
session | string Required. The session in which the transaction to be committed is running. |
singleUseTransaction | TransactionOptions Execute mutations in a temporary transaction. Note that unlike
commit of a previously-started transaction, commit with a
temporary transaction is non-idempotent. That is, if the
|
mutations | IEnumerableMutation The mutations to be executed when this transaction commits. All mutations are applied atomically, in the order they appear in this list. |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
CommitResponse | The RPC response. |
// Create client
SpannerClient spannerClient = SpannerClient.Create();
// Initialize request argument(s)
string session = "projects/[PROJECT]/instances/[INSTANCE]/databases/[DATABASE]/sessions/[SESSION]";
TransactionOptions singleUseTransaction = new TransactionOptions();
IEnumerable<Mutation> mutations = new Mutation[] { new Mutation(), };
// Make the request
CommitResponse response = spannerClient.Commit(session, singleUseTransaction, mutations);
Commit(string, ByteString, IEnumerable<Mutation>, CallSettings)
public virtual CommitResponse Commit(string session, ByteString transactionId, IEnumerable<Mutation> mutations, CallSettings callSettings = null)
Commits a transaction. The request includes the mutations to be applied to rows in the database.
Commit
might return an ABORTED
error. This can occur at any time;
commonly, the cause is conflicts with concurrent
transactions. However, it can also happen for a variety of other
reasons. If Commit
returns ABORTED
, the caller should re-attempt
the transaction from the beginning, re-using the same session.
On very rare occasions, Commit
might return UNKNOWN
. This can happen,
for example, if the client job experiences a 1+ hour networking failure.
At that point, Cloud Spanner has lost track of the transaction outcome and
we recommend that you perform another read from the database to see the
state of things as they are now.
Name | Description |
session | string Required. The session in which the transaction to be committed is running. |
transactionId | ByteString Commit a previously-started transaction. |
mutations | IEnumerableMutation The mutations to be executed when this transaction commits. All mutations are applied atomically, in the order they appear in this list. |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
CommitResponse | The RPC response. |
// Create client
SpannerClient spannerClient = SpannerClient.Create();
// Initialize request argument(s)
string session = "projects/[PROJECT]/instances/[INSTANCE]/databases/[DATABASE]/sessions/[SESSION]";
ByteString transactionId = ByteString.Empty;
IEnumerable<Mutation> mutations = new Mutation[] { new Mutation(), };
// Make the request
CommitResponse response = spannerClient.Commit(session, transactionId, mutations);
CommitAsync(CommitRequest, CallSettings)
public virtual Task<CommitResponse> CommitAsync(CommitRequest request, CallSettings callSettings = null)
Commits a transaction. The request includes the mutations to be applied to rows in the database.
Commit
might return an ABORTED
error. This can occur at any time;
commonly, the cause is conflicts with concurrent
transactions. However, it can also happen for a variety of other
reasons. If Commit
returns ABORTED
, the caller should re-attempt
the transaction from the beginning, re-using the same session.
On very rare occasions, Commit
might return UNKNOWN
. This can happen,
for example, if the client job experiences a 1+ hour networking failure.
At that point, Cloud Spanner has lost track of the transaction outcome and
we recommend that you perform another read from the database to see the
state of things as they are now.
Name | Description |
request | CommitRequest The request object containing all of the parameters for the API call. |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
TaskCommitResponse | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
CommitRequest request = new CommitRequest
{
SessionAsSessionName = SessionName.FromProjectInstanceDatabaseSession("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]"),
TransactionId = ByteString.Empty,
Mutations = { new Mutation(), },
ReturnCommitStats = false,
RequestOptions = new RequestOptions(),
};
// Make the request
CommitResponse response = await spannerClient.CommitAsync(request);
CommitAsync(CommitRequest, CancellationToken)
public virtual Task<CommitResponse> CommitAsync(CommitRequest request, CancellationToken cancellationToken)
Commits a transaction. The request includes the mutations to be applied to rows in the database.
Commit
might return an ABORTED
error. This can occur at any time;
commonly, the cause is conflicts with concurrent
transactions. However, it can also happen for a variety of other
reasons. If Commit
returns ABORTED
, the caller should re-attempt
the transaction from the beginning, re-using the same session.
On very rare occasions, Commit
might return UNKNOWN
. This can happen,
for example, if the client job experiences a 1+ hour networking failure.
At that point, Cloud Spanner has lost track of the transaction outcome and
we recommend that you perform another read from the database to see the
state of things as they are now.
Name | Description |
request | CommitRequest The request object containing all of the parameters for the API call. |
cancellationToken | CancellationToken A CancellationToken to use for this RPC. |
Type | Description |
TaskCommitResponse | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
CommitRequest request = new CommitRequest
{
SessionAsSessionName = SessionName.FromProjectInstanceDatabaseSession("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]"),
TransactionId = ByteString.Empty,
Mutations = { new Mutation(), },
ReturnCommitStats = false,
RequestOptions = new RequestOptions(),
};
// Make the request
CommitResponse response = await spannerClient.CommitAsync(request);
CommitAsync(SessionName, TransactionOptions, IEnumerable<Mutation>, CallSettings)
public virtual Task<CommitResponse> CommitAsync(SessionName session, TransactionOptions singleUseTransaction, IEnumerable<Mutation> mutations, CallSettings callSettings = null)
Commits a transaction. The request includes the mutations to be applied to rows in the database.
Commit
might return an ABORTED
error. This can occur at any time;
commonly, the cause is conflicts with concurrent
transactions. However, it can also happen for a variety of other
reasons. If Commit
returns ABORTED
, the caller should re-attempt
the transaction from the beginning, re-using the same session.
On very rare occasions, Commit
might return UNKNOWN
. This can happen,
for example, if the client job experiences a 1+ hour networking failure.
At that point, Cloud Spanner has lost track of the transaction outcome and
we recommend that you perform another read from the database to see the
state of things as they are now.
Name | Description |
session | SessionName Required. The session in which the transaction to be committed is running. |
singleUseTransaction | TransactionOptions Execute mutations in a temporary transaction. Note that unlike
commit of a previously-started transaction, commit with a
temporary transaction is non-idempotent. That is, if the
|
mutations | IEnumerableMutation The mutations to be executed when this transaction commits. All mutations are applied atomically, in the order they appear in this list. |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
TaskCommitResponse | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
SessionName session = SessionName.FromProjectInstanceDatabaseSession("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]");
TransactionOptions singleUseTransaction = new TransactionOptions();
IEnumerable<Mutation> mutations = new Mutation[] { new Mutation(), };
// Make the request
CommitResponse response = await spannerClient.CommitAsync(session, singleUseTransaction, mutations);
CommitAsync(SessionName, TransactionOptions, IEnumerable<Mutation>, CancellationToken)
public virtual Task<CommitResponse> CommitAsync(SessionName session, TransactionOptions singleUseTransaction, IEnumerable<Mutation> mutations, CancellationToken cancellationToken)
Commits a transaction. The request includes the mutations to be applied to rows in the database.
Commit
might return an ABORTED
error. This can occur at any time;
commonly, the cause is conflicts with concurrent
transactions. However, it can also happen for a variety of other
reasons. If Commit
returns ABORTED
, the caller should re-attempt
the transaction from the beginning, re-using the same session.
On very rare occasions, Commit
might return UNKNOWN
. This can happen,
for example, if the client job experiences a 1+ hour networking failure.
At that point, Cloud Spanner has lost track of the transaction outcome and
we recommend that you perform another read from the database to see the
state of things as they are now.
Name | Description |
session | SessionName Required. The session in which the transaction to be committed is running. |
singleUseTransaction | TransactionOptions Execute mutations in a temporary transaction. Note that unlike
commit of a previously-started transaction, commit with a
temporary transaction is non-idempotent. That is, if the
|
mutations | IEnumerableMutation The mutations to be executed when this transaction commits. All mutations are applied atomically, in the order they appear in this list. |
cancellationToken | CancellationToken A CancellationToken to use for this RPC. |
Type | Description |
TaskCommitResponse | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
SessionName session = SessionName.FromProjectInstanceDatabaseSession("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]");
TransactionOptions singleUseTransaction = new TransactionOptions();
IEnumerable<Mutation> mutations = new Mutation[] { new Mutation(), };
// Make the request
CommitResponse response = await spannerClient.CommitAsync(session, singleUseTransaction, mutations);
CommitAsync(SessionName, ByteString, IEnumerable<Mutation>, CallSettings)
public virtual Task<CommitResponse> CommitAsync(SessionName session, ByteString transactionId, IEnumerable<Mutation> mutations, CallSettings callSettings = null)
Commits a transaction. The request includes the mutations to be applied to rows in the database.
Commit
might return an ABORTED
error. This can occur at any time;
commonly, the cause is conflicts with concurrent
transactions. However, it can also happen for a variety of other
reasons. If Commit
returns ABORTED
, the caller should re-attempt
the transaction from the beginning, re-using the same session.
On very rare occasions, Commit
might return UNKNOWN
. This can happen,
for example, if the client job experiences a 1+ hour networking failure.
At that point, Cloud Spanner has lost track of the transaction outcome and
we recommend that you perform another read from the database to see the
state of things as they are now.
Name | Description |
session | SessionName Required. The session in which the transaction to be committed is running. |
transactionId | ByteString Commit a previously-started transaction. |
mutations | IEnumerableMutation The mutations to be executed when this transaction commits. All mutations are applied atomically, in the order they appear in this list. |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
TaskCommitResponse | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
SessionName session = SessionName.FromProjectInstanceDatabaseSession("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]");
ByteString transactionId = ByteString.Empty;
IEnumerable<Mutation> mutations = new Mutation[] { new Mutation(), };
// Make the request
CommitResponse response = await spannerClient.CommitAsync(session, transactionId, mutations);
CommitAsync(SessionName, ByteString, IEnumerable<Mutation>, CancellationToken)
public virtual Task<CommitResponse> CommitAsync(SessionName session, ByteString transactionId, IEnumerable<Mutation> mutations, CancellationToken cancellationToken)
Commits a transaction. The request includes the mutations to be applied to rows in the database.
Commit
might return an ABORTED
error. This can occur at any time;
commonly, the cause is conflicts with concurrent
transactions. However, it can also happen for a variety of other
reasons. If Commit
returns ABORTED
, the caller should re-attempt
the transaction from the beginning, re-using the same session.
On very rare occasions, Commit
might return UNKNOWN
. This can happen,
for example, if the client job experiences a 1+ hour networking failure.
At that point, Cloud Spanner has lost track of the transaction outcome and
we recommend that you perform another read from the database to see the
state of things as they are now.
Name | Description |
session | SessionName Required. The session in which the transaction to be committed is running. |
transactionId | ByteString Commit a previously-started transaction. |
mutations | IEnumerableMutation The mutations to be executed when this transaction commits. All mutations are applied atomically, in the order they appear in this list. |
cancellationToken | CancellationToken A CancellationToken to use for this RPC. |
Type | Description |
TaskCommitResponse | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
SessionName session = SessionName.FromProjectInstanceDatabaseSession("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]");
ByteString transactionId = ByteString.Empty;
IEnumerable<Mutation> mutations = new Mutation[] { new Mutation(), };
// Make the request
CommitResponse response = await spannerClient.CommitAsync(session, transactionId, mutations);
CommitAsync(string, TransactionOptions, IEnumerable<Mutation>, CallSettings)
public virtual Task<CommitResponse> CommitAsync(string session, TransactionOptions singleUseTransaction, IEnumerable<Mutation> mutations, CallSettings callSettings = null)
Commits a transaction. The request includes the mutations to be applied to rows in the database.
Commit
might return an ABORTED
error. This can occur at any time;
commonly, the cause is conflicts with concurrent
transactions. However, it can also happen for a variety of other
reasons. If Commit
returns ABORTED
, the caller should re-attempt
the transaction from the beginning, re-using the same session.
On very rare occasions, Commit
might return UNKNOWN
. This can happen,
for example, if the client job experiences a 1+ hour networking failure.
At that point, Cloud Spanner has lost track of the transaction outcome and
we recommend that you perform another read from the database to see the
state of things as they are now.
Name | Description |
session | string Required. The session in which the transaction to be committed is running. |
singleUseTransaction | TransactionOptions Execute mutations in a temporary transaction. Note that unlike
commit of a previously-started transaction, commit with a
temporary transaction is non-idempotent. That is, if the
|
mutations | IEnumerableMutation The mutations to be executed when this transaction commits. All mutations are applied atomically, in the order they appear in this list. |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
TaskCommitResponse | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
string session = "projects/[PROJECT]/instances/[INSTANCE]/databases/[DATABASE]/sessions/[SESSION]";
TransactionOptions singleUseTransaction = new TransactionOptions();
IEnumerable<Mutation> mutations = new Mutation[] { new Mutation(), };
// Make the request
CommitResponse response = await spannerClient.CommitAsync(session, singleUseTransaction, mutations);
CommitAsync(string, TransactionOptions, IEnumerable<Mutation>, CancellationToken)
public virtual Task<CommitResponse> CommitAsync(string session, TransactionOptions singleUseTransaction, IEnumerable<Mutation> mutations, CancellationToken cancellationToken)
Commits a transaction. The request includes the mutations to be applied to rows in the database.
Commit
might return an ABORTED
error. This can occur at any time;
commonly, the cause is conflicts with concurrent
transactions. However, it can also happen for a variety of other
reasons. If Commit
returns ABORTED
, the caller should re-attempt
the transaction from the beginning, re-using the same session.
On very rare occasions, Commit
might return UNKNOWN
. This can happen,
for example, if the client job experiences a 1+ hour networking failure.
At that point, Cloud Spanner has lost track of the transaction outcome and
we recommend that you perform another read from the database to see the
state of things as they are now.
Name | Description |
session | string Required. The session in which the transaction to be committed is running. |
singleUseTransaction | TransactionOptions Execute mutations in a temporary transaction. Note that unlike
commit of a previously-started transaction, commit with a
temporary transaction is non-idempotent. That is, if the
|
mutations | IEnumerableMutation The mutations to be executed when this transaction commits. All mutations are applied atomically, in the order they appear in this list. |
cancellationToken | CancellationToken A CancellationToken to use for this RPC. |
Type | Description |
TaskCommitResponse | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
string session = "projects/[PROJECT]/instances/[INSTANCE]/databases/[DATABASE]/sessions/[SESSION]";
TransactionOptions singleUseTransaction = new TransactionOptions();
IEnumerable<Mutation> mutations = new Mutation[] { new Mutation(), };
// Make the request
CommitResponse response = await spannerClient.CommitAsync(session, singleUseTransaction, mutations);
CommitAsync(string, ByteString, IEnumerable<Mutation>, CallSettings)
public virtual Task<CommitResponse> CommitAsync(string session, ByteString transactionId, IEnumerable<Mutation> mutations, CallSettings callSettings = null)
Commits a transaction. The request includes the mutations to be applied to rows in the database.
Commit
might return an ABORTED
error. This can occur at any time;
commonly, the cause is conflicts with concurrent
transactions. However, it can also happen for a variety of other
reasons. If Commit
returns ABORTED
, the caller should re-attempt
the transaction from the beginning, re-using the same session.
On very rare occasions, Commit
might return UNKNOWN
. This can happen,
for example, if the client job experiences a 1+ hour networking failure.
At that point, Cloud Spanner has lost track of the transaction outcome and
we recommend that you perform another read from the database to see the
state of things as they are now.
Name | Description |
session | string Required. The session in which the transaction to be committed is running. |
transactionId | ByteString Commit a previously-started transaction. |
mutations | IEnumerableMutation The mutations to be executed when this transaction commits. All mutations are applied atomically, in the order they appear in this list. |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
TaskCommitResponse | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
string session = "projects/[PROJECT]/instances/[INSTANCE]/databases/[DATABASE]/sessions/[SESSION]";
ByteString transactionId = ByteString.Empty;
IEnumerable<Mutation> mutations = new Mutation[] { new Mutation(), };
// Make the request
CommitResponse response = await spannerClient.CommitAsync(session, transactionId, mutations);
CommitAsync(string, ByteString, IEnumerable<Mutation>, CancellationToken)
public virtual Task<CommitResponse> CommitAsync(string session, ByteString transactionId, IEnumerable<Mutation> mutations, CancellationToken cancellationToken)
Commits a transaction. The request includes the mutations to be applied to rows in the database.
Commit
might return an ABORTED
error. This can occur at any time;
commonly, the cause is conflicts with concurrent
transactions. However, it can also happen for a variety of other
reasons. If Commit
returns ABORTED
, the caller should re-attempt
the transaction from the beginning, re-using the same session.
On very rare occasions, Commit
might return UNKNOWN
. This can happen,
for example, if the client job experiences a 1+ hour networking failure.
At that point, Cloud Spanner has lost track of the transaction outcome and
we recommend that you perform another read from the database to see the
state of things as they are now.
Name | Description |
session | string Required. The session in which the transaction to be committed is running. |
transactionId | ByteString Commit a previously-started transaction. |
mutations | IEnumerableMutation The mutations to be executed when this transaction commits. All mutations are applied atomically, in the order they appear in this list. |
cancellationToken | CancellationToken A CancellationToken to use for this RPC. |
Type | Description |
TaskCommitResponse | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
string session = "projects/[PROJECT]/instances/[INSTANCE]/databases/[DATABASE]/sessions/[SESSION]";
ByteString transactionId = ByteString.Empty;
IEnumerable<Mutation> mutations = new Mutation[] { new Mutation(), };
// Make the request
CommitResponse response = await spannerClient.CommitAsync(session, transactionId, mutations);
Create()
public static SpannerClient Create()
Synchronously creates a SpannerClient using the default credentials, endpoint and settings. To specify custom credentials or other settings, use SpannerClientBuilder.
Type | Description |
SpannerClient | The created SpannerClient. |
CreateAsync(CancellationToken)
public static Task<SpannerClient> CreateAsync(CancellationToken cancellationToken = default)
Asynchronously creates a SpannerClient using the default credentials, endpoint and settings. To specify custom credentials or other settings, use SpannerClientBuilder.
Name | Description |
cancellationToken | CancellationToken The CancellationToken to use while creating the client. |
Type | Description |
TaskSpannerClient | The task representing the created SpannerClient. |
CreateSession(DatabaseName, CallSettings)
public virtual Session CreateSession(DatabaseName database, CallSettings callSettings = null)
Creates a new session. A session can be used to perform transactions that read and/or modify data in a Cloud Spanner database. Sessions are meant to be reused for many consecutive transactions.
Sessions can only execute one transaction at a time. To execute multiple concurrent read-write/write-only transactions, create multiple sessions. Note that standalone reads and queries use a transaction internally, and count toward the one transaction limit.
Active sessions use additional server resources, so it is a good idea to
delete idle and unneeded sessions.
Aside from explicit deletes, Cloud Spanner may delete sessions for which no
operations are sent for more than an hour. If a session is deleted,
requests to it return NOT_FOUND
.
Idle sessions can be kept alive by sending a trivial SQL query
periodically, e.g., "SELECT 1"
.
Name | Description |
database | DatabaseName Required. The database in which the new session is created. |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
Session | The RPC response. |
// Create client
SpannerClient spannerClient = SpannerClient.Create();
// Initialize request argument(s)
DatabaseName database = DatabaseName.FromProjectInstanceDatabase("[PROJECT]", "[INSTANCE]", "[DATABASE]");
// Make the request
Session response = spannerClient.CreateSession(database);
CreateSession(CreateSessionRequest, CallSettings)
public virtual Session CreateSession(CreateSessionRequest request, CallSettings callSettings = null)
Creates a new session. A session can be used to perform transactions that read and/or modify data in a Cloud Spanner database. Sessions are meant to be reused for many consecutive transactions.
Sessions can only execute one transaction at a time. To execute multiple concurrent read-write/write-only transactions, create multiple sessions. Note that standalone reads and queries use a transaction internally, and count toward the one transaction limit.
Active sessions use additional server resources, so it is a good idea to
delete idle and unneeded sessions.
Aside from explicit deletes, Cloud Spanner may delete sessions for which no
operations are sent for more than an hour. If a session is deleted,
requests to it return NOT_FOUND
.
Idle sessions can be kept alive by sending a trivial SQL query
periodically, e.g., "SELECT 1"
.
Name | Description |
request | CreateSessionRequest The request object containing all of the parameters for the API call. |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
Session | The RPC response. |
// Create client
SpannerClient spannerClient = SpannerClient.Create();
// Initialize request argument(s)
CreateSessionRequest request = new CreateSessionRequest
{
DatabaseAsDatabaseName = DatabaseName.FromProjectInstanceDatabase("[PROJECT]", "[INSTANCE]", "[DATABASE]"),
Session = new Session(),
};
// Make the request
Session response = spannerClient.CreateSession(request);
CreateSession(string, CallSettings)
public virtual Session CreateSession(string database, CallSettings callSettings = null)
Creates a new session. A session can be used to perform transactions that read and/or modify data in a Cloud Spanner database. Sessions are meant to be reused for many consecutive transactions.
Sessions can only execute one transaction at a time. To execute multiple concurrent read-write/write-only transactions, create multiple sessions. Note that standalone reads and queries use a transaction internally, and count toward the one transaction limit.
Active sessions use additional server resources, so it is a good idea to
delete idle and unneeded sessions.
Aside from explicit deletes, Cloud Spanner may delete sessions for which no
operations are sent for more than an hour. If a session is deleted,
requests to it return NOT_FOUND
.
Idle sessions can be kept alive by sending a trivial SQL query
periodically, e.g., "SELECT 1"
.
Name | Description |
database | string Required. The database in which the new session is created. |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
Session | The RPC response. |
// Create client
SpannerClient spannerClient = SpannerClient.Create();
// Initialize request argument(s)
string database = "projects/[PROJECT]/instances/[INSTANCE]/databases/[DATABASE]";
// Make the request
Session response = spannerClient.CreateSession(database);
CreateSessionAsync(DatabaseName, CallSettings)
public virtual Task<Session> CreateSessionAsync(DatabaseName database, CallSettings callSettings = null)
Creates a new session. A session can be used to perform transactions that read and/or modify data in a Cloud Spanner database. Sessions are meant to be reused for many consecutive transactions.
Sessions can only execute one transaction at a time. To execute multiple concurrent read-write/write-only transactions, create multiple sessions. Note that standalone reads and queries use a transaction internally, and count toward the one transaction limit.
Active sessions use additional server resources, so it is a good idea to
delete idle and unneeded sessions.
Aside from explicit deletes, Cloud Spanner may delete sessions for which no
operations are sent for more than an hour. If a session is deleted,
requests to it return NOT_FOUND
.
Idle sessions can be kept alive by sending a trivial SQL query
periodically, e.g., "SELECT 1"
.
Name | Description |
database | DatabaseName Required. The database in which the new session is created. |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
TaskSession | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
DatabaseName database = DatabaseName.FromProjectInstanceDatabase("[PROJECT]", "[INSTANCE]", "[DATABASE]");
// Make the request
Session response = await spannerClient.CreateSessionAsync(database);
CreateSessionAsync(DatabaseName, CancellationToken)
public virtual Task<Session> CreateSessionAsync(DatabaseName database, CancellationToken cancellationToken)
Creates a new session. A session can be used to perform transactions that read and/or modify data in a Cloud Spanner database. Sessions are meant to be reused for many consecutive transactions.
Sessions can only execute one transaction at a time. To execute multiple concurrent read-write/write-only transactions, create multiple sessions. Note that standalone reads and queries use a transaction internally, and count toward the one transaction limit.
Active sessions use additional server resources, so it is a good idea to
delete idle and unneeded sessions.
Aside from explicit deletes, Cloud Spanner may delete sessions for which no
operations are sent for more than an hour. If a session is deleted,
requests to it return NOT_FOUND
.
Idle sessions can be kept alive by sending a trivial SQL query
periodically, e.g., "SELECT 1"
.
Name | Description |
database | DatabaseName Required. The database in which the new session is created. |
cancellationToken | CancellationToken A CancellationToken to use for this RPC. |
Type | Description |
TaskSession | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
DatabaseName database = DatabaseName.FromProjectInstanceDatabase("[PROJECT]", "[INSTANCE]", "[DATABASE]");
// Make the request
Session response = await spannerClient.CreateSessionAsync(database);
CreateSessionAsync(CreateSessionRequest, CallSettings)
public virtual Task<Session> CreateSessionAsync(CreateSessionRequest request, CallSettings callSettings = null)
Creates a new session. A session can be used to perform transactions that read and/or modify data in a Cloud Spanner database. Sessions are meant to be reused for many consecutive transactions.
Sessions can only execute one transaction at a time. To execute multiple concurrent read-write/write-only transactions, create multiple sessions. Note that standalone reads and queries use a transaction internally, and count toward the one transaction limit.
Active sessions use additional server resources, so it is a good idea to
delete idle and unneeded sessions.
Aside from explicit deletes, Cloud Spanner may delete sessions for which no
operations are sent for more than an hour. If a session is deleted,
requests to it return NOT_FOUND
.
Idle sessions can be kept alive by sending a trivial SQL query
periodically, e.g., "SELECT 1"
.
Name | Description |
request | CreateSessionRequest The request object containing all of the parameters for the API call. |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
TaskSession | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
CreateSessionRequest request = new CreateSessionRequest
{
DatabaseAsDatabaseName = DatabaseName.FromProjectInstanceDatabase("[PROJECT]", "[INSTANCE]", "[DATABASE]"),
Session = new Session(),
};
// Make the request
Session response = await spannerClient.CreateSessionAsync(request);
CreateSessionAsync(CreateSessionRequest, CancellationToken)
public virtual Task<Session> CreateSessionAsync(CreateSessionRequest request, CancellationToken cancellationToken)
Creates a new session. A session can be used to perform transactions that read and/or modify data in a Cloud Spanner database. Sessions are meant to be reused for many consecutive transactions.
Sessions can only execute one transaction at a time. To execute multiple concurrent read-write/write-only transactions, create multiple sessions. Note that standalone reads and queries use a transaction internally, and count toward the one transaction limit.
Active sessions use additional server resources, so it is a good idea to
delete idle and unneeded sessions.
Aside from explicit deletes, Cloud Spanner may delete sessions for which no
operations are sent for more than an hour. If a session is deleted,
requests to it return NOT_FOUND
.
Idle sessions can be kept alive by sending a trivial SQL query
periodically, e.g., "SELECT 1"
.
Name | Description |
request | CreateSessionRequest The request object containing all of the parameters for the API call. |
cancellationToken | CancellationToken A CancellationToken to use for this RPC. |
Type | Description |
TaskSession | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
CreateSessionRequest request = new CreateSessionRequest
{
DatabaseAsDatabaseName = DatabaseName.FromProjectInstanceDatabase("[PROJECT]", "[INSTANCE]", "[DATABASE]"),
Session = new Session(),
};
// Make the request
Session response = await spannerClient.CreateSessionAsync(request);
CreateSessionAsync(string, CallSettings)
public virtual Task<Session> CreateSessionAsync(string database, CallSettings callSettings = null)
Creates a new session. A session can be used to perform transactions that read and/or modify data in a Cloud Spanner database. Sessions are meant to be reused for many consecutive transactions.
Sessions can only execute one transaction at a time. To execute multiple concurrent read-write/write-only transactions, create multiple sessions. Note that standalone reads and queries use a transaction internally, and count toward the one transaction limit.
Active sessions use additional server resources, so it is a good idea to
delete idle and unneeded sessions.
Aside from explicit deletes, Cloud Spanner may delete sessions for which no
operations are sent for more than an hour. If a session is deleted,
requests to it return NOT_FOUND
.
Idle sessions can be kept alive by sending a trivial SQL query
periodically, e.g., "SELECT 1"
.
Name | Description |
database | string Required. The database in which the new session is created. |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
TaskSession | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
string database = "projects/[PROJECT]/instances/[INSTANCE]/databases/[DATABASE]";
// Make the request
Session response = await spannerClient.CreateSessionAsync(database);
CreateSessionAsync(string, CancellationToken)
public virtual Task<Session> CreateSessionAsync(string database, CancellationToken cancellationToken)
Creates a new session. A session can be used to perform transactions that read and/or modify data in a Cloud Spanner database. Sessions are meant to be reused for many consecutive transactions.
Sessions can only execute one transaction at a time. To execute multiple concurrent read-write/write-only transactions, create multiple sessions. Note that standalone reads and queries use a transaction internally, and count toward the one transaction limit.
Active sessions use additional server resources, so it is a good idea to
delete idle and unneeded sessions.
Aside from explicit deletes, Cloud Spanner may delete sessions for which no
operations are sent for more than an hour. If a session is deleted,
requests to it return NOT_FOUND
.
Idle sessions can be kept alive by sending a trivial SQL query
periodically, e.g., "SELECT 1"
.
Name | Description |
database | string Required. The database in which the new session is created. |
cancellationToken | CancellationToken A CancellationToken to use for this RPC. |
Type | Description |
TaskSession | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
string database = "projects/[PROJECT]/instances/[INSTANCE]/databases/[DATABASE]";
// Make the request
Session response = await spannerClient.CreateSessionAsync(database);
DeleteSession(DeleteSessionRequest, CallSettings)
public virtual void DeleteSession(DeleteSessionRequest request, CallSettings callSettings = null)
Ends a session, releasing server resources associated with it. This will asynchronously trigger cancellation of any operations that are running with this session.
Name | Description |
request | DeleteSessionRequest The request object containing all of the parameters for the API call. |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
// Create client
SpannerClient spannerClient = SpannerClient.Create();
// Initialize request argument(s)
DeleteSessionRequest request = new DeleteSessionRequest
{
SessionName = SessionName.FromProjectInstanceDatabaseSession("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]"),
};
// Make the request
spannerClient.DeleteSession(request);
DeleteSession(SessionName, CallSettings)
public virtual void DeleteSession(SessionName name, CallSettings callSettings = null)
Ends a session, releasing server resources associated with it. This will asynchronously trigger cancellation of any operations that are running with this session.
Name | Description |
name | SessionName Required. The name of the session to delete. |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
// Create client
SpannerClient spannerClient = SpannerClient.Create();
// Initialize request argument(s)
SessionName name = SessionName.FromProjectInstanceDatabaseSession("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]");
// Make the request
spannerClient.DeleteSession(name);
DeleteSession(string, CallSettings)
public virtual void DeleteSession(string name, CallSettings callSettings = null)
Ends a session, releasing server resources associated with it. This will asynchronously trigger cancellation of any operations that are running with this session.
Name | Description |
name | string Required. The name of the session to delete. |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
// Create client
SpannerClient spannerClient = SpannerClient.Create();
// Initialize request argument(s)
string name = "projects/[PROJECT]/instances/[INSTANCE]/databases/[DATABASE]/sessions/[SESSION]";
// Make the request
spannerClient.DeleteSession(name);
DeleteSessionAsync(DeleteSessionRequest, CallSettings)
public virtual Task DeleteSessionAsync(DeleteSessionRequest request, CallSettings callSettings = null)
Ends a session, releasing server resources associated with it. This will asynchronously trigger cancellation of any operations that are running with this session.
Name | Description |
request | DeleteSessionRequest The request object containing all of the parameters for the API call. |
callSettings | CallSettings If not null, applies overrides to this RPC call. |
Type | Description |
Task | A Task containing the RPC response. |
// Create client
SpannerClient spannerClient = await SpannerClient.CreateAsync();
// Initialize request argument(s)
DeleteSessionRequest request = new DeleteSessionRequest
{
SessionName = SessionName.FromProjectInstanceDatabaseSession("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]"),
};
// Make the request
await spannerClient.DeleteSessionAsync(request);