Add MessageId::batchSize() and the MessageIdBuilder - #105
Merged
RobertIndie merged 1 commit intoNov 14, 2022
Merged
Conversation
Master issue: apache#87 ### Motivation To support batch index acknowledgment, we must provide a method to get the batch size of a batched message ID. ### Modifications Instead of adding another overload constructor to `MessageId`, this PR adds a `MessageIdBuilder` class to construct the `MessageId` in a more elegant way. The original constructor is counterintuitive because the partition index is the 1st argument. https://github.com/apache/pulsar-client-cpp/blob/74ef1a01f5c7a4604d251de6d040c433f9bbf56b/include/pulsar/MessageId.h#L47 Therefore, this PR marks it as deprecated and replace all invocations of it with the `MessageIdBuilder` usages. To verify the `MessageId::batchSize()`, the following tests are modified: - `BatchMessageTest.testBatchSizeInBytes`: the batch size is always 2 because of the `batchingMaxAllowedSizeInBytes` config. - `MessageChunkingTest.testEndToEnd`: the batch size field is not set (default: 0) because batching is disabled.
Contributor
Author
Contributor
Author
|
@merlimat @RobertIndie @Demogorgon314 PTAL. Though I opened a discussion here and reached a concensus that Java's MessageId is an opaque, the MessageId in C++ is still constructable from application side. This PR mainly changes the construction from // partition: 1, ledger: 2, entry: 3, batch index: 4
MessageId id(1, 2, 3, 4);to auto id = MessageIdBuilder().ledgerId(2).entryId(3).partition(1).batchIndex(4).build();And support |
shibd
approved these changes
Nov 11, 2022
Demogorgon314
approved these changes
Nov 14, 2022
RobertIndie
approved these changes
Nov 14, 2022
This file contains hidden or 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
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.
Master issue: #87
Motivation
To support batch index acknowledgment, we must provide a method to get the batch size of a batched message ID.
Modifications
Instead of adding another overload constructor to
MessageId, this PR adds aMessageIdBuilderclass to construct theMessageIdin a more elegant way.The original constructor is counterintuitive because the partition index is the 1st argument.
pulsar-client-cpp/include/pulsar/MessageId.h
Line 47 in 74ef1a0
Therefore, this PR marks it as deprecated and replace all invocations of it with the
MessageIdBuilderusages.To verify the
MessageId::batchSize(), the following tests are modified:BatchMessageTest.testBatchSizeInBytes: the batch size is always 2 because of thebatchingMaxAllowedSizeInBytesconfig.MessageChunkingTest.testEndToEnd: the batch size field is not set(default: 0) because batching is disabled.
Documentation
doc-required(Your PR needs to update docs and you will update later)
doc-not-needed(Please explain why)
doc(Your PR contains doc changes)
doc-complete(Docs have been already added)