IP Library Granted Patent US 11,726,989
Granted Patent B2
US 11,726,989 · App. 17/443,051 · Granted Aug 15, 2023

Byte queue parsing in high-performance network messaging architecture

Inventor: Eric Tesse (New York, NY)
Assignee: TD Ameritrade IP Company, Inc.
G06F16/2379G06F12/0223G06F16/2255G06F16/2264G06F16/2358G06F16/24562G06F16/90344H04L69/324G06F2212/1041
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,726,989
App. No.
17/443,051
Granted
Aug 15, 2023
Kind
B2
Abstract

A computationally-efficient system for encoding a message object implements instructions including determining a token of the message object. The token identifies a structure of the message object. The instructions include obtaining a dictionary definition based on the token. The dictionary definition describes the structure of the message. The message includes multiple entries. Each of the entries is characterized by a data type and a field identifier. The dictionary definition defines an order of the entries. The instructions include, according to an order specified by the dictionary definition, selecting each entry of a set of entries in the message in sequence and writing the entry to a byte queue exclusive of the data type and the field identifier. The instructions include initiating transmission of the byte queue over a communications network.

Claims (73)

1. A computationally-efficient encoding system for encoding a message object, the system comprising:

memory hardware configured to store instructions; and

processing hardware configured to execute the instructions stored by the memory hardware, wherein the instructions include:

determining a token of the message object, wherein the token identifies a structure of the message object;

obtaining a dictionary definition based on the token, wherein:

the dictionary definition describes the structure of the message object,

the message object includes a plurality of entries,

each of the plurality of entries is characterized by a data type and a field identifier, and

the dictionary definition defines an order of the plurality of entries;

according to the order specified by the dictionary definition, selecting each entry of the plurality of entries in the message object in sequence and writing the entry to a byte queue exclusive of the data type and the field identifier; and

initiating transmission of the byte queue over a communications network.

2. The system of claim 1 wherein the writing the entry to the byte queue includes, in response to the entry being one of a set of primitive data types, writing a value of the entry to the byte queue.

3. The system of claim 2 wherein the set of primitive data types includes Boolean, byte, char, short, int, long, float, and double.

4. The system of claim 1 wherein the writing the entry to the byte queue includes, in response to the entry being an array:

writing a length of the array to the byte queue exclusive of a data type of the array; and

writing each element of the array to the byte queue.

5. The system of claim 1 wherein the writing the entry to the byte queue includes, in response to the entry being a nested message, recursively performing the selecting and writing for entries in the nested message.

6. The system of claim 1 wherein:

the dictionary definition defines, for each of the plurality of entries, a data type; and

the dictionary definition defines, for each of the plurality of entries, a field identifier.

7. The system of claim 1 wherein the instructions include storing a plurality of dictionary entries having a one-to-one relationship with a plurality of tokens.

8. The system of claim 7 wherein the instructions include synchronizing the plurality of dictionary entries with a dictionary server over the communications network.

9. The system of claim 1 wherein initiating transmission of the byte queue includes:

in response to the byte queue having a length less than or equal to a threshold, sending the byte queue to a networking stack for transmission as a packet; and

in response to the length of the byte queue exceeding the threshold, iteratively:

obtaining, without replacement, a number of bytes less than or equal to the threshold from the byte queue, and

sending the obtained bytes to the networking stack for transmission as a packet.

10. The system of claim 9 wherein the sending the obtained bytes to the networking stack includes sending a total packet count as well as a current packet number to the networking stack.

11. The system of claim 9 wherein the packet is one of a user datagram protocol (UDP) datagram and a transmission control protocol (TCP) segment.

12. The system of claim 1 wherein, in response to a transmission mode being user datagram protocol (UDP), initiating transmission of the byte queue includes:

in response to the byte queue having a length less than or equal to a threshold, sending first header data and the byte queue to a networking stack for transmission as a packet; and

in response to the length of the byte queue exceeding the threshold, iteratively:

obtaining, without replacement, a number of bytes less than or equal to the threshold from the byte queue, and

sending second header data and the obtained bytes to the networking stack for transmission as a packet,

wherein the first header data has a different length than the second header data, and

wherein the first header data includes a fixed value indicating that an entirety of the message object is contained in the packet.

13. The system of claim 12 wherein:

the first header data is a single byte; and

the first header data consists of the fixed value.

14. The system of claim 13 wherein, in response to the transmission mode being user datagram protocol (UDP), initiating transmission of the byte queue includes:

in response to the length of the byte queue being less than or equal to the threshold, freeing the byte queue for reuse immediately upon sending the byte queue to the networking stack; and

in response to the length of the byte queue exceeding the threshold, retaining the byte queue for a defined re-request time before freeing the byte queue for reuse.

15. The system of claim 12 wherein the second header data includes an identifier of the message object, a total number of packets, and a serial number of the packet with respect to the total number of packets.

16. The system of claim 12 wherein the threshold is based on a difference between (i) a largest UDP data payload available throughout the communications network and (ii) the length of the first header data.

17. The system of claim 1 wherein:

the system is configured to operate in two selectable modes;

the two selectable modes include a dictionary mode and a plenary mode; and

the instructions include, in the plenary mode, according to an order established by the structure of the message object, selecting each entry of the plurality of entries in the message object in sequence and:

writing the data type of the entry to the byte queue,

writing the field identifier of the entry to the byte queue, and

writing the entry to the byte queue.

18. The system of claim 17 wherein the order in the plenary mode is established by a linked list of the plurality of entries.

19. The system of claim 18 wherein:

the message object includes a head pointer pointing to a first one of the plurality of entries; and

each of the plurality of entries has a next pointer to indicate a next entry in the linked list.

20. A computationally-efficient encoding method for encoding a message object, the method comprising:

determining a token of the message object, wherein the token identifies a structure of the message object;

obtaining a dictionary definition based on the token, wherein:

the dictionary definition describes the structure of the message object,

the message object includes a plurality of entries,

each of the plurality of entries is characterized by a data type and a field identifier, and

the dictionary definition defines an order of the plurality of entries;

according to the order specified by the dictionary definition, selecting each entry of the plurality of entries in the message object in sequence and writing the entry to a byte queue exclusive of the data type and the field identifier; and

initiating transmission of the byte queue over a communications network.

21. A non-transitory computer-readable medium comprising instructions including:

determining a token of a message object, wherein the token identifies a structure of the message object;

obtaining a dictionary definition based on the token, wherein:

the dictionary definition describes the structure of the message object,

the message object includes a plurality of entries,

each of the plurality of entries is characterized by a data type and a field identifier, and

the dictionary definition defines an order of the plurality of entries;

according to the order specified by the dictionary definition, selecting each entry of the plurality of entries in the message object in sequence and writing the entry to a byte queue exclusive of the data type and the field identifier; and

initiating transmission of the byte queue over a communications network.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2023
From: TD AMERITRADE IP COMPANY, INC.
To: CHARLES SCHWAB & CO., INC.
Reel/Frame 064807/0936 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2021
From: TESSE, ERIC, MR.
To: TD AMERITRADE IP COMPANY, INC.
Reel/Frame 056947/0973 →
Continuity (2)
Continuation 17379269 · Jul 19, 2021
Related Publication 20230024819A1 · Jan 26, 2023
Cited By (1)
US 12,253,997