Skip to content

Commit 1b0d745

Browse files
committed
Address review feedback
1 parent 4322bd6 commit 1b0d745

File tree

5 files changed

+19
-29
lines changed

5 files changed

+19
-29
lines changed

google/cloud/spanner_v1/database.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -806,7 +806,9 @@ def _next_nth_request(self):
806806

807807
@property
808808
def _nth_client_id(self):
809-
return self._instance._client._nth_client_id
809+
if self._instance and self._instance._client:
810+
return self._instance._client._nth_client_id
811+
return 0
810812

811813
def session(self, labels=None, database_role=None):
812814
"""Factory to create a session for this database.
@@ -1028,7 +1030,6 @@ def restore(self, source):
10281030
)
10291031
future = api.restore_database(
10301032
request=request,
1031-
# TODO: Infer the channel_id being used.
10321033
metadata=self.metadata_with_request_id(self._next_nth_request, 1, metadata),
10331034
)
10341035
return future

google/cloud/spanner_v1/session.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -252,9 +252,7 @@ def delete(self):
252252

253253
database = self._database
254254
api = database.spanner_api
255-
metadata = database.metadata_with_request_id(
256-
database._next_nth_request, 1, _metadata_with_prefix(database.name)
257-
)
255+
metadata = _metadata_with_prefix(database.name)
258256
observability_options = getattr(self._database, "observability_options", None)
259257
with trace_call(
260258
"CloudSpanner.DeleteSession",
@@ -268,7 +266,9 @@ def delete(self):
268266
), MetricsCapture():
269267
api.delete_session(
270268
name=self.name,
271-
metadata=metadata,
269+
metadata=database.metadata_with_request_id(
270+
database._next_nth_request, 1, metadata
271+
),
272272
)
273273

274274
def ping(self):

google/cloud/spanner_v1/snapshot.py

Lines changed: 11 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
_retry,
3939
_check_rst_stream_error,
4040
_SessionWrapper,
41+
AtomicCounter,
4142
)
4243
from google.cloud.spanner_v1._opentelemetry_tracing import trace_call
4344
from google.cloud.spanner_v1.streamed import StreamedResultSet
@@ -82,11 +83,6 @@ def _restart_on_unavailable(
8283
resume_token = b""
8384
item_buffer = []
8485

85-
def next_nth_request():
86-
return getattr(request_id_manager, "_next_nth_request", 0)
87-
88-
nth_request = next_nth_request()
89-
9086
if transaction is not None:
9187
transaction_selector = transaction._make_txn_selector()
9288
elif transaction_selector is None:
@@ -96,7 +92,8 @@ def next_nth_request():
9692

9793
request.transaction = transaction_selector
9894
iterator = None
99-
attempt = 0
95+
attempt = 1
96+
nth_request = getattr(request_id_manager, "_next_nth_request", 0)
10097

10198
while True:
10299
try:
@@ -108,7 +105,6 @@ def next_nth_request():
108105
observability_options=observability_options,
109106
metadata=metadata,
110107
), MetricsCapture():
111-
attempt += 1
112108
iterator = method(
113109
request=request,
114110
metadata=request_id_manager.metadata_with_request_id(
@@ -142,8 +138,7 @@ def next_nth_request():
142138
if transaction is not None:
143139
transaction_selector = transaction._make_txn_selector()
144140
request.transaction = transaction_selector
145-
nth_request = next_nth_request()
146-
attempt = 1
141+
attempt += 1
147142
iterator = method(
148143
request=request,
149144
metadata=request_id_manager.metadata_with_request_id(
@@ -169,8 +164,7 @@ def next_nth_request():
169164
request.resume_token = resume_token
170165
if transaction is not None:
171166
transaction_selector = transaction._make_txn_selector()
172-
nth_request = next_nth_request()
173-
attempt = 1
167+
attempt += 1
174168
request.transaction = transaction_selector
175169
iterator = method(
176170
request=request,
@@ -753,12 +747,11 @@ def partition_read(
753747
metadata=metadata,
754748
), MetricsCapture():
755749
nth_request = getattr(database, "_next_nth_request", 0)
756-
counters = dict(attempt=0)
750+
attempt = AtomicCounter()
757751

758752
def attempt_tracking_method():
759-
counters["attempt"] += 1
760753
all_metadata = database.metadata_with_request_id(
761-
nth_request, counters["attempt"], metadata
754+
nth_request, attempt.increment(), metadata
762755
)
763756
method = functools.partial(
764757
api.partition_read,
@@ -867,12 +860,11 @@ def partition_query(
867860
metadata=metadata,
868861
), MetricsCapture():
869862
nth_request = getattr(database, "_next_nth_request", 0)
870-
counters = dict(attempt=0)
863+
attempt = AtomicCounter()
871864

872865
def attempt_tracking_method():
873-
counters["attempt"] += 1
874866
all_metadata = database.metadata_with_request_id(
875-
nth_request, counters["attempt"], metadata
867+
nth_request, attempt.increment(), metadata
876868
)
877869
method = functools.partial(
878870
api.partition_query,
@@ -1024,12 +1016,11 @@ def begin(self):
10241016
metadata=metadata,
10251017
), MetricsCapture():
10261018
nth_request = getattr(database, "_next_nth_request", 0)
1027-
counters = dict(attempt=0)
1019+
attempt = AtomicCounter()
10281020

10291021
def attempt_tracking_method():
1030-
counters["attempt"] += 1
10311022
all_metadata = database.metadata_with_request_id(
1032-
nth_request, counters["attempt"], metadata
1023+
nth_request, attempt.increment(), metadata
10331024
)
10341025
method = functools.partial(
10351026
api.begin_transaction,

google/cloud/spanner_v1/transaction.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,13 +186,12 @@ def begin(self):
186186
nth_request = database._next_nth_request
187187

188188
def wrapped_method(*args, **kwargs):
189-
attempt.increment()
190189
method = functools.partial(
191190
api.begin_transaction,
192191
session=self._session.name,
193192
options=txn_options,
194193
metadata=database.metadata_with_request_id(
195-
nth_request, attempt.value, metadata
194+
nth_request, attempt.increment(), metadata
196195
),
197196
)
198197
return method(*args, **kwargs)

tests/unit/test_spanner.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1008,7 +1008,6 @@ def test_transaction_for_concurrent_statement_should_begin_one_transaction_with_
10081008
)
10091009

10101010
self.assertEqual(api.execute_batch_dml.call_count, 2)
1011-
print("\033[34marg_list", api.execute_batch_dml.call_args_list, "\033[00m")
10121011
self.assertEqual(
10131012
api.execute_batch_dml.call_args_list,
10141013
[

0 commit comments

Comments
 (0)