IP Library Granted Patent US 10,831,402
Granted Patent B2
US 10,831,402 · App. 16/454,868 · Granted Nov 10, 2020

Method and apparatus for ensuring data consistency

Inventors: Shaoqin Gong (Beijing, CN); Jian Gao (Beijing, CN); Geng Han (Beijing, CN); Hongpo Gao (Beijing, CN); Ree Lei Sun (Beijing, CN); Xinlei Xu (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F3/0656G06F3/064G06F3/065G06F3/0614G06F3/0619G06F3/0689G06F11/1438G06F11/2056G06F11/2064G06F11/2082G06F2003/0691
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,831,402
App. No.
16/454,868
Granted
Nov 10, 2020
Kind
B2
Abstract

Embodiments of the present disclosure provide methods and apparatuses for ensuring data consistency. In some embodiments, a method comprises writing data into a first temporary buffer in a first processor. The method further comprises, in response to the data being written into the first temporary buffer, sending the data to a second processor to update a copy of the data in the second processor. In addition, the method comprises, in response to receiving an indication that the second processor has received the data, copying the data from the first temporary buffer to a first working buffer in the first processor.

Claims (88)

1. An apparatus for ensuring data consistency, comprising:

a first processing unit (processor);

at least one memory coupled to the first processor and storing instructions for execution by the first processor, the instructions, when executed by the first processor, causing the apparatus to:

in response to receiving, from a second processor, data to be updated, write the data into a temporary buffer in the first processor;

in response to the data being written into the temporary buffer, send, to the second processor, an indication that the first processor has received the data; and

copy the data from the temporary buffer to a working buffer in the first processor.

2. The apparatus of claim 1 , wherein the instructions, when executed by the first processor, further cause the apparatus to, in response to the data being copied to the working buffer, release the temporary buffer.

3. The apparatus of claim 1 , wherein the instructions, when executed by the first processor, further cause the apparatus to:

in response to receiving from the second processor a message indicating that the data has been updated to a temporary region on a disk shared by the first and second processors, obtain, from the message, a flag indicating that the data in the temporary region is valid; and

send, to the second processor, an acknowledgement that the first processor has received the message.

4. The apparatus of claim 3 , wherein the instructions, when executed by the first processor, further cause the apparatus to:

in response to receiving from the second processor another message indicating that the data has been updated to a working region on the disk, obtain, from the other message, the flag indicating that the data in the temporary region is invalid; and

send, to the second processor, another acknowledgement that the first processor has received the other message.

5. The apparatus of claim 3 wherein the data is configuration information for the shared disk, the configuration information including state information and a mapping table.

6. The apparatus of claim 1 , wherein the instructions, when executed by the first processor, further cause the apparatus to:

in response to determining that the second processor is unresponsive:

write the data into a temporary region on the disk shared by the first and second processors;

in response to the data being written into the temporary region, set a flag associated with the temporary region to indicate that the data in the temporary region is valid;

write the data into a working region on the disk; and

in response to the data being written into the working region, set the flag to indicate that the data in the temporary region is invalid.

7. A storage system for ensuring data consistency, comprising:

a first processing unit (processor) coupled to memory of the first processor;

a second processor coupled to memory of the second processor; and

persistent data storage shared between the first and second processors;

wherein the first processor is configured to:

write data into a temporary buffer in the memory of the first processor;

in response to the data being written into the temporary buffer, send the data to the second processor to update a copy of the data in the memory of the second processor; and

in response to receiving an indication that the second processor has received the data, copy the data from the temporary buffer to a working buffer in the memory of the first processor.

8. The storage system of claim 7 , wherein the first processor is further configured to, in response to the data being copied to the working buffer, release the temporary buffer.

9. The storage system of claim 7 , wherein the first processor is further configured to:

in response to determining that the second processor is unresponsive, write the data into a temporary region on the shared persistent data storage;

in response to the data being written into the temporary region, set a flag associated with the temporary region to indicate that the data in the temporary region is valid;

after setting the flag associated with the temporary region to indicate that the data in the temporary region is valid, write the data into a working region on the shared persistent data storage; and

in response to the data being written into the working region, set the flag to indicate that the data in the temporary region is invalid.

10. The storage system of claim 7 , wherein the second processor is configured to:

in response to receiving, from the first processor, the data to be updated, write the data into another temporary buffer in the memory of the second processor;

in response to the data being written into the other temporary buffer, send, to the first processor, the indication that the second processor has received the data; and

copy the data from the other temporary buffer to another working buffer in the memory of the second processor.

11. The storage system of claim 10 , wherein:

the first processor is further configured to, in response to the data being copied to the working buffer, release the temporary buffer; and

the second processor is further configured to, in response to the data being copied to the other working buffer, release the other temporary buffer.

12. The storage system of claim 10 , wherein:

the first processor is further configured to:

in response to the data being copied to the working buffer, write the data into a temporary region on the shared persistent data storage;

in response to the data being written into the temporary region, set a flag associated with the temporary region to indicate that the data in the temporary region is valid; and

in response to setting the flag associated with the temporary region to indicate that the data in the temporary region is valid, sending to the second processor a message indicating that the data has been updated to the temporary region, the message including the flag indicating that the data in the temporary region is valid; and

the second processor is further configured to:

in response to receiving from the first processor the message indicating that the data has been updated to the temporary region, obtain, from the message, the flag indicating that the data in the temporary region is valid; and

send, to the first processor, an acknowledgement that the second processor has received the message.

13. The storage system of claim 12 , wherein:

the first processor is further configured to:

in response to receiving the acknowledgement that the second processor has received the message, write the data into a working region on the shared persistent data storage;

in response to the data being written into the working region, set the flag to indicate that the data in the temporary region is invalid; and

in response to setting the flag to indicate that the data in the temporary region is invalid, sending to the second processor another message indicating that the data has been updated to the working region, the other message including the flag indicating that the data in the temporary region is invalid; and

the second processor is further configured to:

in response to receiving from the first processor the other message indicating that the data has been updated to the working region, obtain, from the other message, the flag indicating that the data in the temporary region is invalid; and

send, to the first processor, another acknowledgement that the second processor has received the other message.

14. The storage system of claim 7 wherein the data is configuration information for the shared persistent data storage, the configuration information including state information and a mapping table.

15. A computer program product for ensuring data consistency, comprising a non-transitory computer-readable storage medium storing instructions, which, when executed by a first processing unit (processor) of a storage system, cause the storage system to:

write data into a temporary buffer in memory of the first processor;

in response to the data being written into the temporary buffer, send the data to a second processor of the storage system to update a copy of the data in memory of the second processor; and

in response to receiving an indication that the second processor has received the data, copy the data from the temporary buffer to a working buffer in the memory of the first processor.

16. The computer program product of claim 15 , wherein the instructions, when executed by the first processor, further cause the storage system to:

in response to the first processor determining that the second processor is unresponsive, write the data into a temporary region on the shared persistent data storage;

in response to the data being written into the temporary region, set a flag associated with the temporary region to indicate that the data in the temporary region is valid;

after setting the flag associated with the temporary region to indicate that the data in the temporary region is valid, write the data into a working region on the shared persistent data storage; and

in response to the data being written into the working region, set the flag to indicate that the data in the temporary region is invalid.

17. The computer program product of claim 15 , wherein the instructions, when executed by the second processor, further cause the storage system to:

in response to the second processor receiving, from the first processor, the data to be updated, write the data into another temporary buffer in the memory of the second processor;

in response to the data being written into the other temporary buffer, send, from the second processor to the first processor, the indication that the second processor has received the data; and

copy the data from the other temporary buffer to another working buffer in the memory of the second processor.

18. The computer program product of claim 17 , wherein:

the instructions, when executed by the first processor, further cause the storage system to:

in response to the data being copied to the working buffer, write the data into a temporary region on the shared persistent data storage;

in response to the data being written into the temporary region, set a flag associated with the temporary region to indicate that the data in the temporary region is valid; and

in response to setting the flag associated with the temporary region to indicate that the data in the temporary region is valid, sending from the first processor to the second processor a message indicating that the data has been updated to the temporary region, the message including the flag indicating that the data in the temporary region is valid; and

the instructions, when executed by the second processor, further cause the storage system to:

in response to the second processor receiving from the first processor the message indicating that the data has been updated to the temporary region, obtain, from the message, the flag indicating that the data in the temporary region is valid; and

send, from the first processor to the first processor, an acknowledgement that the second processor has received the message.

19. The computer program product of claim 18 , wherein:

the instructions, when executed by the first processor, further cause the storage system to:

in response to the first processor receiving the acknowledgement that the second processor has received the message, write the data into a working region on the shared persistent data storage;

in response to the data being written into the working region, set the flag to indicate that the data in the temporary region is invalid; and

in response to setting the flag to indicate that the data in the temporary region is invalid, sending from the first processor to the second processor another message indicating that the data has been updated to the working region, the other message including the flag indicating that the data in the temporary region is invalid; and

the instructions, when executed by the second processor, further cause the storage system to:

in response to the second processor receiving from the first processor the other message indicating that the data has been updated to the working region, obtain, from the other message, the flag indicating that the data in the temporary region is invalid; and

send, from the second processor to the first processor, another acknowledgement that the second processor has received the other message.

20. The computer program product of claim 15 wherein the data is configuration information for the shared persistent data storage, the configuration information including state information and a mapping table.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0571) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0088 →
RELEASE OF SECURITY INTEREST AT REEL 050406 FRAME 421 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058213/0825 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0571 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050406/0421 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 6, 2019
From: GONG, SHAOQIN; GAO, JIAN; HAN, GENG; GAO, HONGPO; SUN, REE LEI; XU, XINLEI
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 049972/0462 →