IP Library Granted Patent US 10,956,393
Granted Patent B2
US 10,956,393 · App. 16/304,722 · Granted Mar 23, 2021

Data storage system and process for providing distributed storage in a scalable cluster system and computer program for such data storage system

Inventors: Yuko Matsui (Los Gatos, CA); Mitsuo Hayasaka (Tokyo, JP); Christopher James Aston (High Wycombe, GB); Jonathan Smith (Bracknell, GB); James Gibbs (Wokingham, GB); Daniel Picken (Sunnyvale, CA); Simon Crosland (Woking, GB); Hieu Hanh Le (Tokyo, JP)
Assignee: HITACHI, LTD.
G06F16/2272G06F3/064G06F3/067G06F3/0611G06F3/0689G06F15/16G06F15/173G06F16/2246H04L12/46H04L12/4625
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,956,393
App. No.
16/304,722
Granted
Mar 23, 2021
Kind
B2
Abstract

In a distributed storage of data objects in a cluster system, a data object is distributed across a group of node apparatuses in units of data blocks. For each child object, the metadata structure of the respective child object is stored to one of the node apparatuses of the group of node apparatuses for managing locations of data blocks of the data object and includes a root metadata node and one or more direct metadata nodes, optionally further including one or more indirect metadata nodes; and the metadata structure of the parent object is distributed across the plural node apparatuses of the group of node apparatuses for managing locations of child objects of the data object and includes, on each node apparatus of the group of node apparatuses, a root metadata node and one or more direct metadata nodes, optionally further including one or more indirect metadata nodes.

Claims (76)

1. A non-transitory computer readable storage medium storing thereon a computer program including instructions to cause a computer to execute a method for managing a data storage system, comprising:

storing a data object distributed across a group of node apparatuses of the data storage system in units of data blocks; and

managing I/O access to the data object based on metadata structures including a metadata structure being associated with a parent object of the data object and plural metadata structures being respectively associated with one of a plurality of child objects of the data object,

wherein, for each child object, the metadata structure of the respective child object is stored to one of the node apparatuses of the group of node apparatuses for managing locations of data blocks of the data object and includes a root metadata node and one or more direct metadata nodes, and

wherein the metadata structure of the parent object is distributed across the plural node apparatuses of the group of node apparatuses for managing locations of child objects of the data object and includes, on each node apparatus of the group of node apparatuses, a root metadata node and one or more direct metadata nodes, and

wherein the method further comprises:

moving, for I/O access load balancing, one or more child objects from a source node apparatus to a target node apparatus and updating an object reference of the parent object on the source node apparatus, or on another node apparatus, to reflect a new location of the one or more moved child objects;

dividing the data of the data object into a plurality of data segments, each data segment having a size smaller than or equal to a pre-determined distribution size;

storing the data segments in a distributed manner across the plural node apparatuses of the group of node apparatuses; and

creating a respective child object for each stored data segment and/or creating a respective parent object on each node apparatus on which a child object is created.

2. The non-transitory computer readable storage medium according to claim 1 , wherein

the parent object on a certain node apparatus includes object-references indicating locations of one or more child objects of the data object,

the parent object in the data storage system includes a respective object-references for each child object of the data object, and/or

each child object is referenced by an object reference of the parent object on at least one of the node apparatuses.

3. The non-transitory computer readable storage medium according to claim 1 , wherein,

upon creation of the data object, the parent object on a certain node apparatus includes object-references indicating locations of the one or more child objects of the data object created on the same certain node apparatus, and/or,

upon creation of the data object, each child object on a certain node apparatus is referenced by an object reference of the parent object on the same certain node apparatuses.

4. The non-transitory computer readable storage medium according to claim 1 , wherein

storing the data segments in a distributed manner across the plural node apparatuses of the group of node apparatuses is executed based on a deterministic distribution algorithm and/or based on a distribution map being generated based on a deterministic distribution algorithm.

5. The non-transitory computer readable storage medium according to claim 4 , wherein

an input value of the deterministic distribution algorithm depends on at least one of:

an object identifier of the data object; and

an offset of a data segment in the data object.

6. The non-transitory computer readable storage medium according to claim 5 , wherein

object identifiers are grouped into plurality of disjoint groups of object identifiers and each group of object identifiers includes the same number of object identifiers,

wherein the number of object identifiers per group is equal to a number of pointers per metadata node in a metadata structure, or the number of object identifiers per group is equal to a number of pointers per metadata node in a metadata structure to the power of an integer of two or more.

7. The non-transitory computer readable storage medium according to claim 6 , wherein

an input value of the deterministic distribution algorithm is determined based on an object identifier of the data object, and object identifiers of a same group of object identifiers result in the same input value and/or object identifiers different groups of object identifiers result in different input values.

8. The non-transitory computer readable storage medium according to claim 1 , wherein the method further comprises:

receiving an I/O access request to access a target data segment of the data object on a receiving node apparatus;

determining a child object node apparatus being the designated location of a child object associated with the target data segment based on a deterministic algorithm;

sending an I/O access request to access the target data segment from the receiving node apparatus to the determined child object node apparatus;

obtaining an object reference to the child object associated with the target data segment from the parent object on the determined child object node apparatus; and

accessing the child object associated with the target data segment based on the object reference obtained from the parent object on the determined child object node apparatus.

9. The non-transitory computer readable storage medium according to claim 8 , wherein the method further comprises:

