Time ordered message serializer
AssigneeGeneral Motors Corporation
InventorsPrimo Mark Pettovello, Charles A. Wiley, Kenan G. Dalley
Life of this patent
Estimating the term…
Abstract
A system and method for processing a plurality of vehicle messages, wherein the method comprises: receiving a plurality of vehicle messages from a plurality of vehicles; generating a key n-tuple including a key and a time indicator for each of the vehicle messages; storing each of the vehicle messages in a data structure that comprises a priority queue for each key; storing each of the key n-tuples in a timer queue; obtaining a key n-tuple from the timer queue; recalling a vehicle message from a corresponding priority queue; and sending the vehicle message to at least one of a plurality of compute nodes.
Claims12
A method for processing a plurality of vehicle messages, wherein the method is carried out by a remote server cluster that includes a timer serializer and a plurality of compute nodes, wherein the time serializer includes one or more processors and the plurality of compute nodes are implemented by at least one processor, wherein the method comprises:
- receiving a plurality of vehicle messages at the time serializer from a plurality of vehicles;
- in response to the receiving step, generating an expiration timer and a key n-tuple including a key and a time indicator for each of the vehicle messages, wherein the generating step is carried out by the time serializer;
- storing each of the vehicle messages in a corresponding priority queue of a data structure, wherein the data structure includes a priority queue for each key;
- storing each of the expiration timers and the key n-tuple in a timer queue;
- obtaining a key n-tuple from the timer queue where the expiration timer associated with the key-time pair is expired;
- determining whether at least one vehicle message that is currently being processed by at least one of the plurality of compute nodes has the same key as the key of the obtained key-time pair and, when it is determined that the at least one vehicle message has the same key as the key of the obtained key-time pair, re-queueing the obtained key n-tuple, resetting the expiration timer associated with the key n-tuple to an initial value, and obtaining another key n-tuple from the timer queue;
- recalling a vehicle message from a corresponding priority queue;
- and
- sending the vehicle message to at least one of a plurality of compute nodes.
A method for processing a plurality of vehicle messages, wherein the method is carried out by a remote server cluster that includes a timer serializer and a plurality of compute nodes, wherein the time serializer includes one or more processors and the plurality of compute nodes are implemented by at least one processor, wherein the method comprises:
- receiving a plurality of vehicle messages at the time serializer from one or more vehicles;
- storing a key-time pair including a key and a time indicator for each of the plurality of vehicle messages in a timer queue of the time serializer;
- storing each of the vehicle messages in a data structure that includes a priority queue for each key, and wherein each of the vehicle messages are stored in a priority queue that corresponds to the key that was generated for that vehicle message, wherein each of the priority queues are separate from the timer queue;
- receiving an indication that a compute node of the plurality of compute nodes is available to process a vehicle message;
- recalling a next key-time pair from the timer queue;
- determining whether a vehicle message with an associated key identical to the key of the next key-time pair is presently being processed in at least one compute node of the plurality of compute nodes by inspecting an in-flight table that is stored in memory of the remote server cluster, wherein the in-flight table stores one or more keys that correspond to one or more vehicle messages that are currently being processed;
- when it is determined that a vehicle message with an associated key identical to the key of the next key-time pair is presently being processed in at least one compute node, re-queueing the next key-time pair in the timer queue and repeating at least the recalling step for another next key-time pair;
- and
- when it is determined that a vehicle message with an associated key identical to the key of the next key-time pair is not presently being processed in at least one compute node, dispatching the oldest vehicle message in the priority queue that corresponds to the key of the next key-time pair to the compute node.
A method for processing a plurality of messages, wherein the method is carried out by a server cluster that includes a timer serializer and a plurality of compute nodes, wherein the time serializer includes one or more processors and the plurality of compute nodes are implemented by at least one processor, wherein the method comprises:
- receiving a plurality of time-sensitive messages from one or more remote devices at the server cluster;
- storing a key-time pair including a key and a time indicator for each of the plurality of messages in a timer queue of the time serializer;
- grouping messages with identical keys into the same time-sensitive set of messages using the time serializer;
- storing each of the messages in a data structure that includes a priority queue for each key, and wherein each of the messages are stored in a priority queue that corresponds to the key that was generated for that message;
- receiving an indication that processing of a message has been completed;
- recalling a next key-time pair from the timer queue;
- determining whether a message with a key identical to the key of the next key-time pair is presently being processed in at least one compute node of the plurality of compute nodes by inspecting an in-flight table that is stored in memory of the server cluster, wherein the in-flight table stores one or more keys that correspond to one or more messages that are currently being processed;
- when it is determined that a message with an associated key identical to the key of the next key-time pair is presently being processed in at least one compute node, re-queueing the next key-time pair in the timer queue and repeating at least the recalling step for another next key-time pair;
- and
- when it is determined that a vehicle message with an associated key identical to the key of the next key-time pair is not presently being processed in at least one compute node, dispatching the oldest message in the priority queue that corresponds to the key of the next key-time pair to a compute node of the plurality of compute nodes.
Dependencies are inferred from the claim text.