# US 12,216,547 B1 · Granular data source identification for obtaining deduplication storage efficiency within a clustered environment

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,216,547 B1
- Document ID: US12216547B1
- Status: Granted
- Kind: B1
- Application number: 16/547,234
- Filed: 2019-08-21
- Granted: 2025-02-04
- Earliest claimed: 2019-08-21
- Assignees: EMC IP Holding Company LLC
- Applicants: EMC IP Holding Company LLC
- Inventors: Abhishek Rajimwale; George Mathew; Murthy Mamidi; Donna Barry Lewis
- Web page: https://patentgrep.com/patent/US12216547B1

## CPC

- G06F 11/1453: {using de-duplication of the data}
- G06F 11/1451: {by selection of backup contents}
- G06F 11/1464: {for networked environments}
- G06F 16/1748: {De-duplication implemented within the file system, e.g. based on file segments (de-duplication techniques in storage systems for the management of data blocks G06F3/0641)}
- G06F 2201/84: Using snapshots, i.e. a logical point-in-time copy of the data
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Described is a system (and method) that maintains deduplication efficiency when storing data within a clustered data storage environment that implements a global namespace. To provide such a capability, the system may obtain granular data source identifying information from a client system that provides data to be backed-up by a backup component. The data source identifying information may take the form of a placement tag that is associated with the received data. The backup component may then provide such placement tags when providing the backup data to the clustered storage system. The placement tags may then be used to intelligently distribute backup files to particular storage nodes of the clustered storage system to improve deduplication efficiency.

## Claims

### Claim 1

A system comprising:
one or more processors; and
a non-transitory computer readable medium storing a plurality of instructions, which when executed, cause the one or more processors to:
receive, at a backup system, data to be backed up from a first data source and a second data source through a client system to a cluster storage system as part of a backup process, the first data source and the second data source being components of the client system;
determine, at a backup system, a plurality of portions of the received data as a basis for creating a plurality of backup files to be provided to the cluster storage system by analyzing the received data as part of the backup process, the portions including at least a first portion of the received data that is to be used to create a first backup file;
obtain, at the backup system from the client system, first data source information for the first portion of the data by querying the components of the client system as part of the backup process in response to determining the first portion is a basis for creating the first backup file, the first data source information including an identity of a device that is a component of the client system and is identified as the first data source from which the first portion of the data was obtained;
generate, at the backup system, a first data source identifier associated with the first portion of data based on the obtained first data source information associated with the first data source as part of the backup process; and
provide, by the backup system, the first data source identifier and the first portion of data to the clustered storage system, the first data source identifier used by the clustered storage system to determine a first destination storage node for the first backup file created using the first portion of data, the first destination storage node storing backup files of data from the first data source.

### Claim 2 (depends on 1)

The system of claim 1, wherein the plurality of instructions, when executed, further cause the one or more processors to:
determine a second portion of the data is to be used to create a second backup file, and a third portion of the data is to be used to create a third backup file;
obtain, from the client system, second data source information for the second portion of the data and third data source information for the third portion of the data;
generate a second data source identifier associated with the second portion of the data and the first data source identifier associated with the third portion of the data, in response to the second data source information being associated with the second data source and the third data source information being associated with the first data source;
provide, to a clustered storage system, the second data source identifier and the second portion of data, and the first data source identifier and the third portion of data,
the second data source identifier used by the clustered storage system to determine a second destination storage node for the second backup file, in response to the second backup file being associated with a different data source than the first backup file, and
the first data source identifier used by the clustered storage system to determine the first destination storage node for the third backup file, in response to the third backup file being associated with a same data source as the first backup file.

### Claim 3 (depends on 1)

The system of claim 1, wherein providing the first data source identifier and the first portion of data to the clustered storage system includes providing the first data source identifier with the first portion of data as part of an operation to request the clustered storage system to write the first backup file using the first portion of data.

### Claim 4 (depends on 1)

The system of claim 1, wherein providing the first data source identifier and the first portion of data to the clustered storage system includes injecting the first data source identifier directly to an index maintained by the clustered storage system and associated with the first backup file.

### Claim 5 (depends on 1)

The system of claim 1, wherein providing the first data source identifier and the first portion of data to the clustered storage system includes assigning the first data source identifier as an attribute for the first backup file.

### Claim 6 (depends on 1)

The system of claim 1, wherein obtaining the first data source information from the client system includes querying, by a backup component, a component of the client system.

### Claim 7 (depends on 1)

The system of claim 1, wherein obtaining the first data source information from the client system includes obtaining at least one of a database identifier, a virtual machine identifier, and a device address.

### Claim 8 (depends on 1)

The system of claim 1, wherein the clustered storage system implements a global namespace representing the clustered storage system as a single storage node to the system.

### Claim 9

