Skip to content
This repository has been archived by the owner on Apr 18, 2024. It is now read-only.

Improve retry logic #151

Merged
merged 2 commits into from
Aug 24, 2023
Merged

Improve retry logic #151

merged 2 commits into from
Aug 24, 2023

Conversation

aarshkshah1992
Copy link
Contributor

Improve retry logic

caboose.go Outdated
@@ -85,11 +85,12 @@ const DefaultLoggingInterval = 5 * time.Second
const DefaultSaturnOrchestratorRequestTimeout = 30 * time.Second

const DefaultSaturnBlockRequestTimeout = 19 * time.Second
const DefaultSaturnCarRequestTimeout = 30 * time.Minute

const DefaultSaturnCarRequestTimeout = 1 * time.Minute
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Max P95 for a successful CAR fetch over the last 24 hours in prod is 30 seconds:

https://protocollabs.grafana.net/d/bxJz6bJ4k/bifrost-gw-metrics?orgId=1&from=now-24h&to=now&editPanel=134

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

does this mean that a large movie won't work anymore?

I don't think this is an acceptable limit.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmmm, I see what you mean.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@willscott Reverted this change.

const DefaultSaturnMirrorRequestTimeout = 30 * time.Second

// default retries before failure unless overridden by MaxRetrievalAttempts
const defaultMaxRetries = 3
const defaultMaxRetries = 2
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this seems fine

@@ -236,9 +236,9 @@ func (p *pool) fetchResource(ctx context.Context, from string, resource string,
// which is the amount of time without any NEW data from the server, but
// that can be added later. We need both because a slow trickle of data
// could take a large amount of time.
requestTimeout := DefaultSaturnCarRequestTimeout
requestTimeout := time.Duration(DefaultSaturnCarRequestTimeout.Milliseconds()/int64(attempt+1)) * time.Millisecond
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reduces timeout duration with each retry.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this seems okay

@aarshkshah1992 aarshkshah1992 merged commit 337e31a into main Aug 24, 2023
7 checks passed
@aarshkshah1992 aarshkshah1992 deleted the feat/improve-retry-logic branch August 24, 2023 08:18
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants