Patent ID: 8117331

Claim:
A method for processing data streams, the method comprising: receiving at least a first data stream into at least a first sliding window of memory; selecting tuples from said at least said first data stream for processing in accordance with at least one data stream operation, where said tuples that are selected represent a subset of all tuples contained within said at least said first sliding window, wherein said selecting tuples from said at least said first data stream comprises: determining a total number of tuples to be selected for processing; and selecting specific tuples for processing in accordance with said total number of tuples, wherein said selecting specific tuples comprises: partitioning said at least said first sliding window into a first plurality of sub-windows; partitioning at least a second sliding window for receiving at least a second data stream into at least a second plurality of sub-windows; sorting said first plurality of sub-windows into a first prioritized array of sub-windows, wherein said tuples from said first data stream are sorted within said first prioritized array of sub-windows in a descending order based on a number of output tuples that each of said tuples from said first data stream is expected to produce when compared to a tuple from among tuples from said at least said second data stream; sorting said at least said second plurality of sub-windows into a second prioritized array of sub-windows, wherein said tuples from said second data stream are sorted within said second prioritized array of sub-windows in a descending order based on a number of output tuples that each of said tuples from said second data stream is expected to produce when compared to a tuple from among said tuples from said first data stream; and ignoring tuples from said at least said first data stream that are not selected for processing.