IP Library › Granted Patent US 9,442,672
Granted Patent B2
US 9,442,672 · App. 14/075,037 · Granted Sep 13, 2016

Replicating data across controllers

Inventors: Janmejay S. Kulkarni (Mumbai, IN); Sapan J. Maniyar (Pune, IN); Sarvesh S. Patel (Nashik, IN); Subhojit Roy (Pune, IN)
Assignee: GLOBALFOUNDRIES INC.
G06F3/065G06F3/067G06F3/0619
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,442,672
App. No.
14/075,037
Filed
Nov 8, 2013
Granted
Sep 13, 2016
Kind
B2
Art Unit
2181
USPC
710/1
Abstract

In a method for replicating data, a first controller receives a request to write data from a device. The first controller communicates with a second controller to obtain information necessary for the second controller to receive the data. The first controller determines settings that allow for the first controller and the second controller to each receive the data using the information necessary for the second controller to receive the data. The first controller sends the settings that allow for the first controller and the second controller to each receive the data to the device. The first controller receives the data sent from the device to the first controller and the second controller based on the settings that allow for the first controller and the second to each receive the data.

Claims (51)

1. A method for replicating data, the method comprising:

a first controller receiving a request to write data from a device;

the first controller communicating with a second controller to obtain information necessary for the second controller to receive the data;

the first controller determining settings that allow for the first controller and the second controller to each receive the data using the information necessary for the second controller to receive the data;

the first controller sending the settings that allow for the first controller and the second controller to each receive the data to the device;

the first controller changing a destination address in the data to allow for the first controller and the second controller to each receive the data to the device, and

the first controller receiving the data sent from the device to the first controller and the second controller based on the settings and changing the destination address that allow for the first controller and the second controller to each receive the data,

wherein the settings that allow for the first controller and the second controller to each receive the data includes sending the data in one or more packets, wherein each packet is a size that is at most equal to the smaller of an available buffer space on the second controller or an available buffer space on the first controller.

2. The method of claim 1 , wherein the information necessary for the second controller to receive the data includes available buffer space on the second controller.

3. The method of claim 1 , wherein the step of the first controller receiving the data sent from the device to the first controller and the second controller based on the settings that allow for the first controller and the second controller to each receive the data comprises:

the first controller receiving the data sent from the device to the first controller and

second controller based on the settings that allow for the first controller and the second controller to each receive the data through a first port of a storage area network (SAN) switch communicatively connected to the device, the first controller, and the second controller.

4. The method of claim 3 , wherein the data sent from the device to the first controller and the second controller based on the settings that allow for the first controller and the second controller to each receive the data is sent from the device to the SAN switch, replicated within the SAN switch according to at least a rule, and sent to the first controller and the second controller.

5. The method of claim 4 , wherein the rule specifies a source port, at least one destination port, and a description of the type of packet to replicate.

6. The method of claim 1 , further comprising:

the first controller receiving sense data from the second controller, wherein the sense data indicates the data sent from the device to the first controller and the second controller based on the settings that allow for the first controller and the second controller to each receive the data was received by the second controller; and

the first controller returning sense data from the first controller and the sense data from the second controller to the device.

7. A computer program product stored in a non-transitory computer readable storage medium for replicating data, the computer program product comprising:

one or more non-transitory computer-readable storage media and program instructions stored on the one or more computer-readable storage media, the program instructions comprising:

program instructions to receive, by a first controller, a request to write data from a device;

program instructions to communicate, by the first controller, with a second controller to obtain information necessary for the second controller to receive the data;

program instructions to determine, by the first controller, settings that allow for the first controller and the second controller to each receive the data using the information necessary for the second controller to receive the data;

program instructions to send, by the first controller, the settings that allow for the first controller and the second controller to each receive the data to the device;

program instructions to change, by the first controller, a destination address in the data to allow for the first controller and the second controller to each receive the data to the device; and

program instructions to receive, by the first controller, the data sent from the device to the first controller and the second controller based on the settings and changing the destination address that allow for the first controller and the second controller to each receive the data,

wherein the settings that allow for the first controller and the second controller to each receive the data includes sending the data in one or more packets, wherein each packet is a size that is at most equal to the smaller of an available buffer space on the second controller or an available buffer space on the first controller.

8. The computer program product of claim 7 , wherein the information necessary for the second controller to receive the data includes available buffer space on the second controller.