A method comprising:
receiving, at a backup system, data to be backed up from a first data source and a second data source through a client system to a cluster storage system as part of a backup process, the first data source and the second data source being components of the client system;
determining, at a backup system, a plurality of portions of the received data as a basis for creating a plurality of backup files to be provided to the cluster storage system by analyzing the received data as part of the backup process, the portions including at least a first portion of the received data that is to be used to create a first backup file;
obtaining, at the backup system from the client system, first data source information for the first portion of the data by querying the components of the client system as part of the backup process in response to determining the first portion is a basis for creating the first backup file, the first data source information including an identity of a device that is a component of the client system and is identified as the first data source from which the first portion of the data was obtained;
generating, at the backup system, a first data source identifier associated with the first portion of data based on the obtained first data source information associated with the first data source as part of the backup process; and
providing, by the backup system, the first data source identifier and the first portion of data to the clustered storage system, the first data source identifier used by the clustered storage system to determine a first destination storage node for the first backup file created using the first portion of data, the first destination storage node storing backup files of data from the first data source.

### Claim 10 (depends on 9)

The method of claim 9, further comprising:
determining a second portion of the data is to be used to create a second backup file, and a third portion of the data is to be used to create a third backup file;
obtaining, from the client system, second data source information for the second portion of the data and third data source information for the third portion of the data;
generating a second data source identifier associated with the second portion of the data and the first data source identifier associated with the third portion of the data, in response to the second data source information being associated with the second data source and the third data source information being associated with the first data source;
providing, to a clustered storage system, the second data source identifier and the second portion of data, and the first data source identifier and the third portion of data,
the second data source identifier used by the clustered storage system to determine a second destination storage node for the second backup file, in response to the second backup file being associated with a different data source than the first backup file, and
the first data source identifier used by the clustered storage system to determine the first destination storage node for the third backup file, in response to the third backup file being associated with a same data source as the first backup file.

### Claim 11 (depends on 9)

The method of claim 9, wherein providing the first data source identifier and the first portion of data to the clustered storage system includes providing the first data source identifier with the first portion of data as part of an operation to request the clustered storage system to write the first backup file using the first portion of data.

### Claim 12 (depends on 9)

The method of claim 9, wherein providing the first data source identifier and the first portion of data to the clustered storage system includes injecting the first data source identifier directly to an index maintained by the clustered storage system and associated with the first backup file.

### Claim 13 (depends on 9)

The method of claim 9, wherein providing the first data source identifier and the first portion of data to the clustered storage system includes assigning the first data source identifier as an attribute for the first backup file.

### Claim 14 (depends on 9)

The method of claim 9, wherein obtaining the first data source information from the client system includes querying, by a backup component, a component of the client system.

### Claim 15

A computer program product comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein to be executed by one or more processors, the program code including instructions to:
receive, at a backup system, data to be backed up from a first data source and a second data source through a client system to a cluster storage system as part of a backup process, the first data source and the second data source being components of the client system;
determine, at a backup system, a plurality of portions of the received data as a basis for creating a plurality of backup files to be provided to the cluster storage system by analyzing the received data as part of the backup process, the portions including at least a first portion of the received data that is to be used to create a first backup file;
obtain, at the backup system from the client system, first data source information for the first portion of the data by querying the components of the client system as part of the backup process in response to determining the first portion is a basis for creating the first backup file, the first data source information including an identity of a device that is a component of the client system and is identified as the first data source from which the first portion of the data was obtained;
generate, at the backup system, a first data source identifier associated with the first portion of data based on the obtained first data source information associated with the first data source as part of the backup process; and
provide, by the backup system, the first data source identifier and the first portion of data to the clustered storage system, the first data source identifier used by the clustered storage system to determine a first destination storage node for the first backup file created using the first portion of data, the first destination storage node storing backup files of data from the first data source.

### Claim 16 (depends on 15)

The computer program product of claim 15, wherein the program code includes further instructions to:
determine a second portion of the data is to be used to create a second backup file, and a third portion of the data is to be used to create a third backup file;
obtain, from the client system, second data source information for the second portion of the data and third data source information for the third portion of the data;
generate a second data source identifier associated with the second portion of the data and the first data source identifier associated with the third portion of the data, in response to the second data source information being associated with the second data source and the third data source information being associated with the first data source;
provide, to a clustered storage system, the second data source identifier and the second portion of data, and the first data source identifier and the third portion of data,
the second data source identifier used by the clustered storage system to determine a second destination storage node for the second backup file, in response to the second backup file being associated with a different data source than the first backup file, and
the first data source identifier used by the clustered storage system to determine the first destination storage node for the third backup file, in response to the third backup file being associated with a same data source as the first backup file.

### Claim 17 (depends on 15)

The computer program product of claim 15, wherein providing the first data source identifier and the first portion of data to the clustered storage system includes providing the first data source identifier with the first portion of data as part of an operation to request the clustered storage system to write the first backup file using the first portion of data.

### Claim 18 (depends on 15)

The computer program product of claim 15, wherein providing the first data source identifier and the first portion of data to the clustered storage system includes injecting the first data source identifier directly to an index maintained by the clustered storage system and associated with the first backup file.

### Claim 19 (depends on 15)

The computer program product of claim 15, wherein providing the first data source identifier and the first portion of data to the clustered storage system includes assigning the first data source identifier as an attribute for the first backup file.

### Claim 20 (depends on 15)

The computer program product of claim 15, wherein obtaining the first data source information from the client system includes querying, by a backup component, a component of the client system.
