-
Notifications
You must be signed in to change notification settings - Fork 306
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add job_retry
argument to load_table_from_uri
#969
Comments
Here's a stacktrace from a Googler who tried to reproduce this on their own project.
Indeed the exception does throw from |
Having this exact problem in a cloud function triggered when data is uploaded to cloud bucket. Having Right now, considering cloud function retry option but I plan to add monitoring on top of cloud function and want to keep logs clean for that even if retry was successful. So now implementing exponential backoff in case of exception. |
In internal issue 195911158, a customer is struggling to retry jobs that fail with "403 Exceeded rate limits: too many table update operations for this table". One can encounter this exception by attempting to run hundreds of load jobs in parallel.
Thoughts:
result()
orload_table_from_uri()
? Ifresult()
, continue withjob_retry
, otherwise see if we can modify the default retry predicate forload_table_from_uri()
to find this rate limiting reason and retry.result()
, modify load jobs (or more likely the base class) to retry if job retry is set, similar to what we do for query jobs.Notes:
job_retry
object forload_table_from_uri()
, as the retryable reasons will likely be different than what we have for queries.load_table_from_*
are as retryable asload_table_from_uri()
, since they would require rewinding file objects, which isn't always possible. We'll probably want to consider addingjob_retry
to those load job methods in the future, but for nowload_table_from_uri
is what's needed.The text was updated successfully, but these errors were encountered: