IP Library Granted Patent US 11,681,569
Granted Patent B2
US 11,681,569 · App. 16/881,302 · Granted Jun 20, 2023

Streaming data pipeline with batch performance

Inventors: Michael Pippin (Sunnyvale, CA); David Willcox (Urbana, IL); Allie K. Watfa (Urbana, IL); George Aleksandrovich (Hoffman Estates, IL); Jacob Tolar (Champaign, IL)
Assignee: YAHOO ASSETS LLC
G06F9/542G06F9/544G06F9/546G06F16/182G06F16/244G06F16/2456G06F16/24568
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 11,681,569
App. No.
16/881,302
Granted
Jun 20, 2023
Kind
B2
Abstract

Disclosed are embodiments for providing batch performance using a stream processor. In one embodiment, a system is disclosed comprising a stream processor configured to process events emitted by an event stream and output processed events; a queue configured to receive the processed events from the stream processor; a spooler configured to read the processed events from the queue and write the processed events to a buffer; and an auditor process configured to extract a written event from the buffer and confirm that the written event matches an event present in the event stream.

Claims (36)

1. A system comprising:

a stream processor configured to process events emitted by an event stream and output processed events;

a queue configured to receive the processed events from the stream processor;

a spooler configured to read the processed events from the queue, write the processed events to a buffer, and remove duplicated events in the buffer, the duplicated events including a composite event and an unjoined event processed by the stream processor before the composite event, the composite event including data associated with the unjoined event and data associated with a secondary event received after the unjoined event, the composite event created by the stream processor after receiving the secondary event; and

an auditor process configured to extract a written event from the buffer and confirm that the written event matches an event present in the event stream.

2. The system of claim 1 , the stream processor further configured to guarantee at-least-once delivery of a respective event to the queue.

3. The system of claim 1 , the stream processor further configured to detect and drop a duplicate event in the event stream.

4. The system of claim 1 , the stream processor further configured to perform an operation on the events, the operation selected from the group consisting of join, annotate, and aggregation operations.

5. The system of claim 1 , the stream processor comprising a stream topology.

6. The system of claim 1 , the spooler configured to write the processed events to a distributed file system.

7. The system of claim 6 , the spooler configured to segment the processed events into pre-configured batch intervals prior to writing the processed events to the distributed file system.

8. The system of claim 6 , the spooler configured to guarantee that a processed event of the processed events is written exactly once to the distributed file system.

9. The system of claim 1 , the auditor process further configured to transmit the written event to the stream processor for re-processing upon detecting that the written event does not match an event present in the event stream.

10. The system of claim 1 , further comprising a certified data store, the auditor process further configured to store the written event in the certified data store upon detecting that the written event matches an event present in the event stream.

11. A method comprising:

processing, by a stream processor, events emitted by an event stream;

receiving, at a queue, the processed events from the stream processor;

reading, by a spooler, the processed events from the queue;

writing, by the spooler, the processed events to a buffer;

removing, by the spooler, duplicated events in the buffer, the duplicated events including a composite event and an unjoined event processed by the stream processor before the composite event, the composite event including data associated with the unjoined event and data associated with a secondary event received after the unjoined event, the composite event created by the stream processor after receiving the secondary event; and

extracting, by an auditor process, a written event from a file system and confirming that the written event matches an event present in the event stream.

12. The method of claim 11 , further comprising guaranteeing, by the stream processor, at-least-once delivery of a respective event to the queue.

13. The method of claim 11 , further comprising detecting and dropping, by the stream processor, a duplicate event in the event stream.

14. The method of claim 11 , performing, by the stream processor, an operation on the events, the operation selected from the group consisting of join, annotate, and aggregation operations.

15. The method of claim 11 , further comprising writing, by the spooler, the processed events to a distributed file system.

16. The method of claim 15 , further comprising segmenting, by the spooler, the processed events into pre-configured batch intervals prior to writing the processed events to the distributed file system.

17. The method of claim 15 , guaranteeing, by the spooler, that a processed event of the processed events is written exactly once to the distributed file system.

18. The method of claim 11 , transmitting, by the auditor process, the written event to the stream processor for re-processing upon detecting that the written event does not match an event present in the event stream.

19. The method of claim 11 , storing, by the auditor process, the written event in a certified data store upon detecting that the written event matches an event present in the event stream.

20. A non-transitory computer-readable storage medium tangibly storing computer program instructions capable of being executed by a computer processor, the computer program instructions defining steps of:

processing, by a stream processor, events emitted by an event stream;

receiving, at a queue, the processed events from the stream processor;

reading, by a spooler, the processed events from the queue;

writing, by the spooler, the processed events to a buffer;

removing, by the spooler, duplicated events in the buffer, the duplicated events including a composite event and an unjoined event processed by the stream processor before the composite event, the composite event including data associated with the unjoined event and data associated with a secondary event received after the unjoined event, the composite event created by the stream processor after receiving the secondary event; and

extracting, by an auditor process, a written event from the buffer and confirming that the written event matches an event present in the event stream.

Assignments (4)
PATENT SECURITY AGREEMENT (FIRST LIEN) Recorded Sep 29, 2022
From: YAHOO ASSETS LLC
To: ROYAL BANK OF CANADA, AS COLLATERAL AGENT
Reel/Frame 061571/0773 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2021
From: YAHOO AD TECH LLC (FORMERLY VERIZON MEDIA INC.)
To: YAHOO ASSETS LLC
Reel/Frame 058982/0282 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2020
From: OATH INC.
To: VERIZON MEDIA INC.
Reel/Frame 054258/0635 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2020
From: PIPPIN, MICHAEL; WILLCOX, DAVID; WATFA, ALLIE K.; ALEKSANDROVICH, GEORGE; TOLAR, JACOB
To: OATH INC.
Reel/Frame 052733/0181 →