Skip to content

Disable object_store internal retries for all cloud backends#25324

Merged
nickvikeras merged 2 commits intomainfrom
nickv/dynamic-concurrency-control-1
Feb 6, 2026
Merged

Disable object_store internal retries for all cloud backends#25324
nickvikeras merged 2 commits intomainfrom
nickv/dynamic-concurrency-control-1

Conversation

@nickvikeras
Copy link
Copy Markdown
Contributor

@nickvikeras nickvikeras commented Feb 6, 2026

Description

object_store's default retry logic hides transient errors (429s, 5xx) from the framework's own retry/backoff, preventing callers from reacting to pressure signals.

In order to build adaptive concurrency limits that react to upstream/downstream errors, we need the framework to see the errors.

Test plan

I have tested it during a testnet backfill as part of a larger effort to enable adaptive rate limiting.

Release notes

  • Indexing Framework: Disable object_store crate internal retries to make errors immediately visible to framework.

object_store's default retry logic hides transient errors (429s, 5xx)
from the framework's own retry/backoff, preventing callers from reacting
to pressure signals. Disable retries for S3, GCS, Azure, and HTTP
backends in both the ingestion client and checkpoint blob indexer.
@nickvikeras nickvikeras requested a review from a team as a code owner February 6, 2026 15:37
@nickvikeras nickvikeras temporarily deployed to sui-typescript-aws-kms-test-env February 6, 2026 15:37 — with GitHub Actions Inactive
@vercel
Copy link
Copy Markdown

vercel bot commented Feb 6, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
sui-docs Ready Ready Preview, Comment Feb 6, 2026 5:07pm
2 Skipped Deployments
Project Deployment Actions Updated (UTC)
multisig-toolkit Ignored Ignored Preview Feb 6, 2026 5:07pm
sui-kiosk Ignored Ignored Preview Feb 6, 2026 5:07pm

Request Review

Copy link
Copy Markdown
Contributor

@amnn amnn left a comment

Choose a reason for hiding this comment

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

LGTM, thanks! Didn't even realise that object_store was performing its own retries.


/// Disable object_store's internal retries so that transient errors (429s, 5xx) propagate
/// immediately to the framework's own retry logic.
fn retry_config() -> RetryConfig {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

nit: given this is specific to StoreClient, why not make it a privat top-level function or const there?

@nickvikeras nickvikeras temporarily deployed to sui-typescript-aws-kms-test-env February 6, 2026 17:04 — with GitHub Actions Inactive
@nickvikeras nickvikeras enabled auto-merge (squash) February 6, 2026 17:08
@nickvikeras nickvikeras merged commit a0d0f22 into main Feb 6, 2026
57 of 59 checks passed
@nickvikeras nickvikeras deleted the nickv/dynamic-concurrency-control-1 branch February 6, 2026 17:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants