-
Notifications
You must be signed in to change notification settings - Fork 344
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[feature] Support batch index ACK #938
Merged
BewareMyPower
merged 3 commits into
apache:master
from
BewareMyPower:bewaremypower/batch-index-ack
Jan 11, 2023
Merged
[feature] Support batch index ACK #938
BewareMyPower
merged 3 commits into
apache:master
from
BewareMyPower:bewaremypower/batch-index-ack
Jan 11, 2023
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
BewareMyPower
requested review from
cckellogg,
freeznet,
nodece,
RobertIndie,
wolfstudy and
Demogorgon314
January 3, 2023 11:35
BewareMyPower
force-pushed
the
bewaremypower/batch-index-ack
branch
from
January 3, 2023 11:57
fb9c50e
to
3e822e0
Compare
Fixes apache#894 ### Modifications Add an `EnableBatchIndexAcknowledgment` to specify whether batch index ACK is enabled. Since this feature requires the conversion between a bit set and its underlying long array, which is similar to Java's `BitSet`, this commit introduces github.com/bits-and-blooms/bitset dependency to replace the `big.Int` based implementation of the bit set. Add a `BatchSize()` method to `MessageId` to indicate the size of the `ack_set` field. When the batch index ACK happens, convert the `[]uint64` to the `[]int64` as the `ack_set` field in `CommandAck`. When receiving messages, convert the `ack_set` field in `CommandMessage` to filter the acknowledged single messages. Remove the duplicated code in `AckID` and `AckIDWithResponse`. ### Verifications `TestBatchIndexAck` is added to cover the case whether `AckWithResponse` is enabled and both individual and cumulative ACK.
BewareMyPower
force-pushed
the
bewaremypower/batch-index-ack
branch
from
January 3, 2023 13:31
3e822e0
to
2dfdabd
Compare
wolfstudy
reviewed
Jan 5, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM +1, just a little comments, please check
wolfstudy
approved these changes
Jan 10, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM +1
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #894
Modifications
Add an
EnableBatchIndexAcknowledgment
to specify whether batch index ACK is enabled. Since this feature requires the conversion between a bit set and its underlying long array, which is similar to Java'sBitSet
, this commit introduces github.com/bits-and-blooms/bitset dependency to replace thebig.Int
based implementation of the bit set.Add a
BatchSize()
method toMessageId
to indicate the size of theack_set
field. When the batch index ACK happens, convert the[]uint64
to the[]int64
as theack_set
field inCommandAck
. When receiving messages, convert theack_set
field inCommandMessage
to filter the acknowledged single messages.Remove the duplicated code in
AckID
andAckIDWithResponse
.Verifications
TestBatchIndexAck
is added to cover the case whetherAckWithResponse
is enabled and both individual and cumulative ACK.