Skip to content

Conversation

tlyons-cs
Copy link
Contributor

With the transition to go 1.23 the internal retry goroutine+channel can be replaced with an iter.Seq[int]. This reduces the memory allocation of a new goroutine and the extra overhead for waiting on the receipt/done channels.

@tlyons-cs
Copy link
Contributor Author

For some added context: when using this client in a high volume service I noticed the number of goroutines was roughly double what I expected. This was because for every routine executing an operation, another routine had spun up handling the retries. Adding this change would eliminate the need for a separate goroutine for the retry delays and improve performance

Copy link
Contributor

@klauspost klauspost left a comment

Choose a reason for hiding this comment

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

Looks like a solid refactor!

@harshavardhana
Copy link
Member

@tlyons-cs can you fix the linter errors?

@harshavardhana harshavardhana merged commit 1e5fd8a into minio:master Apr 4, 2025
5 checks passed
project-mirrors-bot-tu bot pushed a commit to project-mirrors/forgejo that referenced this pull request Apr 9, 2025
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/minio/minio-go/v7](https://github.com/minio/minio-go) | require | patch | `v7.0.88` -> `v7.0.90` |

---

### Release Notes

<details>
<summary>minio/minio-go (github.com/minio/minio-go/v7)</summary>

### [`v7.0.90`](https://github.com/minio/minio-go/releases/tag/v7.0.90): Bugfix v7.0.90

[Compare Source](minio/minio-go@v7.0.89...v7.0.90)

#### What's Changed

-   Add anonymous chunked encoding with trailing headers by [@&#8203;klauspost](https://github.com/klauspost) in minio/minio-go#2084
-   Implement AppendObject() API by [@&#8203;harshavardhana](https://github.com/harshavardhana) in minio/minio-go#2082
-   Update x/net version by [@&#8203;BorjaOuterelo](https://github.com/BorjaOuterelo) in minio/minio-go#2085
-   Rety iterators by [@&#8203;tlyons-cs](https://github.com/tlyons-cs) in minio/minio-go#2087
-   Add function for getting creds of remote client by [@&#8203;shtripat](https://github.com/shtripat) in minio/minio-go#2089

#### New Contributors

-   [@&#8203;BorjaOuterelo](https://github.com/BorjaOuterelo) made their first contribution in minio/minio-go#2085
-   [@&#8203;tlyons-cs](https://github.com/tlyons-cs) made their first contribution in minio/minio-go#2087

**Full Changelog**: minio/minio-go@v7.0.89...v7.0.90

### [`v7.0.89`](https://github.com/minio/minio-go/releases/tag/v7.0.89): Bugfix Release

[Compare Source](minio/minio-go@v7.0.88...v7.0.89)

#### What's Changed

-   add PurgeOnDelete to versioning config by [@&#8203;poornas](https://github.com/poornas) in minio/minio-go#2074
-   Adds `TokenRevokeType` field to credential providers. by [@&#8203;taran-p](https://github.com/taran-p) in minio/minio-go#2075
-   make downtime info as map to denote per target info by [@&#8203;Praveenrajmani](https://github.com/Praveenrajmani) in minio/minio-go#2079
-   update deps and move CI/CD to go1.23, go1.24 by [@&#8203;harshavardhana](https://github.com/harshavardhana) in minio/minio-go#2080
-   update golint version by [@&#8203;harshavardhana](https://github.com/harshavardhana) in minio/minio-go#2083

#### New Contributors

-   [@&#8203;taran-p](https://github.com/taran-p) made their first contribution in minio/minio-go#2075

**Full Changelog**: minio/minio-go@v7.0.88...v7.0.89

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "* 0-3 * * *" (UTC), Automerge - "* 0-3 * * *" (UTC).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMzMuNSIsInVwZGF0ZWRJblZlciI6IjM5LjIzMy41IiwidGFyZ2V0QnJhbmNoIjoiZm9yZ2VqbyIsImxhYmVscyI6WyJkZXBlbmRlbmN5LXVwZ3JhZGUiLCJ0ZXN0L25vdC1uZWVkZWQiXX0=-->

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7495
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
Co-committed-by: Renovate Bot <forgejo-renovate-action@forgejo.org>
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.

3 participants