SIP server architecture for improving latency during message processing
First Claim
1. A system for improving latency during message processing in a network environment, said system comprising:
- an engine tier distributed on a cluster network of computing devices, wherein the engine tier maintains short lived data objects that are local in thread scope, wherein the short lived data objects in the engine tier are garbage collected during thread processing on the engine tier; and
a state tier distributed on the cluster network of said computing devices, wherein the state tier maintains long lived data objects that are global in thread scope, wherein the long lived data objects in the state tier are garbage collected by halting all thread processing in the state tier for a period of time;
wherein the engine tier receives a message associated with a call having call state and upon receiving the message, the engine tierlocks the call state stored in the long lived data objects in the state tier,retrieves the call state from the long lived data objects in the state tier and stores the call state locally in the short lived data objects,processes said message using the call state stored in the short lived data objects locally in the engine tier,updates the call state to the long lived data objects in the state tier with changes caused by the processing of said message, andunlocks said call state in the long lived data objects in the state tier once the call state has been updated;
whereby the halting of all thread processing caused by garbage collecting the long lived objects in the state tier is separated from message processing in the engine tier.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods are provided for improving latency during message processing in a network environment via the use of SIP server architecture. The SIP server can be comprised of an engine tier and a state tier distributed on a cluster network. The engine tier can send and receive messages and execute various processes. The state tier can maintain in-memory state data associated with various SIP sessions. The state tier can store various long lived data objects and the engine tier can contain short lived data objects. The state data can be maintained in partitions comprised of state replicas. When processing messages, the engine can pull state data objects from the state tier, use the objects and push them back to the state tier after processing is complete. If one state replica is unavailable, such as during garbage collection, the engine can retrieve the objects from another replica in the partition.
64 Citations
20 Claims
-
1. A system for improving latency during message processing in a network environment, said system comprising:
-
an engine tier distributed on a cluster network of computing devices, wherein the engine tier maintains short lived data objects that are local in thread scope, wherein the short lived data objects in the engine tier are garbage collected during thread processing on the engine tier; and a state tier distributed on the cluster network of said computing devices, wherein the state tier maintains long lived data objects that are global in thread scope, wherein the long lived data objects in the state tier are garbage collected by halting all thread processing in the state tier for a period of time; wherein the engine tier receives a message associated with a call having call state and upon receiving the message, the engine tier locks the call state stored in the long lived data objects in the state tier, retrieves the call state from the long lived data objects in the state tier and stores the call state locally in the short lived data objects, processes said message using the call state stored in the short lived data objects locally in the engine tier, updates the call state to the long lived data objects in the state tier with changes caused by the processing of said message, and unlocks said call state in the long lived data objects in the state tier once the call state has been updated; whereby the halting of all thread processing caused by garbage collecting the long lived objects in the state tier is separated from message processing in the engine tier. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for improving latency during message processing in a network environment, said method comprising:
-
maintaining an engine tier on a network cluster of computing devices, wherein the engine tier processes incoming messages and stores short lived objects that are local in thread scope, wherein the short lived objects in the engine tier are garbage collected during thread processing on the engine tier; maintaining a state tier on the network cluster of said computing devices, wherein the state tier stores long lived objects that are used in processing the incoming messages, said long lived objects being global in thread scope, wherein the long lived objects in the state tier are garbage collected by halting all thread processing in the state tier for a period of time; receiving, by the engine tier, an incoming message associated with a call having call state, wherein upon receiving the incoming message, the engine tier locks the call state stored in the long lived objects in the state tier, retrieves the call state from the long lived objects in the state tier and stores the call state locally in the short lived objects, processes said incoming message using the call state stored in the short lived objects locally in the engine tier, updates the call state to the long lived objects in the state tier with changes caused by the processing of said incoming message, and unlocks said call state in the long lived objects in the state tier once the call state has been updated; whereby the halting of all thread processing caused by garbage collecting the long lived objects in the state tier is separated from message processing in the engine tier. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A computer-readable storage medium having a set of instructions stored thereon, said instructions when executed by one or more processors, causing the one or more processors to carry out the steps of:
-
maintaining an engine tier on a network cluster of computing devices, wherein the engine tier processes incoming messages and stores short lived objects that are local in thread scope, wherein the short lived objects in the engine tier are garbage collected during thread processing on the engine tier; maintaining a state tier on the network cluster of said computing devices, wherein the state tier stores long lived objects that are used in processing the incoming messages, said long lived objects being global in thread scope, wherein the long lived objects in the state tier are garbage collected by halting all thread processing in the state tier for a period of time; receiving, by the engine tier, an incoming message associated with a call having call state, wherein upon receiving the incoming message, the engine tier locks the call state stored in the long lived objects in the state tier, retrieves the call state from the long lived objects in the state tier and stores the call state locally in the short lived objects, processes said incoming message using the call state stored in the short lived objects locally in the engine tier, updates the call state to the long lived objects in the state tier with changes caused by the processing of said incoming message, and unlocks said call state in the long lived objects in the state tier once the call state has been updated; whereby the halting of all thread processing caused by garbage collecting the long lived objects in the state tier is separated from message processing in the engine tier.
-
Specification