feat: Enhance Initial Request Target Selection #78
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What it Does
This update refines the logic for selecting the initial request target within the BoltRouter module, while expanding its capabilities. By incorporating support for both random and object hash-based traffic distribution, we optimize routing decisions to align with specific use cases.
Previously, the selection process relied solely on the Random Crunch Traffic Split strategy, which could lead to data inconsistencies when handling mixed GET and PUT requests.
With this enhancement, the
SelectInitialRequestTarget
function now considers theCrunchTrafficSplit
configuration parameter. This parameter accepts two values: "CrunchTrafficSplitByRandomRequest" and "CrunchTrafficSplitByObjectKeyHash". When set to "CrunchTrafficSplitByRandomRequest", the routing process continuesas before, distributing traffic randomly. On the other hand, when set to "CrunchTrafficSplitByObjectKeyHash", the routing decision is made based on the crc32 hash value of the request's object key. By using CRC32 checksum for hash calculation, we achieve faster processing and lower memory consumption compared to MD5 or SHA-256.
Unit Test