Parallel processing of an ordered data stream
First Claim
1. A method of parallel processing an ordered input data stream that includes a plurality of input data elements and a corresponding plurality of order keys for indicating an ordering of the input data elements, each order key associated with one of the input data elements, the method comprising:
- storing the ordered input data stream, including storing as part of the input data stream an order key for each of the input data elements, wherein the order keys indicate a total order of all of the input data elements in the ordered input data stream;
processing the stored ordered input data stream in a parallel manner with a plurality of worker units, thereby generating a plurality of sets of output data elements;
storing the plurality of sets of output data elements in a plurality of buffers along with an associated order key for each output data element, each buffer associated with one of the worker units;
outputting an ordered output data stream while the input data stream is being processed in a parallel manner with the plurality of worker units by outputting selected output data elements from the plurality of buffers in an order that is based on the order keys stored in the plurality of buffers;
generating a data structure that includes a plurality of entries, each entry associated with one of the buffers and identifying a next output data element to be output from its associated buffer based on the order keys stored in the buffers; and
selecting output data elements to be output from the buffers based on output data elements identified by the data structure.
2 Assignments
0 Petitions
Accused Products
Abstract
A method of parallel processing an ordered input data stream that includes a plurality of input data elements and a corresponding plurality of order keys for indicating an ordering of the input data elements, with each order key associated with one of the input data elements, includes processing the input data stream in a parallel manner with a plurality of worker units, thereby generating a plurality of sets of output data elements. The plurality of sets of output data elements is stored in a plurality of buffers, with each buffer associated with one of the worker units. An ordered output data stream is output while the input data stream is being processed by outputting selected output data elements from the buffers in an order that is based on the order keys.
-
Citations
17 Claims
-
1. A method of parallel processing an ordered input data stream that includes a plurality of input data elements and a corresponding plurality of order keys for indicating an ordering of the input data elements, each order key associated with one of the input data elements, the method comprising:
-
storing the ordered input data stream, including storing as part of the input data stream an order key for each of the input data elements, wherein the order keys indicate a total order of all of the input data elements in the ordered input data stream; processing the stored ordered input data stream in a parallel manner with a plurality of worker units, thereby generating a plurality of sets of output data elements; storing the plurality of sets of output data elements in a plurality of buffers along with an associated order key for each output data element, each buffer associated with one of the worker units; outputting an ordered output data stream while the input data stream is being processed in a parallel manner with the plurality of worker units by outputting selected output data elements from the plurality of buffers in an order that is based on the order keys stored in the plurality of buffers; generating a data structure that includes a plurality of entries, each entry associated with one of the buffers and identifying a next output data element to be output from its associated buffer based on the order keys stored in the buffers; and selecting output data elements to be output from the buffers based on output data elements identified by the data structure. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A computer-readable storage medium storing computer-executable instructions for performing a method of parallel processing an ordered input data stream that includes a plurality of input data elements and a corresponding plurality of order keys for indicating an ordering of the input data elements, each order key associated with one of the input data elements, the method comprising:
-
storing the ordered input data stream, including storing as part of the input data stream an order key for each of the input data elements, wherein the order keys indicate a total order of all of the input data elements in the ordered input data stream; processing the stored ordered input data stream in a parallel manner with a plurality of worker units, thereby generating a corresponding plurality of sets of output data elements; storing the plurality of sets of output data elements in a corresponding plurality of buffers along with an associated order key for each output data element, each buffer associated with one of the worker units; outputting an ordered output data stream while the input data stream is being processed in a parallel manner with the plurality of worker units by outputting selected output data elements from the plurality of buffers in an order that is based on the order keys stored in the plurality of buffers; generating a data structure that includes a plurality of entries, each entry associated with one of the buffers and identifying a next output data element to be output from its associated buffer based on the order keys stored in the buffers; and selecting output data elements to be output from the buffers based on output data elements identified by the data structure. - View Dependent Claims (17)
-
Specification