# US 12,003,588 B2 · Coalescing packets with multiple writers in a stateless network function

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,003,588 B2
- Document ID: US12003588B2
- Status: Granted
- Kind: B2
- Application number: 17/711,774
- Filed: 2022-04-01
- Published: 2022-10-13
- Granted: 2024-06-04
- Earliest claimed: 2021-04-01
- Assignees: Stateless, Inc.
- Applicants: Stateless, Inc.
- Inventors: Daniel Noland; Ofer Hirsch Gill
- Web page: https://patentgrep.com/patent/US12003588B2

## CPC

- G06F 16/24568: {Data stream processing; Continuous queries}
- H04L 67/142: Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
- H04L 43/028: by filtering
- H04L 69/169: {Special adaptations of TCP, UDP or IP for interworking of IP based networks with other networks (protocols for interworking, protocol conversion H04L69/08)}
- H04L 67/56: Provisioning of proxy services (store-and-forward switching systems in data switching networks H04L12/54)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method including receiving a batch of events at a processing system of a distributed stream processing system including multiple processing systems in data communication with a shared state data store. The method also can include determining, at the processing system, database operations associated with the events. The method additionally can include coalescing, at the processing system, the database operations into one or more speculative database operations with one or more associated reject rules. The processing system stores a speculative state of at least a portion of the shared state data store. The one or more associated reject rules are based on the speculative state. The method further can include sending the one or more speculative database operations and the one or more associated reject rules from the processing system to the shared state data store to cause the shared state data store to determine whether to reject one or more of the one or more speculative database operations based on an authoritative state in the shared state data store. The method additionally can include receiving, at the processing system, one or more responses from the shared state data store. Other embodiments are described.

## Claims

### Claim 1

A method comprising:
receiving a batch of events at a processing system of a distributed stream processing system comprising multiple processing systems in data communication with a shared state data store;
determining, at the processing system, database operations associated with the events;
coalescing, at the processing system, the database operations into one or more speculative database operations with one or more associated reject rules, wherein the processing system stores a speculative state of at least a portion of the shared state data store, and wherein the one or more associated reject rules are based on the speculative state;
sending the one or more speculative database operations and the one or more associated reject rules from the processing system to the shared state data store to cause the shared state data store to determine whether to reject one or more of the one or more speculative database operations based on an authoritative state in the shared state data store; and
receiving, at the processing system, one or more responses from the shared state data store, wherein the one or more responses comprise one or more rejections of the one or more speculative database operations.

### Claim 2 (depends on 1)

The method of claim 1 further comprising:
updating the speculative state in the processing system based on the one or more responses from the shared state data store.

### Claim 3 (depends on 1)

The method of claim 1 further comprising:
rejecting one or more of the events based on the one or more responses.

### Claim 4 (depends on 1)

The method of claim 1, wherein:
the processing system implements a stateless network function; and
the shared state data store is located outside the multiple processing systems.

### Claim 5 (depends on 4)

The method of claim 4, wherein:
the stateless network function is one of a packet filter, a network address translator, a router, or an IPSec protocol.

### Claim 6 (depends on 1)

The method of claim 1 further comprising: updating the speculative state in the processing system based on the one or more responses from the shared state data store; and rejecting one or more of the events based on the one or more responses, wherein: the processing system implements a stateless network function; the shared state data store is located outside the multiple processing systems; and the stateless network function is one of a packet filter, a network address translator, a router, or an IPSec protocol.

### Claim 7

One or more non-transitory computer-readable media storing computing instructions that, when executed on a processor, cause the processor to perform:
receiving a batch of events at a processing system of a distributed stream processing system comprising multiple processing systems in data communication with a shared state data store;
determining, at the processing system, database operations associated with the events;
coalescing, at the processing system, the database operations into one or more speculative database operations with one or more associated reject rules, wherein the processing system stores a speculative state of at least a portion of the shared state data store, and wherein the one or more associated reject rules are based on the speculative state;
sending the one or more speculative database operations and the one or more associated reject rules from the processing system to the shared state data store to cause the shared state data store to determine whether to reject one or more of the one or more speculative database operations based on an authoritative state in the shared state data store; and
receiving, at the processing system, one or more responses from the shared state data store, wherein the one or more responses comprise one or more rejections of the one or more speculative database operations.

### Claim 8 (depends on 7)

The one or more non-transitory computer-readable media of claim 7, wherein the computing instructions, when executed on the processor, further cause the processor to perform:
updating the speculative state in the processing system based on the one or more responses from the shared state data store.

### Claim 9 (depends on 7)

The one or more non-transitory computer-readable media of claim 7, wherein the computing instructions, when executed on the processor, further cause the processor to perform:
rejecting one or more of the events based on the one or more responses.

### Claim 10 (depends on 7)

The one or more non-transitory computer-readable media of claim 7, wherein:
the processing system implements a stateless network function; and
the shared state data store is located outside the multiple processing systems.

### Claim 11 (depends on 7)

The one or more non-transitory computer-readable media of claim 7, wherein the computing instructions, when executed on the processor, further cause the processor to perform: updating the speculative state in the processing system based on the one or more responses from the shared state data store; and rejecting one or more of the events based on the one or more responses, wherein: the processing system implements a stateless network function; the shared state data store is located outside the multiple processing systems; and the stateless network function is one of a packet filter, a network address translator, a router, or an IPSec protocol.

### Claim 12

A system comprising:
a processor; and
one or more non-transitory computer-readable media storing computing instructions that, when executed on the processor, cause the processor to perform:
receiving a batch of events at a processing system of a distributed stream processing system comprising multiple processing systems in data communication with a shared state data store;
determining, at the processing system, database operations associated with the events;
coalescing, at the processing system, the database operations into one or more speculative database operations with one or more associated reject rules, wherein the processing system stores a speculative state of at least a portion of the shared state data store, and wherein the one or more associated reject rules are based on the speculative state;
sending the one or more speculative database operations and the one or more associated reject rules from the processing system to the shared state data store to cause the shared state data store to determine whether to reject one or more of the one or more speculative database operations based on an authoritative state in the shared state data store; and
receiving, at the processing system, one or more responses from the shared state data store, wherein the one or more responses comprise one or more rejections of the one or more speculative database operations.

### Claim 13 (depends on 12)

The system of claim 12, wherein the computing instructions, when executed on the processor, further cause the processor to perform:
updating the speculative state in the processing system based on the one or more responses from the shared state data store.

### Claim 14 (depends on 12)

The system of claim 12, wherein the computing instructions, when executed on the processor, further cause the processor to perform:
rejecting one or more of the events based on the one or more responses.

### Claim 15 (depends on 12)

The system of claim 12, wherein:
the processing system implements a stateless network function; and
the shared state data store is located outside the multiple processing systems.

### Claim 16 (depends on 15)

The system of claim 15, wherein:
the stateless network function is one of a packet filter, a network address translator, a router, or an IPSec protocol.

### Claim 17 (depends on 12)

The system of claim 12, wherein the computing instructions, when executed on the processor, further cause the processor to perform: updating the speculative state in the processing system based on the one or more responses from the shared state data store; and rejecting one or more of the events based on the one or more responses, wherein: the processing system implements a stateless network function; the shared state data store is located outside the multiple processing systems; and the stateless network function is one of a packet filter, a network address translator, a router, or an IPSec protocol.
