@@ -257,19 +257,13 @@ def bind(self, database):
257257 f"Creating { request .session_count } sessions" ,
258258 span_event_attributes ,
259259 )
260- nth_req = database ._next_nth_request
261260
262- def create_sessions (attempt ):
263- all_metadata = database .metadata_with_request_id (
264- nth_req , attempt , metadata
265- )
266- return api .batch_create_sessions (
267- request = request ,
268- metadata = all_metadata ,
269- )
270-
271- resp = retry_on_unavailable (create_sessions , "fixedpool" )
272- # print("resp.FixedPool", resp)
261+ resp = api .batch_create_sessions (
262+ request = request ,
263+ metadata = database .metadata_with_request_id (
264+ database ._next_nth_request , 1 , metadata
265+ ),
266+ )
273267
274268 add_span_event (
275269 span ,
@@ -569,21 +563,14 @@ def bind(self, database):
569563 observability_options = observability_options ,
570564 metadata = metadata ,
571565 ) as span , MetricsCapture ():
572- created_session_count = 0
573- while created_session_count < self .size :
574- nth_req = database ._next_nth_request
575-
576- def create_sessions (attempt ):
577- all_metadata = database .metadata_with_request_id (
578- nth_req , attempt , metadata
579- )
580- return api .batch_create_sessions (
581- request = request ,
582- metadata = all_metadata ,
583- )
584-
585- resp = retry_on_unavailable (create_sessions , "pingpool" )
586- print ("resp.PingingPool" , resp )
566+ returned_session_count = 0
567+ while returned_session_count < self .size :
568+ resp = api .batch_create_sessions (
569+ request = request ,
570+ metadata = database .metadata_with_request_id (
571+ database ._next_nth_request , 1 , metadata
572+ ),
573+ )
587574
588575 add_span_event (
589576 span ,
@@ -592,14 +579,13 @@ def create_sessions(attempt):
592579
593580 for session_pb in resp .session :
594581 session = self ._new_session ()
582+ returned_session_count += 1
595583 session ._session_id = session_pb .name .split ("/" )[- 1 ]
596584 self .put (session )
597585
598- created_session_count += len (resp .session )
599-
600586 add_span_event (
601587 span ,
602- f"Requested for { requested_session_count } sessions, returned { created_session_count } " ,
588+ f"Requested for { requested_session_count } sessions, returned { returned_session_count } " ,
603589 span_event_attributes ,
604590 )
605591
@@ -822,25 +808,3 @@ def __enter__(self):
822808
823809 def __exit__ (self , * ignored ):
824810 self ._pool .put (self ._session )
825-
826-
827- def retry_on_unavailable (fn , kind , max = 6 ):
828- """
829- Retries `fn` to a maximum of `max` times on encountering UNAVAILABLE exceptions,
830- each time passing in the iteration's ordinal number to signal
831- the nth attempt. It retries with exponential backoff with jitter.
832- """
833- last_exc = None
834- for i in range (max ):
835- print ("retry_on_unavailable" , kind , i )
836- try :
837- return fn (i + 1 )
838- except ServiceUnavailable as exc :
839- print ("exc" , exc )
840- last_exc = exc
841- time .sleep (i ** 2 + random .random ())
842- except Exception as e :
843- print ("got exception" , e )
844- raise
845-
846- raise last_exc
0 commit comments