IP Library Granted Patent US 11,995,043
Granted Patent B2
US 11,995,043 · App. 18/302,061 · Granted May 28, 2024

Map-reduce ready distributed file system

Inventors: Mandayam C. Srivas (Union City, CA); Pindikura Ravindra (Hyderabad, IN); Uppaluri Vijaya Saradhi (Hyderabad, IN); Arvind Arun Pande (Mumbai, IN); Chandra Guru Kiran Babu Sanapala (Hyderabad, IN); Lohit Vijaya Renu (Sunnyvale, CA); Vivekanand Vellanki (Hyderabad, IN); Sathya Kavacheri (Fremont, CA); Amit Ashoke Hadke (San Jose, CA)
Assignee: Hewlett Packard Enterprise Development LP
G06F16/1844G06F8/658G06F16/128G06F16/178G06F16/182G06F16/1865G06F16/22G06F16/2246G06F16/23G06F16/235G06F16/2365G06F16/27G06F16/273G06F16/275H04L65/102G06F16/10
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,995,043
App. No.
18/302,061
Granted
May 28, 2024
Kind
B2
Abstract

A map-reduce compatible distributed file system that consists of successive component layers that each provide the basis on which the next layer is built provides transactional read-write-update semantics with file chunk replication and huge file-create rates. Containers provide the fundamental basis for data replication, relocation, and transactional updates. A container location database allows containers to be found among all file servers, as well as defining precedence among replicas of containers to organize transactional updates of container contents. Volumes facilitate control of data placement, creation of snapshots and mirrors, and retention of a variety of control and policy information. Also addressed is the use of distributed transactions in a map-reduce system; the use of local and distributed snapshots; replication, including techniques for reconciling the divergence of replicated data after a crash; and mirroring.

Claims (55)

1. A non-transitory storage medium comprising instructions that upon execution cause a system to:

maintain, in a container location database (CLDB), information about where each of a plurality of containers is located among a plurality of cluster nodes;

create a snapshot of a file system volume comprising directories and files spread over the plurality of containers, wherein the creating of the snapshot of the file system volume comprises:

creating a snapshot of a name container, wherein the name container comprises metadata for the file system volume, and

after creating the snapshot of the name container, creating snapshots of data containers to produce a plurality of snapshot containers, the data containers storing data of the directories and the files of the file system volume;

create mapping information that maps references to the data containers into references to corresponding snapshot containers of the plurality of snapshot containers;

insert the mapping information into the snapshot of the name container; and

use the mapping information to translate a reference to a given data container to a reference to a corresponding snapshot container.

2. The non-transitory storage medium of claim 1 , wherein the mapping information comprises a table that maps the references to the data containers into the references to the corresponding snapshot containers, and

wherein the inserting comprises inserting, into the snapshot of the name container, the mapping information comprising the table that maps the references to the data containers into the references to the corresponding snapshot containers.

3. The non-transitory storage medium of claim 1 , wherein the instructions upon execution cause the system to:

insert the mapping information into each snapshot container of the plurality of snapshot containers.

4. The non-transitory storage medium of claim 1 , wherein the instructions upon execution cause the system to:

in response to a modification of data blocks in the file system volume, write the modified data blocks to new storage locations, and leave data in the plurality of snapshot containers unchanged.

5. The non-transitory storage medium of claim 1 , wherein the creating of the mapping information occurs after the creating of the snapshot of the name container and the creating of the snapshots of the data containers.

6. The non-transitory storage medium of claim 1 , wherein the CLDB and the plurality of containers including the snapshot of the name container and the plurality of snapshot containers are part of a distributed file system implemented across the plurality of cluster nodes.

7. The non-transitory storage medium of claim 6 , wherein the instructions upon execution cause the system to:

perform a distributed transaction comprising a distributed update on the file system volume, wherein the distributed update is to update data of the file system volume in multiple cluster nodes of the plurality of cluster nodes.

8. A system comprising:

a plurality of cluster nodes;

a processor; and

a non-transitory storage medium storing instructions executable on the processor to:

maintain, in a container location database (CLDB), information about where each of a plurality of containers is located among the plurality of cluster nodes;

create a snapshot of a file system volume comprising directories and files spread over the plurality of containers, wherein the creating of the snapshot of the file system volume comprises:

creating a snapshot of a name container, wherein the name container comprises metadata for the file system volume, and

