Skip to content

Sigv4 Signer optimizations - #6383

Merged
alextwoods merged 5 commits into
masterfrom
alexwoo/optimize-sigv4-signer
Aug 29, 2025
Merged

alextwoods merged 5 commits into
masterfrom
alexwoo/optimize-sigv4-signer

Conversation

@alextwoods

@alextwoods alextwoods commented Aug 28, 2025 •

Copy link
Copy Markdown
Contributor

Sigv4 Signer optimizations

Motivation and Context

This PR addresses a few signer hotspots identified during analysis of SDK profiling data.

Modifications

Many services (particularly RPC protocols) have requests with no path ("/") or query parameters and we can short circuit expensive allocations/operations when creating canonical requests.

Testing

All existing signer tests pass + added a new benchmark. Results below captured on c5.4xlarge EC2 instance:

Before:   4759.084 ± 75.946 ns/op
After:    3547.477 ± 222.692 ns/op

Improvement: ~25%

Screenshots (if appropriate)

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)

Checklist

  • I have read the CONTRIBUTING document
  • Local run of mvn install succeeds
  • My code follows the code style of this project
  • My change requires a change to the Javadoc documentation
  • I have updated the Javadoc documentation accordingly
  • I have added tests to cover my changes
  • All new and existing tests passed
  • I have added a changelog entry. Adding a new entry must be accomplished by running the scripts/new-change script and following the instructions. Commit the new file created by the script in .changes/next-release with your changes.
  • My change is to implement 1.11 parity feature and I have updated LaunchChangelog

License

  • I confirm that this pull request can be released under the Apache 2 license

@alextwoods
alextwoods requested a review from a team as a code owner August 28, 2025 17:58
@alextwoods

Copy link
Copy Markdown
Contributor Author

Quality Gate Failed Quality Gate failed

Failed conditions 48.8% Coverage on New Code (required ≥ 80%)

See analysis details on SonarQube Cloud

RE: Code coverage - benchmark code is untested, all other code is at 100% coverage.

Comment thread .changes/next-release/bugfix-AWSSDKforJavav2-5e4425a.json Outdated
Co-authored-by: David Ho <70000000+davidh44@users.noreply.github.com>
@alextwoods
alextwoods enabled auto-merge August 29, 2025 14:35
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
79.9% Coverage on New Code (required ≥ 80%)
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@alextwoods
alextwoods added this pull request to the merge queue Aug 29, 2025
Merged via the queue into master with commit 8a7efd1 Aug 29, 2025
@github-actions

Copy link
Copy Markdown

This pull request has been closed and the conversation has been locked. Comments on closed PRs are hard for our team to see. If you need more assistance, please open a new issue that references this one.

@github-actions github-actions Bot locked as resolved and limited conversation to collaborators Aug 29, 2025
@alextwoods
alextwoods deleted the alexwoo/optimize-sigv4-signer branch August 29, 2025 17:12
@alextwoods alextwoods added the perf-improvement Label for PRs that contain performance improvement changes. label Jan 21, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

perf-improvement Label for PRs that contain performance improvement changes.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants