IP Library Granted Patent US 11,212,369
Granted Patent B2
US 11,212,369 · App. 16/658,615 · Granted Dec 28, 2021

Distributed storage of state information and session recovery using state information

Inventors: Dan Leverett Clark (Portland, OR); David A. Romrell (Hillsboro, OR)
Assignee: ARRIS Enterprises LLC
H04L67/42H04L9/0643H04L63/166H04L63/20H04L65/601H04L67/14
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,212,369
App. No.
16/658,615
Filed
Oct 21, 2019
Granted
Dec 28, 2021
Kind
B2
Art Unit
2454
USPC
709/203
Abstract

A method for storing session state data of a session between a system having a plurality of nodes and a client device includes delivering a service to the client device during a session identified or otherwise specified by a session identifier. The service is delivered by a first of the plurality of nodes in the system. During the session, at least a second node in the system is selected on which session state data associated with the session is to be saved. The second node is selected based on the session identifier such that another node in the system is able to locate the session state data when stored on the second node from the session identifier without contacting a centralized mechanism that specifies where session state data is stored. The session state data is saved to the second node that is selected.

Claims (33)

1. A method for storing session state data of a session between a system having a plurality of nodes and a client device, comprising:

delivering a service to the client device during a session specified by a session identifier, the service being delivered by a first node of the plurality of nodes in the system;

during the session, the first node using the session identifier to uniquely identify and select, from among a plurality of other nodes at least a second node in the system on which session state data associated with the session is to be saved, such that another node in the system is able to resume the session after locating the session state data using the session identifier, and without contacting a centralized mechanism that specifies where session state data is stored; and

saving the session state data to the second node that is selected.

2. The method of claim 1 , further comprising generating a hash of the session identifier, wherein selecting at least the second node includes mapping the hash of the session identifier to indices of the nodes in the system to identify the second node that is to be selected for storing the session state data.

3. The method of claim 1 , wherein selecting at least a second node in the system on which the session state data is to be saved includes selecting a plurality of nodes in the system on which the session state is to be saved, a number of nodes in the plurality of nodes being based on a previously established system policy.

4. The method of claim 2 , wherein the session identifier is a universally unique identifier (UUID) that is unique within the system for no more than a specified period of time.

5. The method of claim 1 , wherein the session state data that is saved includes sufficient data to resume the session when another node other than the first node obtains the session state data from the second node and delivers the service to the client device upon resuming the session.

6. The method of claim 1 , further comprising, subsequent to an interruption in delivery of the service from the first node to the client device:

receiving a session resume request from the client device at a third node in the system, the session resume request including information allowing the third node to obtain the session identifier;

hashing the session identifier;

identifying the second node on which the session state data for the session is stored based on the hash of the session identifier;

obtaining the session state data from the second node; and

using the session state data so that the third node is able to resume delivery of service to the client device.

7. The method of claim 1 , wherein the system is a system for delivering adaptive bit rate (ABR) streaming content to the client device, each of the nodes of the system including an instance of a manifest manipulator delivering ABR manifests to the client device, wherein the service being delivered to the client device includes delivery of ABR streaming content to the client device.

8. The method of claim 7 , wherein the plurality of nodes are grouped into different clusters of nodes and selecting the second node in the system on which the session state data associated with the session is to be saved further comprises selecting the second node based in part on a previously established system policy concerning those clusters of nodes in which session state data may be saved by the first node.

9. The method of claim 1 , wherein the session state data has a shard count greater than or equal to one and wherein selecting at least a second node in the system on which the session state data is to be saved includes selecting a plurality of nodes in the system on which the session state is to be saved, each of the node is the plurality of nodes saving a different shard of the session state data.

10. The method of claim 1 , wherein at least two different shards of the session state data are periodically saved at different time intervals.

11. The method of claim 1 , wherein at least two different shards of the session state data have different times to live.

12. Computer-readable storage media having computer executable instructions for implementing a method for resuming a session that has been interrupted between a system having a plurality of nodes and a client device, the method comprising;

subsequent to interruption of service in a session between a first node and a client device in which the first node delivers a service to the client device, receiving a session resume request from the client device at a third node in the system, the session resume request including information allowing the third node to obtain a session identifier specifying the session;

hashing the session identifier;

identifying, by the third node, a second node on which the session state data for the session is stored based on the hash of the session identifier without contacting a centralized mechanism that specifies where session state data is stored;

obtaining the session state data from the second node; and

using the session state data so that the third node is able to resume delivery of service to the client device.

13. The computer-readable medium of claim 12 , wherein identifying the second node includes mapping the hash of the session identifier to indices of the nodes in the system to identify the second node that is to be selected for storing the session state data.

14. The computer-readable medium of claim 12 , wherein the plurality of nodes are grouped into different clusters of nodes and identifying the second node in the system on which the session state data associated with the session is saved further comprises identifying the second node based in part on a previously established system policy concerning those clusters of nodes in which session state data may be saved by the first node.

15. The computer-readable medium of claim 14 , wherein the established system policy dictates that session state data is to be saved on a plurality of nodes in the system and that attempts to retrieve stored session state data first attempt to retrieve the stored session state data from a cluster in which both a node attempting to retrieve the session state data and a node storing the session state data are both located before attempting to retrieve the session state data from a node in another cluster.

16. The computer-readable medium of claim 12 , wherein the session identifier is a universally unique identifier (UUID) that is unique within the system for no more than a specified period of time.

17. The computer-readable medium of claim 12 , wherein the system is a system for delivering adaptive bit rate (ABR) streaming content to the client device, each of the nodes of the system including an instance of a manifest manipulator delivering ABR manifests to the client device, wherein the service being delivered to the client device includes delivery of ABR streaming content to the client device.

18. The computer-readable medium of claim 12 , wherein the session state data has a shard count greater than 1.

19. The computer-readable medium of claim 18 , wherein identifying the second node includes identifying a plurality of nodes on each of which a different shard of the session state data is saved and further comprising obtaining each of the different shards of the session state data from the plurality of nodes.

20. The computer-readable medium of claim 12 , wherein each of the nodes includes a server resource that deliver services to client devices.

Assignments (8)
SECURITY INTEREST Recorded Apr 8, 2026
From: ARRIS ENTERPRISES LLC; RUCKUS IP HOLDINGS LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 075476/0814 →
RELEASE OF SECURITY INTEREST AT REEL/FRAME 058843/0712 Recorded Jan 12, 2026
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: ARRIS ENTERPRISES LLC; COMMSCOPE NORTH CAROLINA, LLC (F/K/A COMMSCOPE, INC. OF NORTH CAROLINA); COMMSCOPE TECHNOLOGIES LLC
Reel/Frame 074591/0389 →
RELEASE OF SECURITY INTEREST AT REEL/FRAME 058875/0449 Recorded Dec 19, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: ARRIS ENTERPRISES LLC (F/K/A ARRIS ENTERPRISES, INC.); COMMSCOPE, INC. OF NORTH CAROLINA; COMMSCOPE TECHNOLOGIES LLC
Reel/Frame 069743/0057 →
SECURITY INTEREST Recorded Dec 17, 2024
From: ARRIS ENTERPRISES LLC; COMMSCOPE TECHNOLOGIES LLC; COMMSCOPE INC., OF NORTH CAROLINA; OUTDOOR WIRELESS NETWORKS LLC; RUCKUS IP HOLDINGS LLC
To: APOLLO ADMINISTRATIVE AGENCY LLC
Reel/Frame 069889/0114 →
SECURITY INTEREST Recorded Nov 19, 2021
From: ARRIS SOLUTIONS, INC.; ARRIS ENTERPRISES LLC; COMMSCOPE TECHNOLOGIES LLC; COMMSCOPE, INC. OF NORTH CAROLINA; RUCKUS WIRELESS, INC.
To: WILMINGTON TRUST
Reel/Frame 060752/0001 →
TERM LOAN SECURITY AGREEMENT Recorded Nov 15, 2021
From: ARRIS ENTERPRISES LLC; COMMSCOPE TECHNOLOGIES LLC; COMMSCOPE, INC. OF NORTH CAROLINA
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 058875/0449 →
ABL SECURITY AGREEMENT Recorded Nov 15, 2021
From: ARRIS ENTERPRISES LLC; COMMSCOPE TECHNOLOGIES LLC; COMMSCOPE, INC. OF NORTH CAROLINA
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 058843/0712 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2021
From: CLARK, DAN LEVERETT; ROMRELL, DAVID A.
To: ARRIS ENTERPRISES LLC
Reel/Frame 057621/0752 →
Continuity (2)
Provisional Application 62747854 · Oct 19, 2018
Related Publication 20200128108A1 · Apr 23, 2020