IP Library Granted Patent US 9,400,607
Granted Patent B1
US 9,400,607 · App. 14/811,573 · Granted Jul 26, 2016

Stateless processing of replicated state for distributed storage systems

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 9,400,607
App. No.
14/811,573
Granted
Jul 26, 2016
Kind
B1
Abstract

Embodiments are directed towards storing data in a storage system. A data controller may obtain a write request and write data from a client computer. A write message may be generated and provided to a data coordinator computer. The data coordinator may communicate the write message to a plurality of L-node computers. The data coordinator may obtain write confirmation messages from the L-node computers that indicate that the write data is stored. If enough write confirmation messages are obtained to indicate that a quorum is reached, the data coordinator may communicate a save confirmation message to the data controller. The data controller may generate a write acknowledgement message based on the save confirmation message provided by the data coordinator. The data controller may provide the write acknowledgement message to the client computer that made the original write request.

Claims (103)

1. The method for storing data in a storage system over a network using a network computer that performs actions, comprising:

employing a P-node to perform actions, including:

communicating with a client computer that provides a write request which includes write data;

generating one or more journal records that are converted, by the P-Node, from one or more write messages provided by one or more client computer applications, wherein the one or more journal records are provided to a plurality of L-nodes, and wherein content and client computer application context of the one or more journal records is opaque to the plurality of L-nodes;

generating a new write message that includes the write data and the one or more journal records;

communicating the new write message to one of the plurality of L-nodes that is elected by the plurality of L-nodes to be a data coordinator for the plurality of L-nodes; and

employing the data coordinator to perform actions, including:

communicating the new write message to each of the L-nodes, wherein each L-node communicates a write confirmation message to the data coordinator that indicates the write data and the one or more journal records are stored by each L-node; and

when a predetermined amount of write confirmation messages indicate that the write data and the one or more journal records are stored, communicating a save confirmation message to the P-node; and

employing the P-node to generate a write acknowledgement message that is responsive to the write request based on the save confirmation message, wherein the write acknowledgement message is communicated to the client computer.

2. The method of claim 1 , comprising further actions:

employing another P-node to communicate with the client computer that provides the write request and write data; and

employing the other P-node to communicate the write request and the write data to the P-node.

3. The method of claim 1 , wherein the plurality of L-nodes, further comprises, a persistent, fault tolerant data store.

4. The method of claim 1 , wherein the P-node is elected to be a data controller by a plurality of L-nodes.

5. The method of claim 1 , further comprising:

generating the one or more journal records based on the write request and the write data; and

including the one or more journal records in the new write message.

6. The method of claim 1 , wherein the P-node includes a local cache memory that stores the write data without employing a persistent data store.

7. The method of claim 1 , further comprising:

obtaining a read request from the client computer;

when a data value corresponding to the read request is unavailable from a local cache memory of the P-node, forwarding the read request to the data coordinator to obtain one or more journal records associated with the data value; and

generating a read response based on the one or more journal records.

8. The method of claim 1 , wherein the predetermined amount of write confirmation messages is based on at least an execution of a consensus algorithm by the data coordinator and the plurality of L-nodes.

9. A system for storing data in a storage system over a network, comprising:

a P-node computer, comprising:

a transceiver that communicates over the network;

a memory that stores at least instructions; and

a processor device that executes instructions that perform actions, including:

communicating with a client computer that provides a write request which includes write data;

generating one or more journal records that are converted, by the P-Node, from one or more write messages provided by one or more client computer applications, wherein the one or more journal records are provided to a plurality of L-nodes, and wherein content and client computer application context of the one or more journal records is opaque to the plurality of L-nodes;

generating a new write message that includes the write data and the one or more journal records;

communicating the new write message to one of the plurality of L-nodes that is elected by the plurality of L-nodes to be a data coordinator for the plurality of L-nodes; and

the data coordinator computer, comprising:

a transceiver that communicates over the network;

a memory that stores at least instructions; and

a processor device that executes instructions that perform actions, including:

communicating the new write message to each of the L-nodes, wherein each L-node communicates a write confirmation message to the data coordinator that indicates the write data and the one or more journal records are stored by each L-node; and

when a predetermined amount of write confirmation messages indicate that the write data and the one or more journal records are stored, communicating a save confirmation message to the P-node computer; and

employing the P-node computer to generate a write acknowledgement message that is responsive to the write request based on the save confirmation message, wherein the write acknowledgement message is communicated to the client computer.

10. The system of claim 9 , comprising further actions:

employing another P-node to communicate with the client computer that provides the write request and write data; and

employing the other P-node to communicate the write request and the write data to the P-node computer.

11. The system of claim 9 , wherein the plurality of L-nodes, further comprises, a persistent, fault tolerant data store.

12. The system of claim 9 , wherein the P-node computer is elected to be a data controller by a plurality of L-nodes.

13. The system of claim 9 , wherein the P-node computer processor device executes instructions that perform further actions, comprising:

generating the one or more journal records based on the write request and the write data; and

including the one or more journal records in the new write message.

14. The system of claim 9 , wherein the P-node computer includes a local cache memory that stores the write data without employing a persistent data store.

15. The system of claim 9 , wherein the P-node computer processor device executes instructions that perform further actions, comprising:

obtaining a read request from the client computer;

