…lines 1–13 unchanged (13 lines)
14 "github.com/cockroachdb/cockroach/pkg/util/timeutil"
15)
16
17var useFastRetry = envutil.EnvOrDefaultBool(
18 "COCKROACH_CHANGEFEED_TESTING_FAST_RETRY", false)
19
20// initialRetryBackoffOverride overrides the initial retry backoff for
21// changefeeds, which is useful for testing retry behavior near
22// maximum backoff without requiring many retries.
23var initialRetryBackoffOverride = envutil.EnvOrDefaultDuration(
24 "COCKROACH_CHANGEFEED_TESTING_INITIAL_RETRY_BACKOFF", 0)
25
26// getRetry returns retry object for changefeed.
27func getRetry(ctx context.Context, maxBackoff, backoffReset time.Duration) Retry {
28 opts := retry.Options{
29 InitialBackoff: 1 * time.Second,
30 Multiplier: 2,
31 MaxBackoff: maxBackoff,
32 }
33
34 if initialRetryBackoffOverride > 0 {
35 opts.InitialBackoff = initialRetryBackoffOverride
36 } else if useFastRetry {
37 opts = retry.Options{
38 InitialBackoff: 5 * time.Millisecond,
39 Multiplier: 2,
40 MaxBackoff: 250 * time.Millisecond,
41 }
42 }
43
44 return Retry{Retry: retry.StartWithCtx(ctx, opts),
45 resetRetryAfter: backoffReset}
46}
47
48func testingUseFastRetry() func() {
…lines 49–83 unchanged (35 lines)