IP Library Granted Patent US 9,298,801
Granted Patent B2
US 9,298,801 · App. 14/036,581 · Granted Mar 29, 2016

Managing multiple windows on an operator graph

Inventors: Michael J. Branson (Rochester, MN); Bradford L. Cobb (Cedar Park, TX); John M. Santosuosso (Rochester, MN)
Assignee: International Business Machines Corporation
G06F17/30598G06F17/30572
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,298,801
App. No.
14/036,581
Granted
Mar 29, 2016
Kind
B2
Abstract

Embodiments of the disclosure provide a method, system, and computer program product for managing a windowing operation. The method for grouping processing of a stream of tuples with each tuple containing one or more attributes can include receiving the stream of tuples to be processed by a plurality of processing elements operating on one or more computer processors. The method can also include processing, with a first processing method, a group of tuples from the stream of tuples into a grouping window. The method can also include processing, with a second processing method, a subgroup of tuples from the group of tuples into a subgrouping window. The second processing method can include identifying a sub-membership condition.

Claims (36)

1. A method for processing a stream of tuples, each tuple containing one or more attributes, comprising:

receiving the stream of tuples to be processed by a plurality of processing elements operating on one or more computer processors;

processing, with a first processing method, a group of tuples from the stream of tuples into a grouping window, wherein the first processing method includes:

identifying a membership condition,

determining whether the membership condition is met by a tuple from the stream of tuples,

evicting the tuple from the grouping window in response to the membership condition being unmet, and

including the tuple in the grouping window in response to the membership condition being met, and

processing, with a second processing method, a subgroup of tuples from the group of tuples into a subgrouping window, wherein the second processing method includes:

identifying a sub-membership condition,

determining whether the sub-membership condition is met by a tuple from the group of tuples, wherein the membership condition and the sub-membership condition are not the same condition type, and

including the tuple in the subgrouping window in response to the sub-membership condition being met.

2. The method of claim 1 , further comprising:

removing the subgroup of tuples from the group of tuples; and

processing the group of tuples without the subgroup of tuples.

3. The method of claim 1 , wherein identifying a membership condition includes:

selecting a time-based windowing operation; and

identifying a time for the membership condition.

4. The method of claim 1 , wherein identifying a membership condition includes:

selecting a tuple count-based windowing operation; and

identifying a tuple count for the membership condition.

5. The method of claim 1 , wherein identifying a membership condition includes:

selecting a sentinel value-based windowing operation; and

identifying a sentinel value for the membership condition.

6. The method of claim 5 , wherein the sentinel value is a combination of two or more different attributes.

7. The method of claim 5 , wherein identifying the sentinel value includes identifying a tuple with the sentinel value.

8. The method of claim 1 , wherein the processing a subgroup of tuples includes:

evicting the tuple from the grouping window in response to the membership condition being unmet.

9. The method of claim 8 , wherein the evicting occurs in response to a timing error, wherein the timing error occurs when there is a time delay between a first time stamp when a first tuple from the stream of tuples is transmitted, and a second time stamp when the first tuple is received.

10. The method of claim 9 , wherein the timing error has a tolerance level that is adjustable, wherein the tolerance level is a buffer to hold a certain number of tuples in order to rearrange the receipt of tuples.

11. The method of claim 1 , further comprising:

processing, with a third processing method, a second subgroup of tuples from the group of tuples into a second subgrouping window, wherein the third processing method includes:

identifying a second sub-membership condition,

determining whether the second sub-membership condition is met by a tuple from the group of tuples and from the subgroup of tuples, and

including the tuple in the second subgrouping window in response to the second sub-membership condition being met.

12. The method of claim 1 , wherein the windowing operation determines the start and stop of the group of tuples.

13. The method of claim 1 , wherein determining whether the sub-membership condition is met by a tuple from the group of tuples includes determining whether there is a sub-grouping window exclusion specified for the tuple.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 25, 2013
From: BRANSON, MICHAEL J.; COBB, BRADFORD L.; SANTOSUOSSO, JOHN M.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 031278/0224 →
Continuity (1)
Related Publication 20150088887A1 · Mar 26, 2015