when a data value corresponding to the read request is unavailable from a local cache memory of the P-node computer, forwarding the read request to the data coordinator computer to obtain one or more journal records associated with the data value; and

generating a read response based on the one or more journal records.

16. The system of claim 9 , wherein the predetermined amount of write confirmation messages is based on at least an execution of a consensus algorithm by the data coordinator computer and the plurality of L-node computers.

17. A processor readable non-transitory storage media that includes instructions for storing data in a storage system over a network, wherein execution of the instructions by a processor device performs actions, comprising:

employing a P-node to perform actions, including:

communicating with a client computer that provides a write request which includes write data;

generating one or more journal records that are converted, by the P-Node, from one or more write messages provided by one or more client computer applications, wherein the one or more journal records are provided to a plurality of L-nodes, and wherein content and client computer application context of the one or more journal records is opaque to the plurality of L-nodes;

generating a new write message that includes the write data and the one or more journal records;

communicating the new write message to one of the plurality of L-nodes that is elected by the plurality of L-nodes to be a data coordinator for the plurality of L-nodes; and

employing the data coordinator to perform actions, including:

communicating the new write message to each of the L-nodes, wherein each L-node communicates a write confirmation message to the data coordinator that indicates the write data and the one or more journal records are stored by each L-node; and

when a predetermined amount of write confirmation messages indicate that the write data and the one or more journal records are stored, communicating a save confirmation message to the P-node; and

employing the P-node to generate a write acknowledgement message that is responsive to the write request based on the save confirmation message, wherein the write acknowledgement message is communicated to the client computer.

18. The media of claim 17 , comprising further actions:

employing another P-node to communicate with the client computer that provides the write request and write data; and

employing the other P-node to communicate the write request and the write data to the P-node.

19. The media of claim 17 , wherein the plurality of L-nodes, further comprises, a persistent, fault tolerant data store.

20. The media of claim 17 , wherein the P-node is elected to be a data controller by a plurality of L-nodes.

21. The media of claim 17 , further comprising:

generating the one or more journal records based on the write request and the write data; and

including the one or more journal records in the new write message.

22. The media of claim 17 , wherein the P-node includes a local cache memory that stores the write data without employing a persistent data store.

23. The media of claim 17 , further comprising:

obtaining a read request from the client computer;

when a data value corresponding to the read request is unavailable from a local cache memory of the P-node, forwarding the read request to the data coordinator to obtain one or more journal records associated with the data value; and

generating a read response based on the one or more journal records.

24. A network computer that is operative for storing data in a storage system over a network using a network, comprising:

a transceiver that communicates over a network;

a memory that stores at least instructions; and

a processor device that executes instructions that perform actions, including:

employing a P-node to perform actions, including:

communicating with a client computer that provides a write request which includes write data;

generating one or more journal records that are converted, by the P-Node, from one or more write messages provided by one or more client computer applications, wherein the one or more journal records are provided to a plurality of L-nodes, and wherein content and client computer application context of the one or more journal records is opaque to the plurality of L-nodes;

generating a new write message that includes the write data and the one or more journal records;

communicating the new write message to one of the plurality of L-nodes that is elected by the plurality of L-nodes to be a data coordinator for the plurality of L-nodes; and

employing the data coordinator to perform actions, including:

communicating the new write message to each of the L-nodes, wherein each L-node communicates a write confirmation message to the data coordinator that indicates the write data and the one or more journal records are stored by each L-node; and

when a predetermined amount of write confirmation messages indicate that the write data and the one or more journal records are stored, communicating a save confirmation message to the P-node; and

employing the P-node to generate a write acknowledgement message that is responsive to the write request based on the save confirmation message, wherein the write acknowledgement message is communicated to the client computer.

25. The network computer of claim 24 , comprising further actions:

employing another P-node to communicate with the client computer that provides the write request and write data; and

employing the other P-node to communicate the write request and the write data to the P-node.

26. The network computer of claim 24 , wherein the plurality of L-nodes, further comprises, a persistent, fault tolerant data store.

27. The network computer of claim 24 , wherein the P-node is elected to be a data controller by a plurality of L-nodes.

28. The network computer of claim 24 , wherein the processor device executes instructions that perform further actions, comprising:

generating the one or more journal records based on the write request and the write data; and

including the one or more journal records in the new write message.

29. The network computer of claim 24 , wherein the P-node includes a local cache memory that stores the write data without employing a persistent data store.

30. The network computer of claim 24 , wherein the processor device executes instructions that perform further actions, comprising:

obtaining a read request from the client computer;

when a data value corresponding to the read request is unavailable from a local cache memory of the P-node, forwarding the read request to the data coordinator to obtain one or more journal records associated with the data value; and

generating a read response based on the one or more journal records.

Assignments (4)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 60333/0323 Recorded Jun 13, 2025
From: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
To: RUBRIK, INC.
Reel/Frame 071565/0602 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 10, 2022
From: RUBRIK, INC.
To: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
Reel/Frame 060333/0323 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2020
From: IGNEOUS SYSTEMS, INC.
To: RUBRIK, INC.
Reel/Frame 054781/0196 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2015
From: DAUD, ASIF ARIF; PILLOUD, ANDREW MARTIN; LEMAR, ERIC MICHAEL; RAKITZIS, TRIANTAPHYLLOS BYRON
To: IGNEOUS SYSTEMS, INC.
Reel/Frame 036199/0475 →