IP Library Granted Patent US 11,586,499
Granted Patent B2
US 11,586,499 · App. 16/863,461 · Granted Feb 21, 2023

Method, device and computer program product for storing data

Inventors: Jingrong Zhao (Chengdu, CN); Yi Wang (Chengdu, CN)
Assignee: EMC IP HOLDING COMPANY LLC
G06F11/1076G06F9/542G06F11/0772G06F16/137G06F16/182
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 11,586,499
App. No.
16/863,461
Granted
Feb 21, 2023
Kind
B2
Abstract

Embodiments of the present disclosure provide a method, device and computer program product for storing data. The method comprises creating a first data file having a naming identification at a first node in a Redundant Array of Independent Nodes (RAIN), and creating a second data file having the naming identification at a second node in the RAIN. The method further comprises creating, at a third node in the RAIN, a parity file having the naming identification, wherein the parity file is a parity result of a plurality of data files. According to embodiments of the present disclosure, files in the same parity group are configured with the same or partially the same file name.

Claims (65)

1. A method for storing data, comprising:

creating, at a first node in a Redundant Array of Independent Nodes (RAIN), a first data file having a naming identification, the RAIN being an array comprising a plurality of nodes and having redundant storage of data;

creating, at a second node in the RAIN, a second data file having the naming identification; and

creating, at a third node in the RAIN, a parity file having the naming identification, the parity file being a parity result of at least the first data file and the second data file.

2. The method of claim 1 , further comprising:

determining, based on the naming identification, the parity file and other data files which are in the same parity group as the first data file, the other data files at least comprising the second data file.

3. The method of claim 1 , wherein creating the first data file having the naming identification comprises:

in response to receiving a write request for the first node, creating, at the first node, the first data file with a file name that comprises the naming identification; and

broadcasting creation information of the naming identification to the second node and the third node in the RAIN.

4. The method of claim 3 , further comprising:

determining, based on the file name of the first data file, the third node for creating the parity file.

5. The method of claim 4 , wherein determining the third node for creating the parity file comprises:

determining a hash value of a constant portion of the file name for the first data file;

truncating a prefix of a predetermined length of the hash value; and

determining, based on the prefix of the predetermined length and a total number of nodes in the RAIN, a node index for creating the parity file.

6. The method of claim 5 , wherein determining the third node for creating the parity file further comprises:

making a first determination that the node index is identical to an index of the first node,

based on the first determination, increasing the node index; and

making a second determination that the node index is different from the index of the first node,

based on the second determination, determining the third node based on the node index.

7. The method of claim 1 , further comprising:

determining, for a target node selected in the RAIN, whether an available data file for storing new data exists in the target node;

in accordance with a determination that the available data file exists in the target node, obtaining a corresponding parity file based on a part of a file name of the available data file; and

in accordance with a determination that no available data file exists in the target node, creating a new data file at the target node and broadcasting new creation information to other nodes in the RAIN.

8. The method of claim 1 , further comprising:

in response to determining a failure of the first data file, restoring data in the first data file at least using the second data file and the parity file.

9. An electronic device, comprising:

a processing unit; and

a memory coupled to the processing unit and stored with instructions, the instructions, when executed by the processing unit, causing to perform a method, method comprising:

creating, at a first node in a Redundant Array of Independent Nodes (RAIN), a first data file having a naming identification, the RAIN being an array comprising a plurality of nodes and having redundant storage of data;

creating, at a second node in the RAIN, a second data file having the naming identification; and

creating, at a third node in the RAIN, a parity file having the naming identification, the parity file being a parity result of at least the first data file and the second data file.

10. The electronic device of claim 9 , the method further comprising:

determining, based on the naming identification, the parity file and other data files which are in the same parity group as the first data file, the other data files at least comprising the second data file.

11. The electronic device of claim 9 , wherein creating the first data file having the naming identification comprises:

in response to receiving a write request for the first node, creating, at the first node, the first data file with a file name that comprises the naming identification; and

broadcasting creation information of the naming identification to the second node and the third node in the RAIN.

12. The electronic device of claim 11 , further comprising:

determining, based on the file name of the first data file, the third node for creating the parity file.

13. The electronic device of claim 12 , wherein determining the third node for creating the parity file comprises:

determining a hash value of a constant portion of the file name for the first data file;

truncating a prefix of a predetermined length of the hash value; and

determining, based on the prefix of the predetermined length and a total number of nodes in the RAIN, a node index for creating the parity file.

14. The electronic device of claim 13 , wherein determining the third node for creating the parity file further comprises:

making a first determination that the node index is identical to an index of the first node,

based on the first determination, increasing the node index; and

making a second determination that the node index is different from the index of the first node,

based on the second determination, determining the third node based on the node index.

15. The electronic device of claim 9 , the method further comprising:

determining, for a target node selected in the RAIN, whether an available data file for storing new data exists in the target node;

in accordance with a determination that the available data file exists in the target node, obtaining a corresponding parity file based on a part of a file name of the available data file; and

in accordance with a determination that no available data file exists in the target node, creating a new data file at the target node and broadcasting new creation information to other nodes in the RAIN.

16. The electronic device of claim 9 , the method further comprising:

in response to determining a failure of the first data file, restoring data in the first data file at least using the second data file and the parity file.

17. A computer program product tangibly stored on a non-transitory computer-readable medium and comprising computer-executable instructions, the computer-executable instructions, when executed, causing a computer to perform a method, the method comprising:

creating, at a first node in a Redundant Array of Independent Nodes (RAIN), a first data file having a naming identification, the RAIN being an array comprising a plurality of nodes and having redundant storage of data;

creating, at a second node in the RAIN, a second data file having the naming identification; and

creating, at a third node in the RAIN, a parity file having the naming identification, the parity file being a parity result of at least the first data file and the second data file.

18. The computer program product of claim 17 , the method further comprising:

determining, based on the naming identification, the parity file and other data files which are in the same parity group as the first data file, the other data files at least comprising the second data file.

19. The computer program product of claim 17 , wherein creating the first data file having the naming identification comprises:

in response to receiving a write request for the first node, creating, at the first node, the first data file with a file name that comprises the naming identification; and

broadcasting creation information of the naming identification to the second node and the third node in the RAIN.

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

determining, based on the file name of the first data file, the third node for creating the parity file.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0917) 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 IP HOLDING COMPANY LLC
Reel/Frame 060436/0509 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0081) 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 IP HOLDING COMPANY LLC
Reel/Frame 060436/0441 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052852/0022) 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 IP HOLDING COMPANY LLC
Reel/Frame 060436/0582 →
RELEASE OF SECURITY INTEREST AT REEL 052771 FRAME 0906 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0298 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052852/0022 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0081 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0917 →
SECURITY AGREEMENT Recorded May 28, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052771/0906 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2020
From: ZHAO, JINGRONG; WANG, YI
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052542/0782 →
Priority Claims (1)
CN 201911269846.4 · Dec 11, 2019 · national
Continuity (1)
Related Publication 20210182146A1 · Jun 17, 2021