after creating the snapshot of the name container, creating snapshots of data containers to produce a plurality of snapshot containers, the data containers storing data of the directories and the files of the file system volume;

create mapping information that maps identifiers of the data containers into identifiers of corresponding snapshot containers of the plurality of snapshot containers;

insert the mapping information into the snapshot of the name container; and

use the mapping information to translate an identifier of a given data container to an identifier of a corresponding snapshot container.

9. The system of claim 8 , wherein the mapping information comprises a table that maps the identifiers of the data containers into the identifiers of the corresponding snapshot containers, and

wherein the inserting comprises inserting, into the snapshot of the name container, the mapping information comprising the table that maps the identifiers of the data containers into the identifiers of the corresponding snapshot containers.

10. The system of claim 8 , wherein the metadata in the name container comprises a file identifier map including file identifiers that refer to files containing data of the data containers.

11. The system of claim 8 , wherein the instructions are executable on the processor to:

in response to a modification of data blocks in the file system volume, write the modified data blocks to new storage locations, and leave data in the plurality of snapshot containers unchanged.

12. The system of claim 8 , wherein the creating of the mapping information occurs after the creating of the snapshot of the name container and the creating of the snapshots of the data containers.

13. The system of claim 8 , wherein the CLDB and the plurality of containers are part of a distributed file system implemented across the plurality of cluster nodes.

14. The system of claim 13 , wherein the instructions are executable on the processor to:

perform a distributed transaction comprising a distributed update on the file system volume, wherein the distributed update is to update data of the file system volume in multiple cluster nodes of the plurality of cluster nodes.

15. A method of a system, comprising:

maintaining, in a container location database (CLDB), information about where each of a plurality of containers is located among a plurality of cluster nodes;

creating a snapshot of a file system volume comprising directories and files spread over the plurality of containers, wherein the creating of the snapshot of the file system volume comprises:

creating a snapshot of a name container, wherein the name container comprises metadata for the file system volume, and

after creating the snapshot of the name container, creating snapshots of data containers to produce a plurality of snapshot containers, the data containers storing data of the directories and the files of the file system volume;

creating mapping information that maps references to the data containers into references to corresponding snapshot containers of the plurality of snapshot containers;

inserting the mapping information into the snapshot of the name container; and

using the mapping information to translate a reference to a given data container to a reference to a corresponding snapshot container.

16. The method of claim 15 , further comprising:

inserting the mapping information into each snapshot container of the plurality of snapshot containers.

17. The method of claim 15 , further comprising:

in response to a modification of data blocks in the file system volume, writing the modified data blocks to new storage locations, and leaving data in the plurality of snapshot containers unchanged.

18. The method of claim 15 , wherein the creating of the mapping information occurs after the creating of the snapshot of the name container and the creating of the snapshots of the data containers.

19. The method of claim 15 , wherein the mapping information comprises a table that maps the references to the data containers into the references to the corresponding snapshot containers, and

wherein the inserting comprises inserting, into the snapshot of the name container, the mapping information comprising the table that maps the references to the data containers into the references to the corresponding snapshot containers.

20. The method of claim 15 , wherein the CLDB and the plurality of containers are part of a distributed file system implemented across the plurality of cluster nodes, the method further comprising:

performing a distributed transaction comprising a distributed update on the file system volume, wherein the distributed update is to update data of the file system volume in multiple cluster nodes of the plurality of cluster nodes.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2023
From: MAPR TECHNOLOGIES, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 063385/0302 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2023
From: SRIVAS, MANDAYAM C.; RAVINDRA, PINDIKURA; SARADHI, UPPALURI VIJAYA; PANDE, ARVIND ARUN; SANAPALA, CHANDRA GURU KIRAN BABU; RENU, LOHIT VIJAYA; VELLANKI, VIVEKANAND; KAVACHERI, SATHYA; HADKE, AMIT ASHOKE
To: MAPR TECHNOLOGIES, INC.
Reel/Frame 063354/0040 →
Continuity (9)
Continuation 17445725 · Aug 23, 2021
Continuation 16116796 · Aug 29, 2018
Continuation 15668666 · Aug 3, 2017
Continuation 15381733 · Dec 16, 2016
Continuation 14951437 · Nov 24, 2015
Continuation 13340532 · Dec 29, 2011
Continuation In Part 13162439 · Jun 16, 2011
Provisional Application 61356582 · Jun 19, 2010
Related Publication 20230273904A1 · Aug 31, 2023