Message stream processor microbatching
US-2020201694-A1 · Jun 25, 2020 · US
US11567814B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11567814-B2 |
| Application number | US-202117387870-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jul 28, 2021 |
| Priority date | Dec 24, 2018 |
| Publication date | Jan 31, 2023 |
| Grant date | Jan 31, 2023 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Embodiments provide a batching system that conforms message batches to publication constraints and also to message ordering requirements. An output array of messages is formed from messages received from a plurality of input streams, in which the messages are ordered. The output array preserves the ordering of the messages found in the source input streams. Messages are added from a head of the output array to a batch until addition of a next message to the batch would violate a particular batch processing constraint imposed on the batch. According to embodiments, one or more additional messages are included in the current batch when addition of the one or more additional messages to the batch (a) does not violate the particular batch processing constraint, and (b) continues to preserve the ordering of the messages, in the batch, with respect to the respective ordering of each of the plurality of input streams.
Opening claim text (preview).
What is claimed is: 1. A computer-executed method comprising: forming a batch that includes a set of messages from a plurality of input streams; wherein each input stream, of the plurality of input streams, includes one or more ordered messages; wherein the set of messages comprise multiple messages from at least one input stream of the plurality of input streams; wherein the batch is formed in a manner that: within the batch, the set of messages are ordered such that all messages from the same input stream maintain the ordering that said all messages had within said same input stream, and does not violate one or more batch processing constraints; and processing the batch; wherein the method is performed by one or more computing devices. 2. The computer-executed method of claim 1 , further comprising populating an output array of messages with the set of messages from the plurality of input streams, wherein the batch is formed from the output array. 3. The computer-executed method of claim 2 , wherein said populating the output array of messages with messages received from the plurality of input streams is performed by an inter-stream router. 4. The computer-executed method of claim 2 , wherein the messages in the output array are ordered such that all messages from the same input stream maintain the ordering that said all messages had within said same input stream. 5. The computer-executed method of claim 2 , wherein the set of messages includes messages from a head of the output array. 6. The computer-executed method of claim 2 further comprising, prior to processing the batch, and in response to determining that inclusion of a next message in the batch would violate a particular batch processing constraint of the one or more batch processing constraints: adding one or more additional messages, from the plurality of input streams, to the batch such that all additional messages from the same input stream maintain the ordering that said all additional messages had within said same input stream; wherein the one or more additional messages are messages that follow the next message in the output array; and wherein addition of the one or more additional messages to the batch does not violate the particular batch processing constraint. 7. The computer-executed method of claim 6 , further comprising identifying the one or more additional messages by: determining one or more excluded input streams of the plurality of input streams; wherein each excluded input stream, of the one or more excluded input streams, is the source of a message that has been excluded from the batch based on the particular batch processing constraint; and identifying the one or more additional messages from input streams, of the plurality of input streams, that are other than the one or more excluded input streams. 8. The computer-executed method of claim 6 , further comprising identifying the one or more additional messages based on each additional message, of the one or more additional messages, immediately following a respective message, included in the batch, according to a previous ordering of messages of a respective source input stream of the plurality of input streams. 9. The computer-executed method of claim 1 , wherein said processing the batch comprises causing a publishing service to publish the batch as a single message. 10. The computer-executed method of claim 1 , wherein said processing the batch is performed without adding additional messages to the batch. 11. The computer-executed method of claim 1 , wherein the one or more batch processing constraints comprise one or more of: a limit on an amount of data included in the batch; a limit on a number of messages that may be included in the batch; or a required data type for data in the batch. 12. The computer-executed method of claim 1 , wherein processing the batch is performed in response to determining that an amount of time associated with the one or more batch processing constraints has passed. 13. The computer-executed method of claim 1 , further comprising: forming a second batch that includes a second set of messages from the plurality of input streams; wherein the second set of messages comprises multiple messages from at least one input stream of the plurality of input streams; wherein the second batch is formed in a manner that: within the second batch, the second set of messages are ordered such that all second messages from the same input stream maintain the ordering that said all second messages had within said same input stream, and does not violate second one or more batch processing constraints; and processing the second batch. 14. One or more non-transitory computer-readable media storing one or more sequences of instructions that, when executed by one or more processors, cause: forming a batch that includes a set of messages from a plurality of input streams; wherein each input stream, of the plurality of input streams, includes one or more ordered messages; wherein the set of messages comprise multiple messages from at least one input stream of the plurality of input streams; wherein the batch is formed in a manner that: within the batch, the set of messages are ordered such that all messages from the same input stream maintain the ordering that said all messages had within said same input stream, and does not violate one or more batch processing constraints; and processing the batch. 15. The one or more non-transitory computer-readable media of claim 14 , wherein the one or more sequences of instructions further comprise instructions that, when executed by one or more processors, cause: an inter-stream router populating an output array of messages with the set of messages from the plurality of input streams; wherein the batch is formed from the output array; and wherein the messages in the output array are ordered such that all messages from the same input stream maintain the ordering that said all messages had within said same input stream. 16. The one or more non-transitory computer-readable media of claim 15 , wherein the set of messages includes messages from a head of the output array. 17. The one or more non-transitory computer-readable media of claim 14 wherein the one or more sequences of instructions further comprise instructions that, when executed by one or more processors, cause: populating an output array of messages with the set of messages from the plurality of input streams; and prior to processing the batch, and in response to determining that inclusion of a next message in the batch would violate a particular batch processing constraint of the one or more batch processing constraints: adding one or more additional messages, from the plurality of input streams, to the batch such that all additional messages from the same input stream maintain the ordering that said all additional messages had within said same input stream, wherein the one or more additional messages are messages that follow the next message in the output array, and wherein addition of the one or more additional messages to the batch does not violate the particular batch processing constraint. 18. The one or more non-transitory computer-readable media of claim 17 , wherein the one or more sequences of instructions further comprise instructions that, when executed by one or more processors, cause identifying the one or more additional messages by: determining one or more excluded input streams of the plurality of input streams; wherein each excluded input stream, of t
Message passing systems or structures, e.g. queues · CPC title
Queue · CPC title
Establishing or using transaction specific rules · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.