accessing the child object associated with the target data segment on the determined child object node apparatus; or

determining that the child object associated with the target data segment has been moved to another node apparatus based on the object reference obtained from the parent object on the determined child object node apparatus, and accessing the child object associated with the target data segment on the other node apparatus.

10. The non-transitory computer readable storage medium according to claim 1 , wherein

the metadata structure of the parent object is distributed across the plural node apparatuses of the group of node apparatuses in that the complete metadata of the parent object is stored on each of the plural node apparatuses of the group of node apparatuses, or

the metadata structure of the parent object is distributed across the plural node apparatuses of the group of node apparatuses in that each of the plural node apparatuses of the group of node apparatuses stores a respective part of the metadata structure of the parent object.

11. The non-transitory computer readable storage medium according to claim 1 , wherein

for each child object, the metadata structure of the respective child object further includes one or more indirect metadata nodes.

12. The non-transitory computer readable storage medium according to claim 11 , wherein

the metadata structure for the parent object further includes one or more indirect metadata nodes.

13. The non-transitory computer readable storage medium according to claim 1 , wherein

the metadata structure for the parent object further includes one or more indirect metadata nodes.

14. A data storage system, comprising:

a plurality of node apparatuses communicably connected to each other,

each node apparatus comprising at least one processor and at least one memory;

the data storage system being configured to store a data object distributed across a group of node apparatuses of the data storage system in units of data blocks; and

the data storage system being configured to manage I/O access to the data object based on metadata structures including a metadata structure being associated with a parent object of the data object and plural metadata structures being respectively associated with one of a plurality of child objects of the data object,

wherein, for each child object, the metadata structure of the respective child object is stored to one of the node apparatuses of the group of node apparatuses for managing locations of data blocks of the data object and includes a root metadata node and one or more direct metadata nodes,

wherein the metadata structure of the parent object is distributed across the plural node apparatuses of the group of node apparatuses for managing locations of child objects of the data object and includes, on each node apparatus of the group of node apparatuses, a root metadata node and one or more direct metadata nodes, and

wherein the data storage systems is further configured to:

move, for I/O access load balancing, one or more child objects from a source node apparatus to a target node apparatus and updating an object reference of the parent object on the source node apparatus, or on another node apparatus, to reflect a new location of the one or more moved child objects;

divide the data of the data object into a plurality of data segments, each data segment having a size smaller than or equal to a pre-determined distribution size;

store the data segments in a distributed manner across the plural node apparatuses of the group of node apparatuses; and

create a respective child object for each stored data segment and/or create a respective parent object on each node apparatus on which a child object is created.

15. A node apparatus for use in a data storage system according to claim 14 , comprising:

an interface for establishing a communication connection to one or more other node apparatuses of the data storage system;

one or more storage devices for storing data; and

a storage controller for controlling a data storage distribution in the data storage system, including:

storing a data object distributed across a group of node apparatuses of the data storage system in units of data blocks; and

managing I/O access to the data object based on metadata structures including a metadata structure being associated with a parent object of the data object and plural metadata structures being respectively associated with one of a plurality of child objects of the data object,

wherein, for each child object, the metadata structure of the respective child object is stored to one of the node apparatuses of the group of node apparatuses for managing locations of data blocks of the data object and includes a root metadata node and one or more direct metadata nodes, and

wherein the metadata structure of the parent object is distributed across the plural node apparatuses of the group of node apparatuses for managing locations of child objects of the data object and includes, on each node apparatus of the group of node apparatuses, a root metadata node and one or more direct metadata nodes.

16. A method for managing a data storage system, comprising:

storing a data object distributed across a group of node apparatuses of the data storage system in units of data blocks; and

managing I/O access to the data object based on metadata structures including a metadata structure being associated with a parent object of the data object and plural metadata structures being respectively associated with one of a plurality of child objects of the data object,

wherein, for each child object, the metadata structure of the respective child object is stored to one of the node apparatuses of the group of node apparatuses for managing locations of data blocks of the data object and includes a root metadata node and one or more direct metadata nodes,

wherein the metadata structure of the parent object is distributed across the plural node apparatuses of the group of node apparatuses for managing locations of child objects of the data object and includes, on each node apparatus of the group of node apparatuses, a root metadata node and one or more direct metadata nodes, and

wherein the method further comprises:

moving, for I/O access load balancing, one or more child objects from a source node apparatus to a target node apparatus and updating an object reference of the parent object on the source node apparatus, or on another node apparatus, to reflect a new location of the one or more moved child objects;

dividing the data of the data object into a plurality of data segments, each data segment having a size smaller than or equal to a pre-determined distribution size;

storing the data segments in a distributed manner across the plural node apparatuses of the group of node apparatuses; and

creating a respective child object for each stored data segment and/or creating a respective parent object on each node apparatus on which a child object is created.

Assignments (2)
COMPANY SPLIT Recorded Aug 20, 2024
From: HITACHI, LTD.
To: HITACHI VANTARA, LTD.
Reel/Frame 069518/0761 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 27, 2018
From: MATSUI, YUKO; HAYASAKA, MITSUO; ASTON, CHRISTOPHER JAMES; SMITH, JONATHAN; GIBBS, JAMES; PICKEN, DANIEL; CROSLAND, SIMON; LE, HIEU HANH
To: HITACHI, LTD.
Reel/Frame 047587/0786 →
Continuity (1)
Related Publication 20190220454A1 · Jul 18, 2019