Stream data processing on multiple application timelines

US10949427B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10949427-B2
Application numberUS-201715588299-A
CountryUS
Kind codeB2
Filing dateMay 5, 2017
Priority dateJan 31, 2017
Publication dateMar 16, 2021
Grant dateMar 16, 2021

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Accommodating a particular kind of out-of-order data; namely, when data arrives out-of-order because the data is generated in systems that may have different application timelines. As data arrives, it arrives with a particular partition key. For instance, the partition key might identify the source of the data. The data from each partition key is kept in-order with respect to all other data from that same partition key. That said, data from one key is permitted to have a different timeline as compared to data from any other key. Thus, the data may not be in-order when viewed globally across keys. Rather, data is tolerated to be out-of-order globally so long as the lag in the arrived data is within some tolerated lag. If the data arrives having a time that exceeds the maximum tolerated lag, then the system applies some policy to determine what to do with the delayed data.

First claim

Opening claim text (preview).

What is claimed is: 1. A computing system comprising: one or more processors; one or more computer-readable media having thereon computer-executable instructions that are structured such that, when executed by the one or more processors, cause the computing system to perform steps for performing query processing on streaming data, the steps comprising: receiving a data stream of a plurality of data items for each of a plurality of keys; producing a processable data stream that includes all of the received plurality of items, wherein producing the processable data stream comprises: for each of the data items from the data stream for each of the plurality of keys, ensuring that the data items for each key of the plurality of keys are temporally in order; and for each of the data items in the processable data stream, ensuring that the data items temporally lag no more than a given tolerance in the processable data stream. 2. The computing system in accordance with claim 1 , wherein ensuring that the data items temporally lag no more than a given tolerance comprises the following for each of at least one data item in the received data stream that is determined to temporally lag greater than the given tolerance: dropping the corresponding data item such that the corresponding data item is not included within the processable data stream. 3. The computing system in accordance with claim 1 , wherein ensuring that the data items temporally lag no more than a given tolerance comprises the following for each of at least one data item in the received data stream that is determined to temporally lag greater than the given tolerance: fast forwarding a time stamp of the corresponding data item. 4. The computing system in accordance with claim 1 , wherein ensuring that the data items temporally lag no more than a given tolerance comprises the following for each of at least one data item in the received data stream that is determined to temporally lag greater than the given tolerance: placing the corresponding time stamp in-order in the processable data stream. 5. The computing system in accordance with claim 4 , the steps further comprising: performing one or more query operations on the processable data stream. 6. The computing system in accordance with claim 5 , the query operations comprising per-key query operations. 7. The computing system in accordance with claim 5 , the query operations comprising per-key aggregation operations. 8. The computing system in accordance with claim 5 , the query operations comprising across key-operations. 9. The computing system in accordance with claim 5 , the plurality of keys being a first plurality of keys, the processable data stream being a first processable data stream, the one or more query operations being first one or more query operations, the steps further comprising: for data items from the first processable data stream, ensuring that the data items for the corresponding key of a second plurality of keys are temporally in order when producing a second processable data stream; and performing one or more query operations on the second processable data stream. 10. The computing system in accordance with claim 5 , the plurality of keys being a first plurality of keys, the processable data stream being a first processable data stream, the one or more query operations being first one or more query operations, the steps further comprising: for data items from the first processable data stream, temporally ordering the first processable data stream to generate a second processable data stream; and performing one or more query operations on the second processable data stream. 11. A method for performing query processing on streaming data, the method comprising: receiving a data stream of a plurality of data items for each of a plurality of keys; producing a processable data stream that includes all of the received plurality of items, wherein producing the processable data stream comprises: for each of the data items from the data stream for each of the plurality of keys, ensuring that the data items for each key of the plurality of keys are temporally in order; and for each of the data items in the processable data stream, ensuring that the data items temporally lag no more than a given tolerance in the processable data stream. 12. The method in accordance with claim 11 , wherein ensuring that the data items temporally lag no more than a given tolerance comprises the following for each of at least one data item in the received data stream that is determined to temporally lag greater than the given tolerance: dropping the corresponding data item such that the corresponding data item is not included within the processable data stream. 13. The method in accordance with claim 11 , wherein ensuring that the data items temporally lag no more than a given tolerance comprises the following for each of at least one data item in the received data stream that is determined to temporally lag greater than the given tolerance: fast forwarding a time stamp of the corresponding data item. 14. The method in accordance with claim 11 , wherein ensuring that the data items temporally lag no more than a given tolerance comprises the following for each of at least one data item in the received data stream that is determined to temporally lag greater than the given tolerance: placing the corresponding time stamp in-order in the processable data stream. 15. The computing system in accordance with claim 14 , further comprising: performing one or more query operations on the processable data stream. 16. The method in accordance with claim 15 , the query operations comprising per-key query operations. 17. The method in accordance with claim 15 , the query operations comprising per-key aggregation operations. 18. The method in accordance with claim 15 , the query operations comprising across key-operations. 19. The method in accordance with claim 15 , the plurality of keys being a first plurality of keys, the processable data stream being a first processable data stream, the one or more query operations being first one or more query operations, the method further comprising: for data items from the first processable data stream, ensuring that the data items for the corresponding key of a second plurality of keys are temporally in order when producing a second processable data stream; and performing one or more query operations on the second processable data stream. 20. A computer program product comprising one or more computer-readable storage media that have thereon computer-executable instructions that are structured such that, when executed by one or more processors of a computing system, cause the computing system to perform steps for performing query processing on streaming data, the steps comprising: receiving a data stream of a plurality of data items for each of a plurality of keys; producing a processable data stream that includes all of the received plurality of items, wherein producing the processable data stream comprises: for each of the data items from the data stream for each of the plurality of keys, ensuring that the data items for each key of the plurality of keys are temporally in order; and for each of the data items in the processable data stream, ensuring that the data items temporally lag no more than a given tolerance in the processable data stream. processable data stream.

Assignees

Inventors

Classifications

  • Data stream processing; Continuous queries · CPC title

  • Sorting, i.e. grouping record carriers in numerical or other ordered sequence according to the classification of at least some of the information they carry (by merging two or more sets of carriers in ordered sequence G06F7/16) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10949427B2 cover?
Accommodating a particular kind of out-of-order data; namely, when data arrives out-of-order because the data is generated in systems that may have different application timelines. As data arrives, it arrives with a particular partition key. For instance, the partition key might identify the source of the data. The data from each partition key is kept in-order with respect to all other data fro…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F16/24568. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 16 2021 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).