-
Notifications
You must be signed in to change notification settings - Fork 370
[Issue 456] Support chunking for big messages. #805
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
Merged
Merged
Changes from all commits
Commits
Show all changes
44 commits
Select commit
Hold shift + click to select a range
cd183c2
feat: add internalSingleSend to send single message
Gleiphir2769 342e8e5
feat: support chunking for producer
Gleiphir2769 ff60f94
Merge branch 'master' into chunking_issue_456
Gleiphir2769 3a90ce5
fix: fix the bug of Send() block when SingleSend() failed; fix the bu…
Gleiphir2769 ed7915d
feat: Implemented chunking on the consumer side
Gleiphir2769 0456630
test: add message_chunking_test.go for chunk consume/produce test
Gleiphir2769 a4769e8
refector: do some clean, removed unAckedChunkedMessageIdSequenceMap b…
Gleiphir2769 64b9a20
fix: fix the bug of uuid generation
Gleiphir2769 c8e083a
fix: fix the Seek() for chunk message id
Gleiphir2769 7cc168f
test: move chunk tests to message_chunking_test
Gleiphir2769 db7537f
refactor: add licence header
Gleiphir2769 2537cf4
fix: Revert the change about trackingMessageID. Fix the conflict of b…
Gleiphir2769 4dc9bb7
fix: fix the license header of timewheel.go.
Gleiphir2769 0db443e
fix: fix the bug of data race for availablePermits
Gleiphir2769 92fbff2
fix: 1. fix the comments of EnableChunking and rename the MaxChunkSiz…
Gleiphir2769 d23d1cd
fix: 1. fix the bug of seq ID. 2. make code pass golangci
Gleiphir2769 5e098d2
fix: fix the test function TestChunkSize()
Gleiphir2769 203a1fc
fix: revert negativeAcksTracker.Add()
Gleiphir2769 2a1342d
fix: modify the comment of ExpireTimeOfIncompleteChunk
Gleiphir2769 fda6997
fix: fix the ack/nack for chunking
Gleiphir2769 7fd7ffa
fix: fix the chunking message ack/nack for multiTopicConsumer and Reg…
Gleiphir2769 8904e3c
refactor: remove the timewheel and do some refactor.
Gleiphir2769 94a7f6f
fix: fix the bug that may cause index out of range.
Gleiphir2769 05754c6
fix: fix the lint problem
Gleiphir2769 8f89741
fix: fix the publishSemaphore leak and modify some comments.
Gleiphir2769 95ad70b
fix: fix the chunking messages may block when the BlockIfQueueFull en…
Gleiphir2769 4719d0b
fix: fix bug of totalchunks
Gleiphir2769 72fe920
fix: fix the bug of single sending stuck by permits acquire
Gleiphir2769 a962eee
fix: fix the bug of single sending stuck by permits acquire
Gleiphir2769 09e5bd2
Merge branch 'master' into chunking_issue_456
Gleiphir2769 fef09d9
refactor: do some refactor
Gleiphir2769 53a0ebc
Merge branch 'master' into chunking_issue_456 and resolve conflict
Gleiphir2769 9794560
fix: fix for resolve conflict
Gleiphir2769 3aeb764
fix: remove the ExpireTimeOfIncompleteChunk limit and do some refactor
Gleiphir2769 4b53e33
fix: fix the nil pointer error of discardOldestChunkMessage and fix t…
Gleiphir2769 50f4959
update chunking_issue_456 and resolve conflict
Gleiphir2769 e80fe90
test: restart workflow
Gleiphir2769 84c02fe
test: restart workflow
Gleiphir2769 23570cf
test: restart workflow
Gleiphir2769 56ef453
test: restart workflow
Gleiphir2769 a42de10
fix: add logs when chunkMsgCtxMap has closed
Gleiphir2769 b3b304f
fix: modify by review comment
Gleiphir2769 6a801cb
fix: inline compare and fix a data race error
Gleiphir2769 00e9e83
fix: fix nil pointer error
Gleiphir2769 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
Oops, something went wrong.
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.
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.
Missed covert the
msgIDfrom theMessageIDto thetrackingMessageIDtype, I'm not sure if we need this.Why not use
messageID(), what did I miss?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.
trackingMessageIDdoes not records chunking infomation.For example,
Ack()a big message need to ack all the chunks of it. UsingtrackingMessageIDcan not figure out which chunk (messageId) need to be ack.trackingMessageIDis designed to tracking batch messages so it shoud not be the messageId type accepted by the method exposed bypartitionConsumer. I think the better way would be to acceptMessageIDas the messageId type in partitionConsumer methods. However, only the necessary interfaces have been modified (Ack,NAckandSeed) for the least changes