IP Library Granted Patent US 10,230,795
Granted Patent B2
US 10,230,795 · App. 15/222,217 · Granted Mar 12, 2019

Data replication for a virtual networking system

Inventors: Sushma Anantharam (Cupertino, CA); Amitabha Biswas (San Francisco, CA); Harshad S. Padhye (Santa Clara, CA)
Assignee: International Business Machines Corporation
H04L67/1095G06F9/45533G06F17/30575G06F17/30578H04L5/0055H04L12/4633H04L12/4641H04L45/72H04L45/74H04L67/10H04L67/104H04L69/22H04L69/326
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 10,230,795
App. No.
15/222,217
Granted
Mar 12, 2019
Kind
B2
Abstract

Embodiments of the invention provide a method for data replication in a networking system comprising multiple computing nodes. The method comprises maintaining a data set on at least two computing nodes of the system. The method further comprises receiving a data update request for the data set, wherein the data update request includes a data update for the data set. The data set on the at least two computing nodes is updated based on the data update request received.

Claims (68)

1. A method for data replication in a virtual networking system comprising multiple computing nodes, wherein the multiple computing nodes include a first computing node and each computing node comprises a server including one or more resources, the method comprising:

maintaining a first replica of a data set for a tenant on the first computing node;

receiving, at the first computing node, a data request for the data set, wherein the data request includes a data update for the data set;

updating the first replica of the data set based on the data request;

in response to determining the data request originates from another computing node of the multiple computing nodes:

sending a first acknowledgement message from the first computing node to the another computing node, wherein the another computing node sends a list of addresses to a client device in response to receiving the first acknowledgement message, the list of addresses comprises addresses of all computing nodes in the virtual networking system maintaining an updated replica of the data set, the list of addresses includes an address of the first computing node, and the first computing node is configured to receive a subsequent data request originating from the client device for a subsequent data update for the data set in response to the client device selecting the address of the first computing node from the list of addresses; and in response to determining the data request originates from the client device:

sending at least one different data request from the first computing node to at least one other computing node of the multiple computing nodes to update at least one other replica of the data set maintained on the at least other computing node based on the at least one different data request.

2. The method of claim 1 , further comprising:

maintaining mapping information on the first computing node, wherein the mapping information identifies which one or more computing nodes of the multiple computing nodes maintains one or more replicas for the data set.

3. The method of claim 2 , wherein sending at least one different data request from the first computing node to at least one other computing node of the multiple computing nodes to update at least one other replica of the data set maintained on the at least other computing node based on the at least one different data request comprises:

determining a second computing node of the multiple computing nodes that maintains a second replica of the data set.

4. The method of claim 3 , wherein sending at least one different data request from the first computing node to at least one other computing node of the multiple computing nodes to update at least one other replica of the data set maintained on the at least other computing node based on the at least one different data request further comprises:

modifying the data request into a different data request by modifying a transport header section of the data request to include an address of the second computing node as a destination address.

5. The method of claim 4 , wherein sending at least one different data request from the first computing node to at least one other computing node of the multiple computing nodes to update at least one other replica of the data set maintained on the at least other computing node based on the at least one different data request further comprises:

forwarding the different data request to the second computing node to update the second replica of the data set based on the different data request.

6. The method of claim 4 , wherein modifying the data request into a different data request further comprises:

modifying the transport header section of the data request to further include the address of the first computing node as a source address.

7. The method of claim 5 , wherein the second computing node is determined based on the mapping information.

8. The method of claim 5 , further comprising:

in response to determining the data request originates from the client device:

receiving, at the first computing node, a first second acknowledgement message from the second computing node; and

sending a third acknowledgement message from the first computing node to the client device in response to the first computing node receiving the second acknowledgment message.

9. The method of claim 4 , wherein modifying the data request into a different data request further comprises:

modifying the transport header section of the data request to further include a first port of the first computing node as a source port and a second port of the second computing node as a destination port.

10. A system comprising a computer processor, a computer-readable hardware storage medium, and program code embodied with the computer-readable hardware storage medium for execution by the computer processor to implement a method for data replication in a virtual networking system comprising multiple computing nodes, wherein the multiple computing nodes include a first computing node and each computing node comprises a server including one or more resources, the method comprising:

maintaining a first replica of a data set for a tenant on the first computing node;

receiving, at the first computing node, a data request for the data set, wherein the data request includes a data update for the data set;

updating the first replica of the data set based on the data request;

in response to determining the data request originates from another computing node of the multiple computing nodes:

sending a first acknowledgement message from the first computing node to the another computing node, wherein the another computing node sends a list of addresses to a client device in response to receiving the first acknowledgement message, the list of addresses comprises addresses of all computing nodes in the virtual networking system maintaining an updated replica of the data set, the list of addresses includes an address of the first computing node, and the first computing node is configured to receive a subsequent data request originating from the client device for a subsequent data update for the data set in response to the client device selecting the address of the first computing node from the list of addresses; and

