IP Library › Granted Patent US 10,942,927
Granted Patent B2
US 10,942,927 · App. 16/608,225 · Granted Mar 9, 2021

Subscription handling and in-memory alignment of unsynchronized real-time data streams

Inventor: Michael Sonst (Alpharetta, GA)
Assignee: Siemens Aktiengesellschaft
G06F16/24568G06F8/458G06F16/22G06F16/951
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 10,942,927
App. No.
16/608,225
Granted
Mar 9, 2021
Kind
B2
Abstract

Methods for subscription handling and in-memory alignment of unsynchronized real-time data streams. A method ( 500 ) includes receiving a subscription ( 631 ) containing a signal identifier ( 626 ), and unsynchronized data ( 640 ). The method also includes detecting if the unsynchronized data for an actual time of measurement (ATM) timestamp ( 615 ) has completely arrived, and aligning ( 505 ) the unsynchronized data in predefined time slots ( 610 ). The method further includes filling ( 510 ) in data gaps ( 805 ) in the unsynchronized data for the ATM timestamp, and handling ( 520 ) the subscription using values ( 642 ) from the unsynchronized data for the ATM timestamp, and performing ( 515 ) memory protection when the subscription is handling inefficiently.

Claims (59)

1. A method for subscription handling and in-memory alignment of unsynchronized real-time data streams and comprising:

receiving a subscription comprising a signal identifier, the signal identifier being associated with a value that is required for handling the subscription;

receiving unsynchronized data points, each data point comprising an actual time of measurement (ATM) timestamp, the signal identifier and the value;

handling the subscription using the unsynchronized data points by:

aligning the unsynchronized data points in predefined time slots, the predefined time slots comprising masks, wherein a first predefined time slots comprises first values of the unsynchronized data points for a first ATM timestamp and a first mask for validation of the first values of the first ATM timestamp;

executing the subscription using the first values of the first ATM timestamp; and

returning the first predefined time slot to a memory pool for usage as a second predefined time slot for unsynchronized data points of a second ATM timestamp.

2. The method of claim 1 , wherein the signal identifier indicates signals required for handling the subscription.

3. The method of claim 1 , wherein the predefined time slots comprise cells, and wherein the ATM timestamp and the signal identifier are used to deterministically find a column and a row identifying a cell for insertion.

4. The method of claim 1 , wherein handling the subscription further comprises:

when a timeout is detected:

moving the subscription to a next available row, and

returning unhandled rows to a position of an oldest subscription after each cycle.

5. The method of claim 1 , wherein handling the subscription further comprises:

when an overflow is detected:

moving the subscription to an earliest row within a buffer window; and

returning rows outside the buffer window to the memory pool.

6. The method of claim 1 , wherein handling the subscription further comprises:

filling in a data gap in the first predefined time slot for the first ATM timestamp in response to missing valid first values such that the first mask of the first predefined time slot indicates that the first values are valid.

7. The method of claim 6 , further comprising detecting the data gap when a later value corresponding to a later ATM timestamp is received, and

wherein filling in the data gap comprises inserting a value corresponding to one of: an immediately previous value, an average of all values, an interpolated value, or an average of the immediately previous value and an immediately following value, for a signal where the data gap is detected.

8. A data processing system comprising:

an accessible memory; and

a processor coupled to the accessible memory, the processor configured to:

receive a subscription comprising a signal identifier, the signal identifier being associated with a value that is required for handling the subscription;

receive unsynchronized data points, each data point comprising an actual time of measurement (ATM) timestamp, the signal identifier and the value,

handle the subscription using the unsynchronized data points:

align the unsynchronized data points in predefined time slots, the predefined time slots comprising masks, wherein a first predefined timeslot comprises first values for a first ATM timestamp and a first mask for validation of the first values of the first ATM timestamp;

execute the subscription using the first values of the first ATM timestamp; and

return the first predefined time slot to a memory pool for usage as a second predefined timeslot for unsynchronized data points of a second ATM timestamp.

9. The data processing system of claim 8 , wherein the signal identifier indicates signals required for handling the subscription.

10. The data processing system of claim 8 , wherein the predefined time slots comprise cells, and wherein the ATM timestamp and the signal identifier are used to deterministically find a column and a row identifying a cell for insertion of a value.

11. The data processing system of claim 8 , wherein to handle the subscription further comprises:

when a timeout is detected, the processor is further configured to:

move the subscription to a next available row, and

return unhandled rows to a position of an oldest subscription after each cycle.

12. The data processing system of claim 8 , wherein to handle the subscription further comprises:

when an overflow is detected, the processor is further configured to:

move the subscription to an earliest row within a buffer window; and

return rows outside the buffer window to the memory pool.

13. The data processing system of claim 8 , wherein to handle the subscription further comprises to fill in a data gap in the first predefined time slot for the first ATM timestamp in response to missing valid first values such that the first mask of the first predefined time slot indicates that the first values are valid.

14. The data processing system of claim 13 , wherein the processor is further configured to detect the data gap when a later value corresponding to a later ATM timestamp is received,

wherein to fill in the data gap comprises to insert a value corresponding to one of: an immediately previous value, an average of all values, an interpolated value, or an average of the immediately previous value and an immediately following value, for a signal where the data gap is detected.

15. A non-transitory computer-readable medium encoded with executable instructions that, when executed, cause a processor to:

receive a subscription comprising a signal identifier, the signal identifier being associated with a value that is required for handling the subscription;

receive unsynchronized data points, each data point comprising an actual time of measurement (ATM) timestamp, the signal identifier and the value,

handle the subscription using the unsynchronized data points:

align the unsynchronized data points in predefined time slots, the predefined time slots comprising masks, wherein a first predefined timeslot comprises first values for a first ATM timestamp and a first mask for validation of the first values of the first ATM timestamp;

execute the subscription using the first values of the first ATM timestamp; and

return the first predefined time slot to a memory pool for usage as a second predefined timeslot for unsynchronized data points of a second ATM timestamp.

16. The non-transitory computer-readable medium of claim 15 , wherein the signal identifier indicates signals required for handling the subscription.

17. The non-transitory computer-readable medium of claim 15 , wherein the predefined time slots comprise cells, and wherein the ATM timestamp and the signal identifier are used to deterministically find a column and a row identifying a cell for insertion of a value.

18. The non-transitory computer-readable medium of claim 15 , wherein to handle the subscription further comprises:

when a timeout is detected, the processor is further configured to:

move the subscription to a next available row, and

return unhandled rows to a position of an oldest subscription after each cycle.

19. The non-transitory computer-readable medium of claim 15 , wherein to handle the subscription further comprises to fill in a data gap in the first predefined time slot for the first ATM timestamp in response to missing valid first values such that the first mask of the first predefined time slot indicates that the first values are valid.

20. The non-transitory computer-readable medium of claim 19 , wherein the instructions further cause the processor to detect the data gap when a later value corresponding to a later ATM timestamp is received, and

wherein to fill in the data gap comprises to insert a value corresponding to one of: an immediately previous value, an average of all values, an interpolated value, or an average of the immediately previous value and an immediately following value, for a signal where the data gap is detected.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2019
From: SONST, MICHAEL
To: SIEMENS INDUSTRY, INC.
Reel/Frame 050822/0911 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2019
From: SIEMENS INDUSTRY, INC.
To: SIEMENS AKTIENGESELLSCHAFT
Reel/Frame 050823/0025 →
Continuity (1)
Related Publication 20200192902A1 · Jun 18, 2020
Cited By (1)
US 12,379,869