IP Library › Granted Patent US 11,113,197
Granted Patent B2
US 11,113,197 · App. 16/378,426 · Granted Sep 7, 2021

Punctuation controlled temporal reference data lookup

Inventors: Boris Shulman (Sammamish, WA); Shoupei Li (Sammamish, WA); Alexander Alperovich (Redmond, WA); Xindi Zhang (Kirkland, WA); Kanstantsyn Zoryn (Redmond, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F12/0842G06F2212/1016G06F2212/608
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,113,197
App. No.
16/378,426
Filed
Apr 8, 2019
Granted
Sep 7, 2021
Kind
B2
Art Unit
2137
USPC
711/118
Abstract

A method for joining an event stream with reference data includes loading a plurality of reference data snapshots from a reference data source into a cache. Punctuation events are supplied that indicate temporal validity for the plurality of reference data snapshots in the cache. A logical barrier is provided that restricts a flow of data events in the event stream to a cache lookup operation based on the punctuation events. The cache lookup operation is performed with respect to the data events in the event stream that are permitted to cross the logical barrier.

Claims (40)

1. A method for joining an event stream with reference data, the method being implemented by a compute processor in an event stream processing system, the method comprising:

sending a request to a reference data manager;

receiving a punctuation event from the reference data manager in response to the request, wherein the punctuation event comprises a punctuation event timestamp, wherein the reference data manager determines the punctuation event timestamp by selecting a highest timestamp out of a plurality of timestamps associated with a plurality of reference data snapshots in a cache, and wherein the reference data manager causes at least one new reference data snapshot to be added to the cache when a difference between the highest timestamp out of the plurality of timestamps associated with the plurality of reference data snapshots in the cache and a timestamp that is associated with a most recent data request sent by the compute processor is less than a predefined threshold value;

providing a logical barrier that restricts a flow of data events in the event stream to a cache lookup operation based on the punctuation event;

performing a first cache lookup operation with respect to a first data event in the event stream, the first data event having a first timestamp that is earlier than the punctuation event timestamp; and

delaying a second cache lookup operation from being performed with respect to a second data event in the event stream, the second data event having a second timestamp that is later than the punctuation event timestamp.

2. The method of claim 1 , wherein providing the logical barrier comprises performing a temporal union between the punctuation event and the event stream.

3. The method of claim 1 , wherein each data event in the event stream having a timestamp that is less than or equal to the punctuation event timestamp is permitted to cross the logical barrier.

4. The method of claim 1 , wherein each data event in the event stream having a timestamp that is greater than the punctuation event timestamp is prevented from crossing the logical barrier.

5. The method of claim 1 , further comprising dynamically updating contents of the cache based on processing of data events in the event stream.

6. The method of claim 1 , wherein:

a plurality of punctuation events are supplied to the compute processor by the reference data manager in response to a plurality of data requests sent by the compute processor; and

the method further comprises determining whether to add one or more new reference data snapshots to the cache based at least in part on the plurality of data requests.

7. The method of claim 1 , further comprising determining whether to delete one or more older reference data snapshots from the cache based at least in part on lookup requests that the compute processor sends to the reference data manager as part of the cache lookup operation.

8. The method of claim 7 , wherein a reference data snapshot is deleted from the cache when a difference between a timestamp that is included in a most recent lookup request that the compute processor sends to the reference data manager and an end time of a valid time range associated with the reference data snapshot is greater than a predefined threshold value.

9. A computer-readable medium comprising instructions that are executable by a compute processor in an event processing system to:

send a request to a reference data manager;

receive a punctuation event from the reference data manager in response to the request, wherein the punctuation event comprises a punctuation event timestamp, wherein the reference data manager determines the punctuation event timestamp by selecting a highest timestamp out of a plurality of timestamps associated with a plurality of reference data snapshots in a cache, and wherein the reference data manager causes at least one new reference data snapshot to be added to the cache when a difference between the highest timestamp out of the plurality of timestamps associated with the plurality of reference data snapshots in the cache and a timestamp that is associated with a most recent data request sent by the compute processor is less than a predefined threshold value;

provide a logical barrier that restricts a flow of data events in an event stream to a cache lookup operation based on the punctuation event;

perform a first cache lookup operation with respect to a first data event in the event stream, the first data event having a first timestamp that is earlier than the punctuation event timestamp; and

delay a second cache lookup operation from being performed with respect to a second data event in the event stream, the second data event having a second timestamp that is later than the punctuation event timestamp.

10. The computer-readable medium of claim 9 , wherein the instructions that are executable by the compute processor to provide the logical barrier comprise instructions that are executable by the compute processor to perform a temporal union between the punctuation event and the event stream.

11. The computer-readable medium of claim 9 , wherein each data event in the event stream having a timestamp that is less than or equal to the punctuation event timestamp is permitted to cross the logical barrier.

12. The computer-readable medium of claim 9 , wherein each data event in the event stream having a timestamp that is greater than the punctuation event timestamp is prevented from crossing the logical barrier.

13. The computer-readable medium of claim 9 , further comprising additional instructions that are executable by the compute processor to dynamically update contents of the cache based on processing of data events in the event stream.

14. The computer-readable medium of claim 9 , wherein:

a plurality of punctuation events are supplied to the compute processor by the reference data manager in response to a plurality of data requests sent by the compute processor; and

the computer-readable medium further comprises additional instructions that are executable by the compute processor to determine whether to add one or more new reference data snapshots to the cache based at least in part on the plurality of data requests.

15. The computer-readable medium of claim 9 , further comprising additional instructions that are executable by the compute processor to determine whether to delete one or more older reference data snapshots from the cache based at least in part on lookup requests that the compute processor sends to the reference data manager as part of the cache lookup operation.

16. The computer-readable medium of claim 15 , wherein a reference data snapshot is deleted from the cache when a difference between a timestamp that is included in a most recent lookup request that the compute processor sends to the reference data manager and an end time of a valid time range associated with the reference data snapshot is greater than a predefined threshold value.

17. An event processing system that is configured to join an event stream with reference data, comprising:

one or more processors;

memory in electronic communication with the one or more processors; and

instructions stored in the memory, the instructions being executable by the one or more processors to:

send a request to a reference data manager;

receive a punctuation event from the reference data manager in response to the request, wherein the punctuation event comprises a punctuation event timestamp, wherein the reference data manager determines the punctuation event timestamp by selecting a highest timestamp out of a plurality of timestamps associated with a plurality of reference data snapshots in a cache, and wherein the reference data manager causes at least one new reference data snapshot to be added to the cache when a difference between the highest timestamp out of the plurality of timestamps associated with the plurality of reference data snapshots in the cache and a timestamp that is associated with a most recent data request sent by the compute processor is less than a predefined threshold value;

provide a logical barrier that restricts a flow of data events in the event stream to a cache lookup operation based on the punctuation event;

perform a first cache lookup operation with respect to a first data event in the event stream, the first data event having a timestamp that is earlier than the punctuation event timestamp; and

delay a second cache lookup operation from being performed with respect to a second data event in the event stream, the second data event having a second timestamp that is later than the punctuation event timestamp.

18. The system of claim 17 , wherein the instructions that are executable by the one or more processors to provide the logical barrier comprise instructions that are executable by the one or more processors to perform a temporal union between the punctuation event and the event stream.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2020
From: LI, SHOUPEI
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 051543/0850 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 3, 2019
From: SHULMAN, BORIS; LI, SHOUPEI; ZORYN, KANSTANTSYN
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 049077/0665 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2019
From: ALPEROVICH, ALEXANDER; ZHANG, XINDI
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 048889/0389 →
Continuity (1)
Related Publication 20200320005A1 · Oct 8, 2020