in response to determining the data request originates from the client device:

sending at least one different data request from the first computing node to at least one other computing node of the multiple computing nodes to update at least one other replica of the data set maintained on the at least other computing node based on the at least one different data request.

11. The system of claim 10 , the method further comprising:

maintaining mapping information on the first computing node, wherein the mapping information identifies which one or more computing nodes of the multiple computing nodes maintains one or more replicas for the data set.

12. The system of claim 11 , wherein sending at least one different data request from the first computing node to at least one other computing node of the multiple computing nodes to update at least one other replica of the data set maintained on the at least other computing node based on the at least one different data request comprises:

determining a second computing node of the multiple computing nodes that maintains a second replica of the data set.

13. The system of claim 12 , wherein sending at least one different data request from the first computing node to at least one other computing node of the multiple computing nodes to update at least one other replica of the data set maintained on the at least other computing node based on the at least one different data request further comprises:

modifying the data request into a different data request by modifying a transport header section of the data request to include an address of the second computing node as a destination address.

14. The system of claim 13 , wherein sending at least one different data request from the first computing node to at least one other computing node of the multiple computing nodes to update at least one other replica of the data set maintained on the at least other computing node based on the at least one different data request further comprises:

forwarding the different data request to the second computing node to update the second replica of the data set based on the different data request.

15. The system of claim 13 , wherein modifying the data request into a different data request further comprises:

modifying the transport header section of the data request to further include the address of the first computing node as a source address.

16. The system of claim 14 , wherein the second computing node is determined based on the mapping information.

17. The system of claim 14 , the method further comprising:

in response to determining the data request originates from the client device:

receiving, at the first computing node, a second acknowledgement message from the second computing node; and

sending a third acknowledgement message from the first computing node to the client device in response to the first computing node receiving the second acknowledgment message.

18. The system of claim 13 , wherein modifying the data request into a different data request further comprises:

modifying the transport header section of the data request to further include a first port of the first computing node as a source port and a second port of the second computing node as a destination port.

19. A computer program product comprising a computer-readable hardware storage medium having program code embodied therewith, the program code being executable by a computer to implement a method for data replication in a virtual networking system comprising multiple computing nodes, wherein the multiple computing nodes include a first computing node and each computing node comprises a server including one or more resources, the method comprising:

maintaining a first replica of a data set for a tenant on the first computing node;

receiving, at the first computing node, a data request for the data set, wherein the data request includes a data update for the data set;

updating the first replica of the data set based on the data request;

in response to determining the data request originates from another computing node of the multiple computing nodes:

sending a first acknowledgement message from the first computing node to the another computing node, wherein the another computing node sends a list of addresses to a client device in response to receiving the first acknowledgement message, the list of addresses comprises addresses of all computing nodes in the virtual networking system maintaining an updated replica of the data set, the list of addresses includes an address of the first computing node, and the first computing node is configured to receive a subsequent data request originating from the client device for a subsequent data update for the data set in response to the client device selecting the address of the first computing node from the list of addresses; and

in response to determining the data request originates from the client device:

sending at least one different data request from the first computing node to at least one other computing node of the multiple computing nodes to update at least one other replica of the data set maintained on the at least other computing node based on the at least one different data request.

20. The computer program product of claim 19 , the method further comprising:

maintaining mapping information on the first computing node, wherein the mapping information identifies which one or more computing nodes of the multiple computing nodes maintains one or more replicas for the data set;

wherein sending at least one different data request from the first computing node to at least one other computing node of the multiple computing nodes to update at least one other replica of the data set maintained on the at least other computing node based on the at least one different data request comprises:

determining, based on the mapping information, a second computing node of the multiple computing nodes that maintains a second replica of the data set;

modifying the data request into a different data request by modifying a transport header section of the data request to include an address of the second computing node as a destination address; and

forwarding the different data request to the second computing node to update the second replica of the data set based on the different data request;

wherein the method further comprises:

in response to determining the data request originates from the client device:

receiving, at the first computing node, a second acknowledgement message from the second computing node; and

sending a third acknowledgement message from the first computing node to the client device in response to the first computing node receiving the second acknowledgment message; and

wherein modifying the data request into a different data request further comprises modifying the transport header section of the data request to further include a first port of the first computing node as a source port and a second port of the second computing node as a destination port.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: KYNDRYL, INC.
Reel/Frame 057885/0644 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2016
From: ANANTHARAM, SUSHMA; BISWAS, AMITABHA; PADHYE, HARSHAD S.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 039283/0404 →
Continuity (2)
Continuation 13801977 · Mar 13, 2013
Related Publication 20160337450A1 · Nov 17, 2016