9. The computer program product of claim 7 , wherein program instructions to receive, by the first controller, the data sent from the device to the first controller and the second controller based on the settings that allow for the first controller and the second controller to each receive the data comprises:

program instructions to receive, by the first controller, the data sent from the device to the first controller and second controller based on the settings that allow for the first controller and the second controller to each receive the data through a first port of a storage area network (SAN) switch communicatively connected to the device, the first controller, and the second controller.

10. The computer program product of claim 9 , wherein the data sent from the device to the first controller and the second controller based on the settings that allow for the first controller and the second controller to each receive the data is sent from the device to the SAN switch, replicated within the SAN switch according to at least a rule, and sent to the first controller and the second controller.

11. The computer program product of claim 10 , wherein the rule specifies a source port, at least one destination port, and a description of the type of packet to replicate.

12. The computer program product of claim 7 , further comprising:

program instructions, stored on the one or more computer-readable storage media, to receive, by the first controller, sense data from the second controller, wherein the sense data indicates the data sent from the device to the first controller and the second controller based on the settings that allow for the first controller and the second controller to each receive the data was received by the second controller; and

program instructions, stored on the one or more computer-readable storage media, to return, by the first controller, sense data from the first controller and the sense data from the second controller to the device.

13. A computer system for replicating data, the computer system comprising:

one or more computer processors, one or more non-transitory computer-readable storage media, and program instructions stored on the computer-readable storage media for execution by at least one of the one or more processors, the program instructions comprising:

program instructions to receive, by a first controller, a request to write data from a device;

program instructions to communicate, by the first controller, with a second controller to obtain information necessary for the second controller to receive the data;

program instructions to determine, by the first controller, settings that allow for the first controller and the second controller to each receive the data using the information necessary for the second controller to receive the data;

program instructions to send, by the first controller, the settings that allow for the first controller and the second controller to each receive the data to the device;

program instructions to change, by the first controller, a destination address in the data to allow for the first controller and the second controller to each receive the data to the device; and

program instructions to receive, by the first controller, the data sent from the device to the first controller and the second controller based on the settings and changing the destination address that allow for the first controller and the second controller to each receive the data,

wherein the settings that allow for the first controller and the second controller to each receive the data includes sending the data in one or more packets, wherein each packet is a size that is at most equal to the smaller of an available buffer space on the second controller or an available buffer space on the first controller.

14. The computer system of claim 13 , wherein the information necessary for the second controller to receive the data includes available buffer space on the second controller.

15. The computer system of claim 13 , wherein program instructions to receive, by the first controller, the data sent from the device to the first controller and the second controller based on the settings that allow for the first controller and the second controller to each receive the data comprises:

program instructions to receive, by the first controller, the data sent from the device to the first controller and second controller based on the settings that allow for the first controller and

the second controller to each receive the data through a first port of a storage area network (SAN) switch communicatively connected to the device, the first controller, and the second controller.

16. The computer system of claim 15 , wherein the data sent from the device to the first controller and the second controller based on the settings that allow for the first controller and the second controller to each receive the data is sent from the device to the SAN switch, replicated within the SAN switch according to at least a rule, and sent to the first controller and the second controller.

17. The computer system of claim 13 , further comprising:

program instructions, stored on the computer-readable storage media for execution by at least one of the one or more processors, to receive, by the first controller, sense data from the second controller, wherein the sense data indicates the data sent from the device to the first controller and the second controller based on the settings that allow for the first controller and the second controller to each receive the data was received by the second controller; and

program instructions, stored on the computer-readable storage media for execution by at least one of the one or more processors, to return, by the first controller, sense data from the first controller and the sense data from the second controller to the device.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded May 12, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES U.S. INC.
Reel/Frame 056987/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 20, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES INC.
Reel/Frame 054636/0001 →
SECURITY AGREEMENT Recorded Nov 29, 2018
From: GLOBALFOUNDRIES INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 049490/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2015
From: GLOBALFOUNDRIES U.S. 2 LLC; GLOBALFOUNDRIES U.S. INC.
To: GLOBALFOUNDRIES INC.
Reel/Frame 036779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2015
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: GLOBALFOUNDRIES U.S. 2 LLC
Reel/Frame 036550/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2013
From: KULKARNI, JANMEJAY S.; MANIYAR, SAPAN J.; PATEL, SARVESH S.; ROY, SUBHOJIT
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 031608/0521 →
Continuity (1)
Related Publication 20150134923A1 · May 14, 2015