コード例 #1
0
            private async Task CreateTransactionImplAsync(Session session)
            {
                ActiveTransaction = await SpannerClient.BeginTransactionAsync(new BeginTransactionRequest
                {
                    SessionAsSessionName = session.SessionName,
                    Options = ActiveTransactionOptions
                }).WithSessionChecking(() => session).ConfigureAwait(false);

                s_activeTransactionTable.AddOrUpdate(ActiveTransaction.Id, session, (id, s) => session);
            }
コード例 #2
0
            private async Task CreateTransactionImplAsync(Session session, TransactionOptions options, Task oldPrewarmTask)
            {
                //we need to await for previous task completion anyway -- otherwise there is a bad race condition.
                //this is a little redundant, but just to be sure.
                if (oldPrewarmTask != null)
                {
                    await oldPrewarmTask.ConfigureAwait(false);
                }
                var sw = Stopwatch.StartNew();

                ActiveTransaction = await SpannerClient.BeginTransactionAsync(new BeginTransactionRequest
                {
                    SessionAsSessionName = session.SessionName,
                    Options = options
                }).WithSessionChecking(() => session).ConfigureAwait(false);

                Logger.LogPerformanceCounterFn("Transaction.Begin.Duration", x => sw.ElapsedMilliseconds);
                TransactionOptions = options;
                s_activeTransactionTable.AddOrUpdate(ActiveTransaction.Id, session, (id, s) => session);
            }