System and method for efficient storage of long-lived session state in a SIP server
First Claim
1. A system for efficient storage of session state data, said system comprising:
- a cluster network of computer server devices, said network includinga first server device having an engine node dedicated to processing a set of transactions anda second server device having a state replica that stores said session state data associated with said transactions in random access memory (RAM), wherein the state replica provides the session state data to the engine node, and wherein the engine node processes said transactions using the session state data; and
a database connected to said cluster network, wherein said database stores a portion of said session state data; and
wherein the engine node on the first server device transmits a hint message to the state replica on the second server device, wherein the hint message contains information instructing the state replica node to persist the portion of the session state data to the database; and
wherein said state replica receives a hint message from the engine node and determines whether to disregard or to follow said hint message, wherein if the state replica determines to follow said hint message, the state replica persists the portion of the session state data to the database as instructed by the information in the hint message, otherwise if the state replica determines to disregard said hint message, the session state data is not persisted to the database and remains on the state replica.
2 Assignments
0 Petitions
Accused Products
Abstract
A SIP server can be deployed in a two-tier architecture, including an engine tier for processing of SIP communications and a state tier for maintaining the state associated with these communications. The state tier can include RAM-based replicas that provide data to the engines. Some of the SIP session state can be moved to the database in order to reduce the memory requirements of the state tier. Upon determining that a transaction boundary has been reached where the session state is steady, the state replica can save the data to the database. A hint can be received from the engine tier by the state replica indicating that the state data is ready to be saved. Subsequently, the data can be removed from the state tier by nulling out the bytes of actual data, while preserving the primary key, locking and timer information so as not to impact latency.
56 Citations
17 Claims
-
1. A system for efficient storage of session state data, said system comprising:
-
a cluster network of computer server devices, said network including a first server device having an engine node dedicated to processing a set of transactions and a second server device having a state replica that stores said session state data associated with said transactions in random access memory (RAM), wherein the state replica provides the session state data to the engine node, and wherein the engine node processes said transactions using the session state data; and a database connected to said cluster network, wherein said database stores a portion of said session state data; and wherein the engine node on the first server device transmits a hint message to the state replica on the second server device, wherein the hint message contains information instructing the state replica node to persist the portion of the session state data to the database; and wherein said state replica receives a hint message from the engine node and determines whether to disregard or to follow said hint message, wherein if the state replica determines to follow said hint message, the state replica persists the portion of the session state data to the database as instructed by the information in the hint message, otherwise if the state replica determines to disregard said hint message, the session state data is not persisted to the database and remains on the state replica. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer implemented method for efficiently storing session state data, said method comprising:
-
maintaining a computer network of server devices, said network including a first server device having an engine node dedicated to processing a set of transactions and a second server device having an state replica node that stores the session state data associated with said transactions in random access memory (RAM), wherein the state replica provides the session state data to the engine node, and wherein the engine node processes said transactions using the session state data; receiving an update to said session state from an engine node to a state replica node; storing said update to the session state data in the state replica node, transmitting a hint message from the engine node on the first server device to the state replica on the second server device, wherein the hint message contains information instructing the state replica node to persist the portion of the session state data to the database; receiving the hint message from the engine node to the state replica node; determining, by the state replica node that received said hint message, whether to disregard or to follow said hint message; persisting, by the state replica node, the portion of the session state data into the database as instructed by the information in the hint message if the state replica node determines to follow said hint message; and removing the portion of said session state data from the state replica node after the portion of said session state data has been persisted to the database. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A non-transitory computer-readable medium storing a set of instructions executed by one or more processors to cause the one or more processors to:
-
maintain a computer network of server devices, said network including a first server device having an engine node dedicated to processing a set of transactions and a second server device having an state replica node that stores the session state data associated with said transactions in random access memory (RAM), wherein the state replica provides the session state data to the engine node, and wherein the engine node processes said transactions using the session state data; receive an update to said session state from an engine node to a state replica node; store said update to the session state data in the state replica node, transmit a hint message from the engine node on the first server device to the state replica on the second server device, wherein the hint message contains information instructing the state replica node to persist the portion of the session state data to the database; receive the hint message from the engine node to the state replica node; determine, by the state replica node that received said hint message, whether to disregard or to follow said hint message; persist, by the state replica node, the portion of the session state data into the database as instructed by the information in the hint message if the state replica node determines to follow said hint message; and remove the portion of said session state data from the state replica node after the portion of said session state data has been persisted to the database.
-
Specification