Skip to content

Add additional checksum algorithms#6742

Open
zoewangg wants to merge 1 commit intofeature/master/addMoreChecksumAlgosfrom
zoewang/additionalChecksumAlgos
Open

Add additional checksum algorithms#6742
zoewangg wants to merge 1 commit intofeature/master/addMoreChecksumAlgosfrom
zoewang/additionalChecksumAlgos

Conversation

@zoewangg
Copy link
Contributor

Motivation and Context

Add support for additional checksum algorithms: XXHASH64, XXHASH3, XXHASH128, SHA512, and MD5. Note that this change will be merged to a feature branch first

  • The XXHASH algorithms require the AWS CRT library.
  • MD5 is not supported for flexible checksums (httpChecksum trait). MD5 can only be used when a pre-calculated MD5 header is provided. Attempting to specify MD5 as the checksum algorithm throws IllegalArgumentException.
  • MD5 response validation is skipped in HttpChecksumUtils.shouldSkipAlgorithm() since MD5 is not a valid flexible checksum algorithm

Modifications

  • Added new checksum algorithm constants in DefaultChecksumAlgorithm: XXHASH64, XXHASH3, XXHASH128
  • Added business metrics for new checksum algorithms in BusinessMetricFeatureId and BusinessMetricsUtils
  • Changed aws-crt dependency from test scope to optional for runtime CRT checksum support

Testing

  • Added XxHashChecksumTest for XXHASH algorithm variants
  • Added XxHashNotAvailableTest to verify graceful handling when CRT is unavailable
  • Added tests for business metrics verification
  • Updated existing checksum tests to cover new algorithms

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

@zoewangg zoewangg requested a review from a team as a code owner February 18, 2026 16:18
*/
public class HttpChecksumTrait {

// TODO: run perf tests
Copy link
Contributor Author

Choose a reason for hiding this comment

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

The priority order is pending on perf tests

@zoewangg zoewangg force-pushed the zoewang/additionalChecksumAlgos branch from 20c5ebe to 1b23023 Compare February 18, 2026 21:50
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.

1 participant

Comments